Del via


Design et grafskjema i Microsoft Fabric

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

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, og EmailAddress.

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 Customer som kilde og Order som 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_FK i en orders tabell peker på tabellen customers , noe som antyder å modellere en purchases kant.
  • 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_K eller ProductID_K.
  • Unngå surrogatnøkler som mangler forretningsbetydning med mindre det ikke finnes noen naturlig nøkkel. For eksempel, foretrekk CustomerID fremfor et automatisk økende radnummer.
  • Bruk sammensatte nøkler når en enkelt kolonne ikke garanterer unikhet. For eksempel kan en ProductVersion node trenge både ProductID og VersionNumber som 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, , livesInog belongsTo. 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 –>Order høres mer naturlig ut enn Order --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 dem sells og purchases i 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 WHERE filtre eller RETURN projeksjoner 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 INT eller UINT64 for numeriske identifikatorer og tellinger. Numeriske sammenligninger er raskere enn strengsammenligninger.
  • Bruk ZONED DATETIME for tidsstempler i stedet for strengformaterte datoer.
  • Bruk BOOLEAN for 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:

  1. I arbeidsområdet ditt oppretter du et nytt grafelement som kobles til det samme innsjøhuset.
  2. I grafmodelleditoren legger du til nodetypene og kanttypene du trenger, inkludert eventuelle nye eller modifiserte egenskaper.
  3. Konfigurer nøkkelkolonner og kantkartlegginger. Sørg for at datatypene samsvarer mellom nøkkelkolonner og fremmednøkkelkolonner.
  4. Velg Save for å ta inn data og bygg den nye grafen.
  5. Oppdater alle spørringssett slik at de peker til den nye grafen.
  6. Etter at du har verifisert at den nye grafen fungerer som forventet, slett det opprinnelige grafelementet hvis du ikke trenger det.