UUIDs in Display-Namen umwandeln

In ENLYZE hat jede Dateneinheit – wie Standorte, Maschinen, Produkte, Stillstände usw. – eine eindeutige Kennung (UUID). Diese UUIDs sind essenziell für die Referenzierung von Elementen in verschiedenen Tabellen, können jedoch die Lesbarkeit des Datenmodells beeinträchtigen.

Bei der Analyse von Daten in Power BI ist es oft praktischer, Anzeigenamen anstelle von UUIDs zu verwenden. Diese Anleitung erklärt verschiedene Methoden, um UUIDs in ihre entsprechenden Anzeigenamen umzuwandeln. Je nachdem, wo die Zuordnung erfolgt, sind DAX-Formeln und/oder Power Query-Transformationen erforderlich.

Es gibt zwei typische Anwendungsfälle, in denen die Zuordnung von UUIDs zu Anzeigenamen hilfreich ist:

  • Hinzufügen einer neuen Spalte innerhalb einer Tabelle, z. B. das Einfügen von Maschinennamen in die Tabelle Production Runs.

  • Umbenennen von Spalten, nachdem Zeitseriendaten für Maschinenvariablen abgefragt wurden.

Hinzufügen einer neuen Spalte innerhalb einer Tabelle

Die Tabelle Production Runsspeichert Informationen über:

  • Auf welcher Maschine ein Auftrag ausgeführt wurde.

  • Welches Produkt produziert wurde.

Da die Tabelle Production Runs Maschinen- und Produktreferenzen als UUIDs speichert, möchten wir diese durch lesbare Namen ersetzen, indem wir die Tabellen Machines und Products verwenden.

Methode 1: Neue Spalte mit DAX

In dieser Methode nutzen wir DAX (Data Analysis Expressions), um Display-Namen nachzuschlagen und abzurufen.

  1. In Power BI zur Tabellenansicht wechseln.

  2. Die Tabelle Production Runs auswählen

  3. Unter Tabellentools auf Neue Spalte klicken.

  4. Geben Sie die folgende Formel in die Spaltendefinitionsleiste ein:

    machine_name = LOOKUPVALUE(Machines[name], Machines[uuid], 'Production Runs'[machine])

Wie funktioniert es?

  • Mit LOOKUPVALUE wird der Maschinenname in der Tabelle Machines gesucht.

  • Es wird die Zeile gefunden, in der Machines[uuid] mit Production Runs[machine] übereinstimmt.

  • Der entsprechende Maschinenname wird zurückgegeben.

Nun enthält die Tabelle Production Runs eine Spalte machine_name mit lesbaren Namen anstelle von UUIDs.

Methode 2: Merge im Power Query Editor

Diese Methode nutzt den Power-Query-Editor, um Tabellen zusammenzuführen und UUIDs durch Display-Namen zu ersetzen.

  1. Der Power Query Editor öffnen (Daten transformieren in Power BI).

  2. Die Tabelle Production Runs auswählen.

  3. Unter Kombinieren auf Abfragen zusammenführen klicken (Abfragen als neu zusammenführen, fügt eine neue Tabelle ein).

  4. Im Pop-up-Fenster:

    • Die Tabelle Production Runs ist bereits ausgewählt.

    • Als zweite Tabelle Products auswählen.

    • Product UUID in beiden Tabellen als Übereinstimmungsschlüssel auswählen.

    • Unter Verknüpfungsart Linksäußere Verknüpfung auswählen, um alle Datensätze aus Production Runs beizubehalten.

    • Anschließend wird es angezeigt, wie viele Zeilen eine Übereinstimmung gefunden haben. Idealerweise sollten alle Zeilen übereinstimmen.

  5. Auf OK klicken.

  6. Die erstellte Spalte kann erweitert werden, indem man auf die Erweitern-Schaltfläche rechts neben dem Spaltennamen klickt.

  7. Hier den external_id auswählen und auf OK klicken.

Nun enthält die Tabelle Production Runs eine Spalte Products.external_id mit lesbaren Produktnamen anstelle von UUIDs.


