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.
Bemerkning
Denne funksjonen er for øyeblikket i offentlig forhåndsversjon. Denne forhåndsvisningen leveres uten en tjenesteavtale, og anbefales ikke for produksjonsarbeidsbelastninger. Enkelte funksjoner støttes kanskje ikke eller kan ha begrensede funksjoner. For mer informasjon, se Supplemental Terms of Use for Microsoft Azure Previews.
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 modellert dataene dine, er strukturen til noder, kanter og egenskaper fast. Strukturelle endringer, som å legge til egenskaper, endre etiketter eller endre relasjonstyper, krever at du lager en ny grafmodell og laster inn all data på nytt. Denne prosessen tar tid og bruker kapasitet, så planlegg skjemaet ditt 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 etikett, 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 kartleggingstabell, som er lakehouse-tabellen som gir kildedata for nodetypen. For eksempel adventureworks_customers tabellen.
- En nøkkelkolonne som entydig identifiserer hver node (merket ID i grafmodelleditoren). Eksempel:
CustomerID_K. -
Egenskaper, som er kolonner fra tabellen som blir attributter på hver node. For eksempel,
FirstName,LastName, ogEmailAddress.
En node er en individuell instans av en nodetype – én rad i mapping-tabellen. 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 merkelapp, som er navnet som identifiserer denne kategorien av relasjoner. Eksempel:
purchases. - En kartleggingstabell som inneholder relasjonsdata mellom kilde- og målnodene. For eksempel adventureworks_orders-tabellen .
- En kildenodetype og en målnodetype som kanten kobler til. For eksempel
Customersom kilde ogOrdersom mål.
En kant er en individuell instans av en kanttype – én rad i kartleggingstabellen 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 kartleggingstabell.
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.
Velg kanttyper
Kanttyper definerer forholdet mellom nodetyper. Hver kanttype kobler en kildenode til en målnode gjennom en mapping table.
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
I motsetning til nodetyper 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 dialogen Rediger kantskjema , velg Legg til egenskap, og velg deretter en kolonne fra karttabellen.
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 Order kanten contains 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!
Kartleggingstabellen for en kant må inneholde kolonner som matcher nøkkelkolonnene til både kilde- og målnodetypene når det gjelder verdier og datatype. Tabeller du bruker for å lage nodetyper kan også fungere som kantkartleggingstabeller hvis de oppfyller dette kravet.
Fjern unødvendige egenskaper
Når du oppretter en nodetype fra en mapping-tabell, blir hver kolonne i tabellen en egenskap som standard. For mange egenskaper øker lagringen, treger spørringene og gjør grafen vanskeligere å vedlikeholde. Av disse grunnene, fjern egenskaper du ikke trenger for spørringer eller analyse.
Bemerkning
Kanttyper fungerer annerledes – de starter uten egenskaper. Du legger manuelt til kun de egenskapene du trenger ved å bruke knappen Legg til egenskap i dialogen Rediger kantskjema .
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.
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 kartleggingstabell.
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.