Navrhnúť grafovú schému v Microsoft Fabric

Schéma grafu je súbor typov uzlov, typov hrán a ich vlastností, ktoré definujú štruktúru vášho grafu. Dobre navrhnutá grafová schéma uľahčuje dotazovanie, údržbu a rozširovanie vašich dát. Tento článok poskytuje osvedčené postupy na premenenie tabuľkových údajov v jazernom dome na efektívny označený graf vlastností v Microsoft Fabric.

Použite tieto odporúčania predtým, než začnete modelovať v editore grafových modelov. Pre podrobné návody na tvorbu uzlov a hrán si pozrite tutoriál s grafom. Príklady v tomto článku využívajú ukážkový dataset Adventure Works.

Dôležité

Graph momentálne nepodporuje evolúciu schémy. Po vytvorení grafového modelu a načítaní jeho dát si akékoľvek štrukturálne zmeny, ako pridávanie alebo odstraňovanie typov uzlov, hrán a vlastností, vyžadujú opätovné načítanie všetkých dát pred odoslaním dotazu na aktualizovanú štruktúru. Na opätovné načítanie dát vyberte Uložiť v hornej páske. Tento proces opätovného načítania dát trvá čas a spotrebúva kapacitu, preto si dôkladne naplánujte schému ešte predtým, než začnete modelovať.

Požiadavky

Pochopte typy uzlov a hrán

Predtým, než navrhnete schému, pochopte tieto základné koncepty:

Typ uzla definuje druh entity vo vašom grafe, ako je zákazník, produkt alebo objednávka. Skladá sa z:

  • Značka uzla, čo je názov, ktorý identifikuje túto kategóriu uzlov. Napríklad Customer. Označenie používate v dotazoch na označenie uzlov tohto typu.
  • Zdrojová tabuľka, čo je lakehouse tabuľka, ktorá poskytuje zdrojové dáta pre typ uzla. Napríklad adventureworks_customers tabuľka.
  • Stĺpec kľúča , ktorý jednoznačne identifikuje každý uzol. Napríklad CustomerID_K.
  • Vlastnosti, čo sú stĺpce z tabuľky, ktoré môžete pridať ako atribúty na každý uzol. Napríklad FirstName, LastName, a EmailAddress.

Uzol je samostatná inštancia typu uzla – jeden riadok v zdrojovej tabuľke. Napríklad každý riadok v adventureworks_customers sa stáva Customer uzlom.

Typ hrany definuje druh vzťahu medzi dvoma typmi uzlov. Skladá sa z:

  • Edge label, čo je názov, ktorý identifikuje túto kategóriu vzťahu. Napríklad purchases.
  • Zdrojová tabuľka, ktorá obsahuje údaje o vzťahoch medzi pôvodným a cieľovým uzlom. Napríklad adventureworks_orders tabuľka.
  • Typ pôvodného uzla a typ cieľového uzla , ktorý edge spája. Napríklad Customer ako pôvod a Order ako cieľ.

Hrana je samostatná inštancia typu hrany – jeden riadok v zdrojovej tabuľke, ktorý spája dva konkrétne uzly.

Poznámka

V editore grafových modelov tlačidlá Pridať uzol a Pridať hrany vytvárajú typy uzlov a hrán, nie jednotlivé uzly alebo hrany.

Identifikácia entít a vzťahov

Začnite identifikáciou entít (vecí) a vzťahov (spojení) vo vašich dátach. Entity sa stávajú typmi uzlov. Spojenia medzi entitami sa stávajú typmi hrán.

Opýtajte sa tieto otázky ohľadom vašich zdrojových tabuliek:

  • Aké sú hlavné entity? Riadky, ktoré reprezentujú odlišné reálne veci, sú kandidátmi na typy uzlov. Napríklad zákazníci, produkty, objednávky a zamestnanci.
  • Ako tieto entity spolu súvisia? Stĺpce, ktoré odkazujú na riadky v inej tabuľke (cudzie kľúče), naznačujú typy hrán. Napríklad CustomerID_FK v tabuľke orders ukazuje na tabuľku customers , čo naznačuje modelovanie hrany purchases .
  • Existujú zabudované entity? Stĺpec v tabuľke môže predstavovať samostatnú entitu, ktorú stojí za to extrahovať do vlastného typu uzla. Pre príklad pozri Vyber typy uzlov. Pre krok za krokom návod pozri Pridať viacero typov uzlov a hrán z jednej zdrojovej tabuľky.

Vyberte typy uzlov

Vytvor typ uzla pre každú entitu, ktorú potrebuješ nezávisle dotazovať alebo prechádzať. Použite tieto pokyny:

