Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Et grafskjema er samlingen av nodetyper, kanttyper og deres egenskaper som definerer strukturen til grafen din. Et godt designet grafskjema gjør dataene dine enklere å spørre, vedlikeholde og utvide. Denne artikkelen gir beste praksis for å gjøre tabelldata i et innsjøhus om til en effektiv merket eiendomsgraf i Microsoft Fabric.
Bruk disse retningslinjene før du begynner å modellere i graf-modelleditoren. For trinnvise instruksjoner for å lage noder og kanter, se grafveiledningen. Eksempler i denne artikkelen bruker Adventure Works-eksempeldatasettet.
Viktig!
Graph støtter for øyeblikket ikke skjemautvikling. Etter at du har opprettet en grafmodell og lastet inn dataene, krever eventuelle strukturelle endringer, som å legge til eller fjerne nodetyper, kanttyper og egenskaper, at du laster inn all data på nytt før du spør den oppdaterte strukturen. For å laste inn dataene på nytt, velg Lagre i øverste bånd. Denne datainnlastingsprosessen tar tid og bruker kapasitet, så planlegg skjemaet grundig før du begynner å modellere.
Forutsetninger
- Et Fabric arbeidsområde med et innsjøhus som inneholder kildetabellene dine.
- Kjennskap til grafmodelleditoren.
- Valgfritt: Adventure Works-eksempeldatasett for å følge eksemplene i denne artikkelen.
Forstå nodetyper og kanttyper
Før du designer et skjema, forstå disse kjernekonseptene:
En nodetype definerer en type enhet i grafen din, som for eksempel en kunde, et produkt eller en ordre. Den består av:
- En nodeetikett, som er navnet som identifiserer denne kategorien av noder. Eksempel:
Customer. Du bruker etiketten i spørringer for å referere til noder av denne typen. - En kildetabell, som er lakehouse-tabellen som gir kildedata for nodetypen. For eksempel adventureworks_customers tabellen.
- En nøkkelkolonne som entydig identifiserer hver node. Eksempel:
CustomerID_K. -
Egenskaper, som er kolonner fra tabellen som du kan legge til som attributter på hver node. For eksempel,
FirstName,LastName, ogEmailAddress.
En node er en individuell instans av en nodetype—én rad i kildetabellen. For eksempel blir hver rad i adventureworks_customers en Customer node.
En kanttype definerer en type forhold mellom to nodetyper. Den består av:
- En kantetikett, som er navnet som identifiserer denne kategorien av relasjoner. Eksempel:
purchases. - En kildetabell som inneholder relasjonsdata mellom opprinnelses- og målnodene. For eksempel adventureworks_orders-tabellen .
- En opprinnelsesnodetype og en målnodetype som kanten kobler til. For eksempel
Customersom opprinnelse ogOrdersom mål.
En kant er en individuell instans av en kanttype—én rad i kildetabellen som forbinder to spesifikke noder.
Bemerkning
I grafmodelleditoren lager knappene Legg til node og Legg til kanter nodetyper og kanttyper, ikke individuelle noder eller kanter.
Identifiser enheter og relasjoner
Start med å identifisere enhetene (tingene) og relasjonene (forbindelserne) i dataene dine. Entiteter blir nodetyper. Forbindelser mellom enheter blir kanttyper.
Still disse spørsmålene om kildetabellene dine:
- Hva er de primære enhetene? Rader som representerer distinkte virkelige ting er kandidater for nodetyper. For eksempel kunder, produkter, bestillinger og ansatte.
- Hvordan forholder disse enhetene seg til hverandre? Kolonner som refererer til rader i en annen tabell (fremmednøkler) antyder kanttyper. For eksempel,
CustomerID_FKi enorderstabell peker på tabellencustomers, noe som antyder å modellere enpurchaseskant. - Finnes det innebygde enheter? En kolonne inne i en tabell kan representere en distinkt enhet som er verdt å trekke ut til sin egen nodetype. For et eksempel, se Velg nodetyper. For en steg-for-steg-gjennomgang, se Legg til flere node- og kanttyper fra én kildetabell.
Velg nodetyper
Lag en nodetype for hver enhet som du må spørre eller gjennomgå uavhengig. Bruk disse retningslinjene:
| Gjør enheten til en nodetype når... | Behold det som eiendom når... |
|---|---|
| Du må krysse til eller gjennom den. | Det er beskrivende metadata du bare leser, ikke går gjennom. |
| Flere enheter deler et forhold til den. | Det er unikt for enheten det tilhører. |
| Du må matche eller gruppere etter det direkte i spørringene. | Du filtrerer kun etter den som en egenskap til en annen enhet. |
Eksempel: I Adventure Works-datasettet Country starter det som en kolonne i tabellen employees . Hvis du trenger å spørre «hvilke ansatte bor i samme land?» eller «hvilke land har flest ansatte?», trekk ut Country i sin egen nodetype. Hvis du bare trenger å vise en ansatts land som merkelapp, la det være en eiendom.
Velg nøkkelkolonner
Hver nodetype krever en nøkkelkolonne (eller sammensatt nøkkel) som entydig identifiserer hver node. Velg nøkler med omhu:
-
Bruk eksisterende unike identifikatorer fra kildetabellene dine. For eksempel
CustomerID_KellerProductID_K. -
Unngå surrogatnøkler som mangler forretningsbetydning med mindre det ikke finnes noen naturlig nøkkel. For eksempel, foretrekk
CustomerIDfremfor et automatisk økende radnummer. -
Bruk sammensatte nøkler når en enkelt kolonne ikke garanterer unikhet. For eksempel kan en
ProductVersionnode trenge bådeProductIDogVersionNumbersom sin nøkkel. - Match datatyper mellom nøkkelkolonner og fremmednøkkelkolonner som brukes i kantkartlegginger. Mismatchede typer fører til feil i kantopprettelse.
Tips
Definer nodenøkkelbegrensninger slik at spørringsmotoren kan utføre direkte oppslag på nøkkelegenskaper. Denne optimaliseringen gjør spørringer som søker opp spesifikke noder etter nøkkel raskere.
Legg til nodeegenskaper
Når du oppretter en nodetype, velg hvilke egenskaper fra kildetabellen som skal inkluderes som egenskaper i nodetypen, spesielt egenskaper hvor OneLake Security-tilgangsreglene er anvendt på den underliggende kildetabellen.
Legg til egenskaper under nodeopprettelsen med + Legg til egenskapsknappen . Alternativt kan du legge til egenskaper på en eksisterende node ved å dobbeltklikke på nodetypen i grafmodelleditoren for å åpne noderedigeringsdialogen og velge Redigerdefinisjon. Velg Add property, og velg deretter kolonner fra kildetabellen.
Du vil kanskje ikke legge til hver kolonne i tabellen som en egenskap. For mange egenskaper øker lagringen, treger spørringene og gjør grafen vanskeligere å vedlikeholde. Av disse grunnene bør du unngå å legge til egenskaper du ikke trenger for spørringer eller analyser.
For hver nodetype, behold kun egenskaper som er:
- Kreves for nodens unikhet (nøkkelkolonner)
- Brukt i
WHEREfiltre ellerRETURNprojeksjoner i spørringene dine - Nødvendig for nedstrømsanalyse eller visualisering
For mer informasjon om hvordan antall egenskaper påvirker spørringsytelsen, se Returner kun de egenskapene du trenger.
Velg datatyper
Velg den mest spesifikke datatypen for hver egenskap. De riktige typene forbedrer både lagringseffektivitet og spørringsytelse:
- Bruk
INTellerUINT64for numeriske identifikatorer og tellinger. Numeriske sammenligninger er raskere enn strengsammenligninger. - Bruk
ZONED DATETIMEfor tidsstempler i stedet for strengformaterte datoer. - Bruk
BOOLEANfor sanne/falske flagg i stedet for strengverdier som"yes"eller"no".
For fullstendig liste over støttede typer, se Nåværende begrensninger — Datatyper.
Velg kanttyper
Kanttyper definerer forholdet mellom nodetyper. Hver kanttype kobler en opprinnelsesnode til en målnodetype via en kildetabell.
Følg disse retningslinjene:
-
Bruk beskrivende etiketter som leses som verb eller verbfraser. For eksempel,
purchases,sells, ,livesInogbelongsTo. En velnavngitt kant gjør spørringer lettere å lese. - Vurder retningen nøye. Kantene i grafen er rettede. Velg den retningen som best representerer det virkelige forholdet. For eksempel,
Customer--kjøp –>Orderhøres mer naturlig ut ennOrder--kjøpt Av--.>Customer - Gi distinkte navn til kanttyper som kobler sammen ulike nodetypepar. Hvis både «ansatt selger ordre» og «kunde kjøper ordre» kobles til
Order, navngi demsellsogpurchasesi stedet for å gi begge samme etikett. For mer informasjon, se begrensninger for kantopprettelse.
Legg til egenskaper til kanttyper
Som noder starter kanttyper uten egenskaper. Du kan eventuelt legge til egenskaper når dataene beskriver selve relasjonen, i stedet for noen av endepunktene. Kantegenskaper er mest nyttige når du skriver GQL-spørringer som må filtrere, aggregere eller returnere data om selve relasjonen.
For å legge til en egenskap, dobbeltklikk på en kanttype i grafmodelleditoren for å åpne kantredigeringsdialogen, og velg Redigerdefinisjon. Velg Add property, og velg deretter kolonner fra kildetabellen.
Når man skal legge til kantegenskaper: Hvis en kolonne svarer på «hvor mye?», «når?» eller «på hvilken måte?» om forbindelsen mellom to noder, hører den hjemme på kanten – ikke på noen av nodene.
Eksempel: I Adventure Works-datasettet kobles contains kanten Order til Product via adventureworks_orders tabellen. Kolonner som OrderQty, UnitPrice, og LineTotal beskriver forholdet – hvor mange av et produkt som var i en bestemt rekkefølge, til hvilken pris. Kolonner som OrderDate eller ShipDate beskriver selve rekkefølgen og hører hjemme på Order nodetypen, ikke på kanten.
Viktig!
Kildetabellen for en kant må inneholde kolonner som matcher nøkkelkolonnene til både opprinnelses- og målnodetypene i verdier og datatype. Tabeller du bruker for å lage nodetyper kan også fungere som edge source-tabeller hvis de oppfyller dette kravet.
Vanlige tabell-til-graf-mønstre
Følgende tabell oppsummerer hvordan noen vanlige tabellariske datastrukturer oversettes til grafelementer:
| Tabularstruktur | Grafresultat | Eksempel |
|---|---|---|
| En-til-mange: Foreldretabell + barnetabell med fremmednøkkel | To nodetyper koblet sammen av en kanttype. |
Customer
--
kjøp-->Order |
| Mange-til-mange: Koblingstabell som knytter sammen to tabeller | Kanttype mellom to nodetyper. |
Vendor
--
produserer-->Product |
| Innebygd enhet: Kolonne som representerer en delt enhet | Ekstrahert nodetype med kant. |
Employee
--
livesI-->Country |
| Hierarki: Kjeden av foreldre-barn-tabeller | Nodetyper koblet sammen av kanter på hvert nivå. |
Product
--
erAvType-->Subcategory --tilhører-->Category |
For en steg-for-steg-gjennomgang av det innebygde entitetsmønsteret, se Legg til flere node- og kanttyper fra én kildetabell.
Endre grafskjemaet ditt
Grafen støtter ikke skjemautvikling. Etter at du lagrer en grafmodell, er strukturen til nodetyper, kanttyper og deres egenskaper fast. For å gjøre strukturelle endringer – som å legge til en egenskap i en nodetype, fjerne en kanttype eller endre en nøkkelkolonne – må du lage en ny grafmodell og laste inn dataene dine på nytt.
For å endre grafskjemaet ditt:
- I arbeidsområdet ditt oppretter du et nytt grafelement som kobles til det samme innsjøhuset.
- I grafmodelleditoren legger du til nodetypene og kanttypene du trenger, inkludert eventuelle nye eller modifiserte egenskaper.
- Konfigurer nøkkelkolonner og kantkartlegginger. Sørg for at datatypene samsvarer mellom nøkkelkolonner og fremmednøkkelkolonner.
- Velg Save for å ta inn data og bygg den nye grafen.
- Oppdater alle spørringssett slik at de peker til den nye grafen.
- Etter at du har verifisert at den nye grafen fungerer som forventet, slett det opprinnelige grafelementet hvis du ikke trenger det.