Beide Methoden ermöglichen es, UUIDs durch Display-Namen zu ersetzen und so die Lesbarkeit und Benutzerfreundlichkeit in Power BI zu verbessern:

  • DAX (LOOKUPVALUE) wird verwendet, wenn man Berechnungen innerhalb des Power-BI-Modells durchführen möchte.

  • Power Query (Abfragen zusammenführen) wird verwendet, wenn man die Daten vor dem Laden in Power BI transformieren möchte.

Spalten in Zeitreihendaten mit Power Query umbenennen

Bei der Nutzung der Timeseries-Funktion des ENLYZE-Connectors werden die Spaltennamen nicht als Variablennamen, sondern als Variable-UUIDs angezeigt. Um die Lesbarkeit der Daten zu verbessern, ist es oft sinnvoll, diese Spalten mit den Maschinen- und Variablenanzeigenamen umzubenennen.

Hier wird eine Funktion erläutert, die diese Zuordnung automatisch vornimmt, nachdem die Zeitreihendaten abgerufen wurden.

Die Funktion


let
    // Step 1: Call the Timeseries function
    Source = Timeseries(FilteredVariables, #datetimezone(2025, 2, 25, 0, 0, 0, 1, 0), #datetimezone(2025, 2, 26, 0, 0, 0, 1, 0), "1m", "avg"),

    // Step 2: Rename Machine UUID columns to Machine Names
    MachineMapping = Table.SelectColumns(Machines, {"uuid", "name"}),
    MachineRenamePairs = Table.ToRows(MachineMapping),
    RenamedMachines = Table.RenameColumns(Source, MachineRenamePairs, MissingField.Ignore),

    // Step 3: Rename Variable UUIDs Inside Each Table
    RenamedTables = Table.TransformColumns(RenamedMachines, {}, (x) => try Table.RenameColumns(x, Table.ToRows(Table.SelectColumns(FilteredVariables, {"uuid", "display_name"})), MissingField.Ignore) otherwise x)
in
    RenamedTables

Funktionsweise

1. Zeitreihendaten abrufen

Die Funktion ruft die Zeitseriendaten über die Timeseries-Funktion des ENLYZE-Connectors mit folgenden Parametern ab:

  • FilteredVariables – Eine gefilterte Version der Variables-Tabelle mit den Variablen, die in der Abfrage verwendet werden sollen.

  • Start- und Endzeit – Aktuell eingestellt von 25. Februar 2025 bis 26. Februar 2025.

  • Abtastintervall1m ein Datenpunkt jeder Minute.

  • Aggregationsmethode – Standardmäßig avg (Durchschnitt).

Alle diese Eingaben können nach Bedarf angepasst werden.

2. Maschinen-UUIDs in Maschinenanzeigenamen umbenennen

  • Maschinen-UUIDs im Ergebnis werden ihren entsprechenden Maschinennamen zugeordnet.

  • Die Zuordnung erfolgt über die Machines-Tabelle (uuidname).

  • Die Spaltennamen der Maschinen werden entsprechend aktualisiert.

3. Variablen-UUIDs in Variablenanzeigenamen umbenennen

  • Innerhalb jeder Maschinen-Spalte werden Variablen-UUIDs durch ihre Anzeigenamen ersetzt.

  • Die Zuordnung erfolgt über die FilteredVariables-Tabelle (uuiddisplay_name).

Anwendung

Um die Funktion zu verwenden, sind folgende Voraussetzungen erforderlich:

  • Die Machines-Tabelle aus dem ENLYZE-Connector.

  • Die Timeseries-Funktion aus dem ENLYZE-Connector.

  • Eine Tabelle namens FilteredVariables, die eine gefilterte Kopie der Variables-Tabelle aus dem ENLYZE-Connector enthält und nur die für die Zeitserienabfrage benötigten Variablen umfasst.

Die Schritte um die Funktion anzuwenden sind:

  1. Unter Neue Quelle > Leere Abfrage eine neue Abfrage erstellen.

  2. Den Erweiterten Editor unter Ansicht > Erweiterter Editor öffnen.

  3. Den Code der Funktion kopieren und einfügen.

  4. Die Eingaben der Timeseries-Funktion nach Bedarf anpassen.

  5. Auf Fertig klicken.

Nach der Ausführung enthält die endgültige Tabelle die Maschinen- und Variablennamen anstelle der UUIDs in den Spaltennamen.

Last updated