Urob entitu typom uzla , keď... Nechaj si ho ako majetok , keď...
Musíš prejsť cez ňu alebo cez ňu. Sú to popisné metadáta, ktoré len čítate, nie prechádzate.
Viaceré subjekty s ňou zdieľajú vzťah. Je jedinečný pre entitu, ktorej patrí.
Musíte ho priamo zoradiť alebo zoskupiť podľa dopytov. Filtrujete len podľa vlastnosti inej entity.

Príklad: V datasete Adventure Works začína Country ako stĺpec v tabuľke employees . Ak potrebujete dotaz "ktorí zamestnanci žijú v tej istej krajine?" alebo "ktoré krajiny majú najviac zamestnancov?", extrahujte Country do vlastného typu uzla. Ak potrebujete zobraziť len krajinu zamestnanca ako štítok, nechajte ho ako majetok.

Vyberte kľúčové stĺpce

Každý typ uzla vyžaduje stĺpec kľúča (alebo zložený kľúč), ktorý jednoznačne identifikuje každý uzol. Vyberajte tóniny opatrne:

  • Použite existujúce jedinečné identifikátory zo zdrojových tabuliek. Napríklad CustomerID_K alebo ProductID_K.
  • Vyhnite sa náhradným kľúčom, ktoré nemajú obchodný význam, pokiaľ neexistuje prirodzený kľúč. Napríklad preferujte CustomerID pred automaticky zvyšujúcim sa číslom riadku.
  • Používajte zložené kľúče , keď jeden stĺpec nezaručuje jedinečnosť. Napríklad uzol ProductVersion môže potrebovať ProductIDVersionNumber oba a ako svoj kľúč.
  • Porovnávať dátové typy medzi stĺpcami kľúčov a stĺpcami cudzích kľúčov používaných pri mapovaní hrán. Nezhodné typy spôsobujú zlyhania pri tvorbe hrán.

Prepitné

Definujte obmedzenia kľúčov uzla , aby dotazovací engine mohol vykonávať priame vyhľadávanie kľúčových vlastností. Táto optimalizácia urýchľuje dotazy, ktoré vyhľadávajú konkrétne uzly podľa kľúča.

Pridať vlastnosti uzla

Keď vytvárate typ uzla, vyberte vlastnosti, ktoré vlastnosti zo zdrojovej tabuľky zahrniete ako vlastnosti v type uzla, najmä vlastnosti, pre ktoré boli prístupové pravidlá OneLake Security aplikované na základnú zdrojovú tabuľku.

Pridávajte vlastnosti počas vytvárania uzla tlačidlom + Pridať vlastnosť . Alternatívne pridajte vlastnosti k existujúcemu uzlu dvojitým kliknutím na typ uzla v editore grafového modelu, čím otvoríte dialógové okno úpravy uzla a vyberiem Edit definition. Vyberte Pridať vlastnosť a potom vyberte stĺpce zo zdrojovej tabuľky.

Možno nebudete chcieť pridávať každý stĺpec v tabuľke ako vlastnosť. Nadmerné vlastnosti zvyšujú úložisko, spomaľujú dotazy a sťažujú udržiavanie grafu. Z týchto dôvodov sa vyhnite pridávaniu vlastností, ktoré nepotrebujete na dotazy alebo analýzy.

Pre každý typ uzla si ponechajte iba vlastnosti, ktoré sú:

  • Požadované pre jedinečnosť uzla (stĺpce kľúčov)
  • Používa sa vo WHERE filtroch alebo RETURN projekciách vo vašich dotazoch
  • Potrebné na následnú analýzu alebo vizualizáciu

Pre viac informácií o tom, ako počet vlastností ovplyvňuje výkon dotazu, pozri Vráť len vlastnosti, ktoré potrebujete.

Vyberte dátové typy

Vyberte najkonkrétnejší typ údajov pre každú nehnuteľnosť. Správne typy zlepšujú efektivitu úložiska aj výkon dotazov:

  • Použitie INT alebo UINT64 na číselné identifikátory a počty. Číselné porovnania sú rýchlejšie ako porovnania reťazcov.
  • Používajte ZONED DATETIME časové značky namiesto dátumov vo formáte reťazca.
  • Použite BOOLEAN na pravdivé/nepravdivé príznaky namiesto reťazcových hodnôt ako "yes" alebo "no".

Pre úplný zoznam podporovaných typov pozri Aktuálne obmedzenia — dátové typy.

Vyberte typy hrán

Typy hrán definujú vzťahy medzi typmi uzlov. Každý typ hrany spája pôvodný typ uzla s cieľovým typom uzla prostredníctvom zdrojovej tabuľky.

