Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett grafschema är en samling nodtyper, kanttyper och deras egenskaper som definierar strukturen i diagrammet. Ett väl utformat grafschema gör dina data enklare att fråga, underhålla och utöka. Den här artikeln innehåller metodtips för att omvandla tabelldata i ett sjöhus till ett effektivt etiketterat egenskapsdiagram i Microsoft Fabric.
Använd dessa riktlinjer innan du börjar modellera i diagrammodellredigeraren. Stegvisa instruktioner för hur du skapar noder och kanter finns i grafens självstudie. Exempel i den här artikeln använder exempeldatauppsättningen Adventure Works.
Viktigt!
Graph stöder för närvarande inte schemautveckling. När du har skapat en grafmodell och läst in dess data kräver eventuella strukturella ändringar, till exempel att lägga till eller ta bort nodtyper, kanttyper och egenskaper, att du läser in alla data igen innan du kör frågor mot den uppdaterade strukturen. Om du vill läsa in data igen väljer du Spara i det övre menyfliksområdet. Den här datainläsningsprocessen tar tid och förbrukar kapacitet, så planera schemat noggrant innan du börjar modellera.
Förutsättningar
- En Fabric arbetsyta med ett sjöhus som innehåller dina källtabeller.
- Kunskaper om diagrammodellredigeraren.
- Valfritt: Exempeldatauppsättningen Adventure Works för att följa exemplen i den här artikeln.
Förstå nodtyper och gränstyper
Innan du utformar ett schema bör du förstå dessa grundläggande begrepp:
En nodtyp definierar en typ av entitet i diagrammet, till exempel en kund, produkt eller beställning. Den består av:
- En nodetikett, som är det namn som identifierar den här nodens kategori. Till exempel
Customer. Du använder etiketten i frågor för att referera till noder av den här typen. - En källtabell, som är lakehouse-tabellen som tillhandahåller källdata för nodtypen. Till exempel adventureworks_customers-tabellen.
- En nyckelkolumn som unikt identifierar varje nod. Till exempel
CustomerID_K. -
Egenskaper, som är kolumner från tabellen som du kan lägga till som attribut på varje nod. Till exempel
FirstName,LastNameochEmailAddress.
En nod är en enskild instans av en nodtyp – en rad i källtabellen. Till exempel blir varje rad i adventureworks_customers en Customer nod.
En kanttyp definierar en typ av relation mellan två nodtyper. Den består av:
- En kantetikett, som är namnet som identifierar den här typen av relation. Till exempel
purchases. - En källtabell som innehåller relationsdata mellan ursprungs- och målnoderna. Till exempel tabellen adventureworks_orders.
- En typ av ursprungsnod och en målnodtyp som gränsen ansluter till. Till exempel
Customersom ursprung ochOrdersom mål.
En kant är en enskild instans av en kanttyp – en rad i källtabellen som ansluter två specifika noder.
Anmärkning
I diagrammodellredigeraren skapar knapparna Lägg till nod och Lägg till kant nodtyper och kanttyper, inte enskilda noder eller kanter.
Identifiera entiteter och relationer
Börja med att identifiera entiteter (saker) och relationer (anslutningar) i dina data. Entiteter blir nodtyper. Anslutningar mellan entiteter blir gränstyper.
Ställ följande frågor om dina källtabeller:
- Vilka är de primära entiteterna? Rader som representerar distinkta verkliga saker är kandidater för nodtyper. Till exempel kunder, produkter, beställningar och anställda.
- Hur relaterar dessa entiteter till varandra? Kolumner som refererar till rader i en annan tabell (sekundärnycklar) föreslår kanttyper. I en
CustomerID_FKtabell pekar till exempelorderspåcustomerstabellen, vilket tyder på modellering av enpurchaseskant. - Finns det inbäddade entiteter? En kolumn i en tabell kan representera en distinkt entitet som är värd att extrahera till sin egen nodtyp. Ett exempel finns i Välj nodtyper. En stegvis genomgång finns i Lägga till flera nod- och kanttyper från en källtabell.
Välj nodtyper
Skapa en nodtyp för varje entitet som du behöver köra frågor mot eller gå igenom oberoende av varandra. Använd dessa riktlinjer:
| Gör entiteten till en nodtyp när... | Behåll den som en egenskap när... |
|---|---|
| Du måste navigera till eller genom den. | Det är beskrivande metadata som du bara läser, inte navigerar. |
| Flera entiteter delar en relation med den. | Den är unik för den entitet som den tillhör. |
| Du måste matcha eller gruppera efter det direkt i sökfrågor. | Du filtrerar bara efter den som en egenskap för en annan entitet. |
Exempel: I datauppsättningen Country Adventure Works börjar som en kolumn i tabellen employees. Om du behöver fråga "vilka anställda bor i samma land?" eller "vilka länder har flest anställda?", extraherar Country du till sin egen nodtyp. Om du bara behöver visa en anställds land som en etikett lämnar du det som en egenskap.
Välj nyckelkolumner
Varje nodtyp kräver en nyckelkolumn (eller sammansatt nyckel) som unikt identifierar varje nod. Välj nycklar noggrant:
-
Använd befintliga unika identifierare från dina källtabeller. Exempel:
CustomerID_KellerProductID_K. -
Undvik surrogatnycklar som saknar affärsmenande om det inte finns någon naturlig nyckel. Du kan till exempel föredra
CustomerIDframför ett automatiskt inkrementellt radnummer. -
Använd sammansatta nycklar när en enskild kolumn inte garanterar unikhet. En nod kan till exempel
ProductVersionbehöva bådeProductIDochVersionNumbersom nyckel. - Matcha datatyper mellan nyckelkolumner och främmande nyckelkolumner som används i kantmappningar. Felmatchade typer orsakar fel vid skapande av kanter.
Tips/Råd
Definiera nodnyckelbegränsningar för att göra det möjligt för frågemotorn att utföra direkta sökningar på nyckelegenskaper. Den här optimeringen påskyndar frågor som söker efter specifika noder efter nyckel.
Lägg till nodegenskaper
När du skapar en nodtyp väljer du vilka egenskaper från källtabellen som ska inkluderas som egenskaper i nodtypen, särskilt egenskaper för vilka OneLake Security-åtkomstregler har tillämpats på den underliggande källtabellen.
Lägg till egenskaper när noden skapas med knappen + Lägg till egenskap . Du kan också lägga till egenskaper i en befintlig nod genom att dubbelklicka på nodtypen i diagrammodellredigeraren för att öppna dialogrutan för nodredigering och välja Redigera definition. Välj Lägg till egenskap och välj sedan kolumner från källtabellen.
Du kanske inte vill lägga till varje kolumn i tabellen som en egenskap. Överdrivna egenskaper ökar lagringen, långsamma frågor och gör diagrammet svårare att underhålla. Av dessa skäl bör du undvika att lägga till egenskaper som du inte behöver för frågor eller analys.
För varje nodtyp behåller du endast egenskaper som är:
- Krävs för nodens unika egenskaper (nyckelkolumner)
- Används i
WHEREfilter ellerRETURNprojektioner i dina sökfrågor - Behövs för nedströmsanalys eller visualisering
Mer information om hur antalet egenskaper påverkar frågeprestanda finns i Returnera endast de egenskaper du behöver.
Välj datatyper
Välj den mest specifika datatypen för varje egenskap. Rätt typer förbättrar både lagringseffektivitet och frågeprestanda:
- Använd
INTellerUINT64för numeriska identifierare och antal. Numeriska jämförelser är snabbare än strängjämförelser. - Använd
ZONED DATETIMEför tidsstämplar i stället för strängformaterade datum. - Använd
BOOLEANför true/false-flaggor i stället för strängvärden som"yes"eller"no".
En fullständig lista över typer som stöds finns i Aktuella begränsningar – Datatyper.
Välj kanttyper
Kanttyper definierar relationerna mellan nodtyper. Varje kanttyp ansluter en typ av ursprungsnod till en målnodtyp via en källtabell.
Följ dessa riktlinjer:
-
Använd beskrivande etiketter som läser som verb eller verbfraser. Till exempel
purchases, ,sellslivesInochbelongsTo. En väl namngiven kant gör frågor enklare att läsa. - Överväg riktningen noggrant. Kanterna i grafen är riktade. Välj den riktning som bäst representerar den verkliga relationen. Till exempel
Customer--läser inköp>Ordermer naturligt änOrder--purchasedBy-->Customer. - Ge distinkta namn till typer av kanter som förbinder skilda par av nodtyper. Om både "anställd säljer order" och "kundköpsbeställning" ansluter till
Order, namnge demsellsochpurchasesi stället för att ge båda samma etikett. Mer information finns i begränsningar för gränsskapande.
Lägga till egenskaper i kanttyper
Precis som noder börjar kanttyper utan egenskaper. Du kan också lägga till egenskaper när data beskriver själva relationen i stället för någon av slutpunkterna. Edge-egenskaper är mest användbara när du skriver GQL-frågor som behöver filtrera, aggregera eller returnera data om själva relationen.
Om du vill lägga till en egenskap dubbelklickar du på en kanttyp i diagrammodellredigeraren för att öppna dialogrutan redigera kant och väljer Redigera definition. Välj Lägg till egenskap och välj sedan kolumner från källtabellen.
När kantegenskaper ska läggas till: Om en kolumn svarar "hur mycket?", "när?", eller "på vilket sätt?" om anslutningen mellan två noder, hör den hemma på kanten – inte på någon av noderna.
Exempel: I Adventure Works datasetet ansluter contains kanten Order till Product genom tabellen adventureworks_orders. Kolumner som OrderQty, UnitPriceoch LineTotal beskriver relationen – hur många av en produkt som var i en viss ordning, till vilket pris. Kolumner som OrderDate eller ShipDate beskriver själva ordningen och tillhör Order nodtypen, inte på kanten.
Viktigt!
Källtabellen för en kant måste innehålla kolumner som matchar nyckelkolumnerna för både ursprungs- och målnodtyperna i värden och datatyp. Tabeller som du använder för att skapa nodtyper kan också fungera som gränskällatabeller om de uppfyller detta krav.
Vanliga tabell-till-diagram-mönster
I följande tabell sammanfattas hur vissa vanliga tabelldatastrukturer översätts till grafelement:
| Tabellstruktur | Diagramresultat | Exempel |
|---|---|---|
| En-till-många: Överordnad tabell + underordnad tabell med främmande nyckel | Två nodtyper som är förbundna med en kanttyp. |
Customer
--
inköp...>Order |
| Många-till-många: Kopplingstabell som länkar två tabeller | Kanttyp mellan två nodtyper. |
Vendor
--
producerar–>Product |
| Inbäddad entitet: Kolumn som representerar en delad entitet | Extraherad nodtyp med kant. |
Employee
--
livesIn-->Country |
| Hierarki: Kedja av överordnade och underordnade tabeller | Nodtyper länkade efter kanter på varje nivå. |
Product
--
ärAvTyp-->Subcategory --tillhör-->Category |
En stegvis genomgång av det inbäddade entitetsmönstret finns i Lägga till flera nod- och kanttyper från en källtabell.
Ändra grafschemat
Graph stöder inte schemautveckling. När du har sparat en grafmodell korrigeras strukturen för nodtyper, kanttyper och deras egenskaper. Om du vill göra strukturella ändringar, till exempel lägga till en egenskap i en nodtyp, ta bort en kanttyp eller ändra en nyckelkolumn, måste du skapa en ny grafmodell och läsa in dina data igen.
Så här ändrar du grafschemat:
- På din arbetsyta skapar du ett nytt diagramobjekt som ansluter till samma sjöhus.
- I diagrammodellredigeraren lägger du till de nodtyper och kanttyper som du behöver, inklusive eventuella nya eller ändrade egenskaper.
- Konfigurera nyckelkolumner och kantmappningar. Kontrollera att datatyperna matchar mellan nyckelkolumner och främmande nyckelkolumner.
- Välj Spara för att mata in data och skapa det nya diagrammet.
- Uppdatera alla frågeuppsättningar så att de pekar på det nya diagrammet.
- När du har kontrollerat att det nya diagrammet fungerar som förväntat tar du bort det ursprungliga grafobjektet om du inte behöver det.