Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Diagrammschema ist die Sammlung von Knotentypen, Edgetypen und deren Eigenschaften, die die Struktur Ihres Diagramms definieren. Mit einem gut gestalteten Diagrammschema können Ihre Daten einfacher abfragen, verwaltet und erweitert werden. Dieser Artikel enthält bewährte Methoden zum Umwandeln von tabellarischen Daten in einem Seehaus in ein effektives beschriftetes Eigenschaftendiagramm in Microsoft Fabric.
Verwenden Sie diese Richtlinien, bevor Sie mit der Modellierung im Diagrammmodell-Editor beginnen. Schrittweise Anleitungen zum Erstellen von Knoten und Kanten finden Sie im Diagrammlernprogramm. Beispiele in diesem Artikel verwenden das Adventure Works-Beispiel-Dataset.
Von Bedeutung
Graph unterstützt derzeit keine Schemaentwicklung. Nachdem Sie ein Graphmodell erstellt und seine Daten geladen haben, erfordern strukturelle Änderungen, wie das Hinzufügen oder Entfernen von Knotentypen, Kantentypen und Eigenschaften, dass Sie alle Daten neu laden, bevor Sie die aktualisierte Struktur abfragen können. Um die Daten neu zu laden, wählen Sie im oberen Menüband "Speichern" aus. Dieser Datenladevorgang benötigt Zeit und verbraucht Kapazität. Planen Sie ihr Schema also gründlich, bevor Sie mit der Modellierung beginnen.
Voraussetzungen
- Ein Fabric-Arbeitsbereich mit einem Seehaus, das Ihre Quelltabellen enthält.
- Vertrautheit mit dem Diagrammmodell-Editor.
- Optional: Das Adventure Works-Beispiel-Dataset , um den Beispielen in diesem Artikel zu folgen.
Grundlegendes zu Knotentypen und Edgetypen
Bevor Sie ein Schema entwerfen, sollten Sie sich mit den folgenden Kernkonzepten vertraut machen:
Ein Knotentyp definiert eine Art von Entität in Ihrem Diagramm, z. B. einen Kunden, ein Produkt oder eine Bestellung. Sie besteht aus:
- Eine Knotenbezeichnung, bei der es sich um den Namen handelt, der diese Kategorie von Knoten identifiziert. Beispiel:
Customer. Sie verwenden die Bezeichnung in Abfragen, um auf Knoten dieses Typs zu verweisen. - Eine Quelltabelle, bei der es sich um die Lakehouse-Tabelle handelt, die die Quelldaten für den Knotentyp bereitstellt. Beispiel: die adventureworks_customers Tabelle.
- Eine Schlüsselspalte , die jeden Knoten eindeutig identifiziert. Beispiel:
CustomerID_K. -
Eigenschaften, die Spalten aus der Tabelle sind, die Sie als Attribute für jeden Knoten hinzufügen können. Beispiel:
FirstName,LastNameundEmailAddress.
Ein Knoten ist eine einzelne Instanz eines Knotentyps – eine Zeile in der Quelltabelle. Beispielsweise wird jede Zeile in adventureworks_customers zu einem Customer Knoten.
Ein Edgetyp definiert eine Art von Beziehung zwischen zwei Knotentypen. Sie besteht aus:
- Eine Randbezeichnung, bei der es sich um den Namen handelt, der diese Beziehungskategorie identifiziert. Beispiel:
purchases. - Eine Quelltabelle , die die Beziehungsdaten zwischen dem Ursprung und den Zielknoten enthält. Beispiel: die adventureworks_orders Tabelle.
- Ein Ursprungsknotentyp und ein Zielknotentyp , den der Rand verbindet. Beispielsweise
Customerals Ursprung undOrderAls Ziel.
Ein Rand ist eine einzelne Instanz eines Edgetyps – eine Zeile in der Quelltabelle, die zwei bestimmte Knoten verbindet.
Hinweis
Im Diagrammmodell-Editor erstellen die Schaltflächen "Knoten hinzufügen" und "Randschaltflächen hinzufügen " Knotentypen und Edgetypen, nicht einzelne Knoten oder Kanten.
Identifizieren von Entitäten und Beziehungen
Identifizieren Sie zunächst die Entitäten (Dinge) und Beziehungen (Verbindungen) in Ihren Daten. Entitäten werden zu Knotentypen. Verbindungen zwischen Entitäten werden zu Edgetypen.
Stellen Sie diese Fragen zu Ihren Quelltabellen:
- Was sind die primären Entitäten? Zeilen, die unterschiedliche reale Dinge darstellen, sind Kandidaten für Knotentypen. Beispielsweise Kunden, Produkte, Bestellungen und Mitarbeiter.
- Wie stehen diese Entitäten miteinander in Beziehung? Spalten, die auf Zeilen in einer anderen Tabelle verweisen (Fremdschlüssel), schlagen Kantentypen vor. Beispielsweise verweist
CustomerID_FKin einerordersTabelle auf diecustomersTabelle, was die Modellierung einerpurchasesKante vorschlägt. - Gibt es eingebettete Entitäten? Eine Spalte innerhalb einer Tabelle kann eine unterschiedliche Entität darstellen, die in einen eigenen Knotentyp extrahiert werden sollte. Ein Beispiel finden Sie unter Auswählen von Knotentypen. Eine Schritt-für-Schritt-Anleitung finden Sie unter Hinzufügen mehrerer Knoten- und Kantentypen aus einer Quelltabelle.
Auswählen von Knotentypen
Erstellen Sie einen Knotentyp für jede Entität, die Sie unabhängig abfragen oder durchlaufen müssen. Verwenden Sie die folgenden Richtlinien:
| Die Entität als Knotentyp festlegen, wenn... | Behalten Sie sie als Eigenschaft bei... |
|---|---|
| Sie müssen ihn erreichen oder durchqueren. | Es sind beschreibende Metadaten, die Sie nur lesen, nicht durchlaufen. |
| Mehrere Entitäten teilen eine Beziehung mit ihr. | Es ist einzigartig für die Einheit, zu der sie gehört. |
| Sie müssen sie direkt in Abfragen abgleichen oder gruppieren. | Sie filtern nur als Eigenschaft einer anderen Entität danach. |
Beispiel: Beginnt im Adventure Works-Dataset Country als Spalte in der employees Tabelle. Wenn Sie "welche Mitarbeiter in demselben Land leben?" oder "welche Länder haben die meisten Mitarbeiter?" abfragen müssen, extrahieren Sie Country einen eigenen Knotentyp. Wenn Sie nur das Land eines Mitarbeiters als Bezeichnung anzeigen müssen, belassen Sie es als Eigenschaft.
Auswählen von Schlüsselspalten
Jeder Knotentyp erfordert eine Schlüsselspalte (oder zusammengesetzten Schlüssel), die jeden Knoten eindeutig identifiziert. Wählen Sie Schlüssel sorgfältig aus:
-
Verwenden Sie vorhandene eindeutige Bezeichner aus Den Quelltabellen. Zum Beispiel:
CustomerID_KoderProductID_K. -
Vermeiden Sie Ersatzschlüssel, die keine geschäftliche Bedeutung haben, es sei denn, es gibt keinen natürlichen Schlüssel. Bevorzugen Sie zum Beispiel
CustomerIDgegenüber einer automatisch inkrementierenden Zeilennummer. -
Verwenden Sie zusammengesetzte Schlüssel , wenn eine einzelne Spalte keine Eindeutigkeit garantiert. Beispielsweise kann ein
ProductVersion-Knoten sowohlProductIDals auchVersionNumberals Schlüssel benötigt werden. - Gleichen Sie Datentypen zwischen Schlüsselspalten und den Fremdschlüsselspalten ab, die in Edgezuordnungen verwendet werden. Nicht übereinstimmende Typen verursachen Fehler bei der Erstellung von Kanten.
Tipp
Definieren Sie Schlüsseleinschränkungen für Knoten, damit die Abfrage-Engine direkte Abfragen von Schlüsseleigenschaften durchführen kann. Diese Optimierung beschleunigt Abfragen, die bestimmte Knoten nach Schlüsseln nachschlagen.
Hinzufügen von Knoteneigenschaften
Wenn Sie einen Knotentyp erstellen, wählen Sie aus der Quelltabelle aus, welche Eigenschaften als Eigenschaften in den Knotentyp eingeschlossen werden sollen, insbesondere Eigenschaften, für die OneLake Security-Zugriffsregeln auf die zugrunde liegende Quelltabelle angewendet wurden.
Fügen Sie eigenschaften während der Knotenerstellung mit der Schaltfläche "+Eigenschaft hinzufügen" hinzu . Fügen Sie alternativ eigenschaften zu einem vorhandenen Knoten hinzu, indem Sie im Diagrammmodell-Editor auf den Knotentyp doppelklicken, um das Dialogfeld "Knoten bearbeiten" zu öffnen und die Definition "Bearbeiten" auszuwählen. Wählen Sie "Eigenschaft hinzufügen" und dann Spalten aus der Quelltabelle aus.
Möglicherweise möchten Sie nicht jede Spalte in der Tabelle als Eigenschaft hinzufügen. Übermäßige Eigenschaften erhöhen den Speicher, langsame Abfragen und machen das Diagramm schwieriger zu verwalten. Vermeiden Sie aus diesen Gründen das Hinzufügen von Eigenschaften, die Sie nicht für Abfragen oder Analysen benötigen.
Behalten Sie für jeden Knotentyp nur die folgenden Eigenschaften bei:
- Erforderlich für die Eindeutigkeit des Knotens (Schlüsselspalten)
- Wird in
WHEREFiltern oderRETURNProjektionen in Ihren Abfragen verwendet - Erforderlich für nachgelagerte Analysen oder Visualisierungen
Weitere Informationen dazu, wie sich die Eigenschaftenanzahl auf die Abfrageleistung auswirkt, finden Sie unter "Nur die benötigten Eigenschaften zurückgeben".
Datentypen auswählen
Wählen Sie den spezifischsten Datentyp für jede Eigenschaft aus. Die richtigen Typen verbessern sowohl die Speichereffizienz als auch die Abfrageleistung:
- Verwenden Sie
INToderUINT64für numerische Bezeichner und Zählwerte. Numerische Vergleiche sind schneller als Zeichenfolgenvergleiche. - Verwenden Sie
ZONED DATETIMEfür Zeitstempel anstelle von zeichenformatierten Datumsangaben. - Verwenden Sie
BOOLEANfür True/False-Flags anstelle von Zeichenfolgenwerten wie"yes"oder"no".
Eine vollständige Liste der unterstützten Typen finden Sie unter "Aktuelle Einschränkungen" – Datentypen.
Auswählen von Edgetypen
Edgetypen definieren die Beziehungen zwischen Knotentypen. Jeder Edgetyp verbindet einen Ursprungsknotentyp mit einem Zielknotentyp über eine Quelltabelle.
Befolgen Sie die folgenden Richtlinien:
-
Verwenden Sie beschreibende Bezeichnungen , die als Verben oder Verbausdrücke gelesen werden. Beispiel:
purchases, ,sells,livesIn, undbelongsTo. Ein gut benannter Rand erleichtert das Lesen von Abfragen. - Berücksichtigen Sie die Richtung sorgfältig. Kanten in Graphen sind gerichtet. Wählen Sie die Richtung aus, die die reale Beziehung am besten darstellt. Beispielsweise
Customer-- liest sich Einkäufe>Ordernatürlicher alsOrder--gekauftVon-->Customer. - Geben Sie Edgetypen eindeutige Namen, die verschiedene Knotentyppaare verbinden. Wenn sowohl "Mitarbeiter verkauft eine Bestellung" als auch "Kunde kauft eine Bestellung" mit
Orderverbunden sind, benennen Sie siesellsundpurchasesanstatt ihnen denselben Namen zu geben. Weitere Informationen finden Sie unter Einschränkungen für die Edge-Erstellung.
Eigenschaften zu Kantentypen hinzufügen
Wie Knoten beginnen Edgetypen ohne Eigenschaften. Sie können optional Eigenschaften hinzufügen, wenn die Daten die Beziehung selbst statt eines der Endpunkte beschreiben. Edgeeigenschaften sind am nützlichsten, wenn Sie GQL-Abfragen schreiben, die Daten über die Beziehung selbst filtern, aggregieren oder zurückgeben müssen.
Um eine Eigenschaft hinzuzufügen, doppelklicken Sie im Diagrammmodell-Editor auf einen Edgetyp, um das Dialogfeld zum Bearbeiten des Rands zu öffnen, und wählen Sie "Definition bearbeiten" aus. Wählen Sie "Eigenschaft hinzufügen" und dann Spalten aus der Quelltabelle aus.
Wann Kanteneigenschaften hinzugefügt werden sollten: Wenn eine Spalte die Frage „wie viel?“, „wann?“ oder „auf welche Weise?“ zur Beziehung zwischen zwei Knoten beantwortet, gehört sie an die Kante – nicht auf einen der beiden Knoten.
Beispiel: Im Adventure Works-Dataset verbindet die contains Kante Order mit Product durch die adventureworks_orders Tabelle. Spalten wie OrderQty, UnitPrice und LineTotal beschreiben den Zusammenhang – wie viele Einheiten eines Produkts in einer bestimmten Bestellung enthalten waren und zu welchem Preis. Spalten wie OrderDate oder ShipDate beschreiben die Reihenfolge selbst und gehören zum Order Knotentyp, nicht auf der Kante.
Von Bedeutung
Die Quelltabelle für einen Rand muss Spalten enthalten, die den Schlüsselspalten der Ursprungs- und Zielknotentypen in Werten und Datentypen entsprechen. Tabellen, die Sie zum Erstellen von Knotentypen verwenden, können auch als Edgequelltabellen dienen, wenn sie diese Anforderung erfüllen.
Allgemeine Tabellen-zu-Graph-Muster
In der folgenden Tabelle wird zusammengefasst, wie einige gängige tabellarische Datenstrukturen in Diagrammelemente übersetzt werden:
| Tabellarische Struktur | Diagrammergebnis | Beispiel |
|---|---|---|
| One-to-many: Übergeordnete Tabelle + untergeordnete Tabelle mit Fremdschlüssel | Zwei Knotentypen, die durch einen Edgetyp verbunden sind. |
Customer
--
Käufe ->Order |
| Viele-zu-viele: Verknüpfungstabelle zwischen zwei Tabellen | Kantentyp zwischen zwei Knotentypen. |
Vendor
--
produziert-->Product |
| Eingebettete Entität: Spalte, die eine gemeinsame Entität darstellt | Extrahierter Knotentyp mit Kante. |
Employee
--
livesIn-->Country |
| Hierarchie: Kette von über- und untergeordneten Tabellen | Knotentypen, die durch Ränder auf jeder Ebene verknüpft sind. |
Product
--
istVomTyp-->Subcategory --gehörtZu-->Category |
Eine Schritt-für-Schritt-Anleitung zum Muster für eingebettete Entitäten finden Sie unter Mehrere Knoten- und Edgetypen aus einer Quelltabelle hinzufügen.
Ändern des Diagrammschemas
Graph unterstützt keine Schemaentwicklung. Nachdem Sie ein Diagrammmodell gespeichert haben, ist die Struktur von Knotentypen, Kantentypen und deren Eigenschaften festgelegt. Wenn Sie strukturelle Änderungen vornehmen möchten, z. B. das Hinzufügen einer Eigenschaft zu einem Knotentyp, das Entfernen eines Edgetyps oder das Ändern einer Schlüsselspalte, müssen Sie ein neues Diagrammmodell erstellen und Die Daten neu laden.
So ändern Sie Ihr Diagrammschema:
- Erstellen Sie in Ihrem Arbeitsbereich ein neues Diagrammelement, das eine Verbindung mit demselben Seehaus herstellt.
- Fügen Sie im Diagrammmodell-Editor die benötigten Knotentypen und Edgetypen hinzu, einschließlich neuer oder geänderter Eigenschaften.
- Konfigurieren Sie Schlüsselspalten und Edgezuordnungen. Stellen Sie sicher, dass Datentypen zwischen Schlüsselspalten und Fremdschlüsselspalten übereinstimmen.
- Wählen Sie "Speichern" aus, um Daten aufzunehmen und das neue Diagramm zu erstellen.
- Aktualisieren Sie alle Abfragemengen so, dass sie auf das neue Diagramm zeigen.
- Nachdem Sie überprüft haben, ob das neue Diagramm wie erwartet funktioniert, löschen Sie das ursprüngliche Diagrammelement, wenn Sie es nicht benötigen.