Dodržujte tieto pokyny:

  • Používajte popisné označenia , ktoré sa čítajú ako slovesá alebo slovesné frázy. Napríklad purchases, sells, , livesIna .belongsTo Dobre pomenovaná hrana uľahčuje čitanie dotazov.
  • Dobre zvážte smerovanie. Hrany v grafe sú orientované. Vyberte si smer, ktorý najlepšie reprezentuje vzťah v reálnom svete. Napríklad Customer -- –>Order čítajú sa prirodzenejšie ako Order --nákupdBy.>Customer
  • Dajte odlišné názvy typom hrán, ktoré spájajú rôzne páry typov uzlov. Ak sa "zamestnanec predáva objednávku" aj "objednávka zákazníka" spájajú s Order, pomenujte ich sells a purchases namiesto toho, aby ste obom dávali rovnaký štítok. Pre viac informácií pozri obmedzenia tvorby hrán.

Pridávanie vlastností k typom hrán

Rovnako ako uzly, aj typy hrán začínajú bez vlastností. Voliteľne môžete pridať vlastnosti, keď dáta popisujú samotný vzťah namiesto ktoréhokoľvek z koncových bodov. Vlastnosti hrán sú najužitočnejšie, keď píšete GQL dotazy, ktoré potrebujú filtrovať, agregovať alebo vracať údaje o samotnom vzťahu.

Na pridanie vlastnosti kliknite dvojklikom na typ hrany v editore grafového modelu, aby ste otvorili dialógové okno úpravy hrán, a vyberte Upraviť definíciu. Vyberte Pridať vlastnosť a potom vyberte stĺpce zo zdrojovej tabuľky.

Kedy pridať vlastnosti hrán: Ak stĺpec odpovedá na otázky "koľko?", "kedy?" alebo "akým spôsobom?" o spojení medzi dvoma uzlami, patrí na okraj – nie na žiadny z nich.

Príklad: V datasete Adventure Works sa contains okraj pripája Order cez Productadventureworks_orders tabuľku. Stĺpce ako OrderQty, UnitPrice, a opisujú LineTotal vzťah – koľko kusov produktu bolo v konkrétnom poradí, za akú cenu. Stĺpce ako OrderDateShipDate alebo popisujú samotné poradie a patria na Order typ uzla, nie na okraj.

Dôležité

Zdrojová tabuľka hrany musí obsahovať stĺpce, ktoré zodpovedajú kľúčovým stĺpcom pôvodu aj cieľového typu uzla v hodnotách a dátovom type. Tabuľky, ktoré používate na vytváranie typov uzlov, môžu tiež slúžiť ako edge zdrojové tabuľky, ak spĺňajú túto požiadavku.

Bežné vzory tabulár-graf

Nasledujúca tabuľka zhrňuje, ako sa niektoré bežné tabuľkové dátové štruktúry prekladajú do grafových prvkov:

Tabuľková štruktúra Výsledok grafu Príklad
Jeden ku mnohým: Nadriadená tabuľka + podtabuľka s cudzím kľúčom Dva typy uzlov spojené typom hrán. Customer -- nákupy-->Order
Mnoho-mnohých: Spojovacia tabuľka spájajúca dve tabuľky Typ hrany medzi dvoma typmi uzlov. Vendor -- produkuje-->Product
Vložená entita: Stĺpec reprezentujúci zdieľanú entitu Extrahovaný typ uzla s hranou. Employee -- livesIn-->Country
Hierarchia: Reťazec tabuliek rodič-potomok Typy uzlov prepojené hranami na každej úrovni. Product -- jeTypu-->Subcategory --patrí-->Category

Pre krok za krokom návod na vzor vložených entít pozri Pridať viacero typov uzlov a hrán z jednej zdrojovej tabuľky.

Zmeň schému grafu

Graph nepodporuje evolúciu schémy. Po uložení grafového modelu je štruktúra typov uzlov, hrán a ich vlastností pevne stanovená. Na vykonanie štrukturálnych zmien – napríklad pridanie vlastnosti k typu uzla, odstránenie typu hrany alebo zmenu kľúčového stĺpca – musíte vytvoriť nový grafový model a znovu načítať dáta.

Na zmenu schémy grafu:

  1. Vo vašom pracovnom priestore vytvorte novú položku grafu, ktorá sa pripája k rovnakému jazernému domu.
  2. V editore grafových modelov pridajte typy uzlov a hrán, ktoré potrebujete, vrátane nových alebo upravených vlastností.
  3. Nastavte kľúčové stĺpce a mapovania hrán. Uistite sa, že dátové typy zodpovedajú medzi stĺpcami kľúčov a stĺpcami cudzích kľúčov.
  4. Vyberte Uložiť na získanie dát a vytvoriť nový graf.
  5. Aktualizujte všetky querysety tak, aby smerovali na nový graf.
  6. Keď overíte, že nový graf funguje podľa očakávaní, vymažte pôvodnú položku grafu, ak ju nepotrebujete.