Gráfséma tervezése a Microsoft Fabric

A gráfséma a gráf szerkezetét meghatározó csomóponttípusok, éltípusok és tulajdonságaik gyűjteménye. A jól megtervezett gráfséma megkönnyíti az adatok lekérdezését, karbantartását és kiterjesztését. Ez a cikk legjobb gyakorlatokat mutat be a táblázatos adatok adatjárólakban való hatékony címkézett tulajdonosi gráffá alakításához a Microsoft Fabric-ben.

Mielőtt elkezdené a modellezést a gráfmodell-szerkesztőben, használja ezeket az irányelveket. A csomópontok és élek létrehozásával kapcsolatos részletes útmutatásért tekintse meg a gráf oktatóanyagát. A cikkben szereplő példák az Adventure Works mintaadatkészletet használják.

Fontos

A Graph jelenleg nem támogatja a sémafejlődést. Miután létrehozott egy gráfmodellt, és betöltötte az adatokat, a szerkezeti változások , például csomóponttípusok, éltípusok és tulajdonságok hozzáadása vagy eltávolítása után a frissített struktúra lekérdezése előtt újra be kell töltenie az összes adatot. Az adatok újratöltéséhez válassza a Mentés lehetőséget a felső menüszalagon. Ez az adatbetöltési folyamat időt vesz igénybe, és kapacitást használ fel, ezért a modellezés megkezdése előtt alaposan tervezze meg a sémát.

Előfeltételek

Csomóponttípusok és éltípusok ismertetése

Séma tervezése előtt ismerje meg az alábbi alapvető fogalmakat:

A csomóponttípusok egyfajta entitást határoznak meg a gráfban, például ügyfelet, terméket vagy megrendelést. A következőkből áll:

  • Csomópontcímke, amely a csomópont ezen kategóriáját azonosítja. Például: Customer. A lekérdezésekben a címke használatával hivatkozhat ilyen típusú csomópontokra.
  • Egy forrástábla, amely a csomóponttípus forrásadatait biztosító lakehouse-tábla. Például az adventureworks_customers tábla.
  • Egy kulcsoszlop , amely egyedileg azonosítja az egyes csomópontokat. Például: CustomerID_K.
  • Tulajdonságok, amelyek a tábla azon oszlopai, amelyeket attribútumként adhat hozzá az egyes csomópontokhoz. Például FirstName, LastNameés EmailAddress.

A csomópont egy csomóponttípus egyedi példánya – a forrástábla egyik sora. A adventureworks_customers minden sora például csomóponttá válik Customer .

Az éltípus két csomóponttípus közötti kapcsolat típusát határozza meg. A következőkből áll:

  • Egy peremcímke, amely a kapcsolat ezen kategóriáját azonosítja. Például: purchases.
  • Forrástábla, amely a forrás és a célcsomópontok közötti kapcsolati adatokat tartalmazza. Például az adventureworks_orders tábla.
  • A forráscsomópont típusa és a célcsomópont típusa, amelyet az él csatlakoztat. Például forrásként Customer és Order célként.

Az él egy éltípus egyedi példánya – a forrástábla egyik sora, amely két adott csomópontot köt össze.

Megjegyzés:

A gráfmodell-szerkesztőben a Csomópont hozzáadása és az Él hozzáadása gomb csomóponttípusokat és éltípusokat hoz létre, nem pedig egyedi csomópontokat vagy éleket.

Entitások és kapcsolatok azonosítása

Kezdje az adatokban található entitások (dolgok) és kapcsolatok (kapcsolatok) azonosításával. Az entitások csomóponttípusokká válnak. Az entitások közötti kapcsolatok éltípusokká válnak.

Tegye fel a következő kérdéseket a forrástáblákról:

  • Mik az elsődleges entitások? A különböző valós dolgokat ábrázoló sorok csomóponttípusok jelöltjei. Például ügyfelek, termékek, megrendelések és alkalmazottak.
  • Hogyan kapcsolódnak ezek az entitások egymáshoz? A másik táblázat sorait (idegen kulcsokat) hivatkozó oszlopok éltípusokat javasolnak. Például CustomerID_FK egy orders táblázat a customers táblázatra mutat, ami egy purchases él modellezését javasolja.
  • Vannak beágyazott entitások? A táblákon belüli oszlopok egy különálló entitást jelölhetnek, amely a saját csomóponttípusába bontható ki. Példa: Csomóponttípusok kiválasztása. Részletes útmutató: Több csomópont- és éltípus hozzáadása egy forrástáblából.

Csomóponttípusok kiválasztása

Hozzon létre egy csomóponttípust minden olyan entitáshoz, amelyet egymástól függetlenül kell lekérdeznie vagy áthaladnia. Kövesse az alábbi irányelveket:

Az entitás csomóponttípussá alakítása... Tartsa meg, mint tulajdonságot, ha...
El kell jutnia hozzá, vagy át kell haladnia rajta. Ez egy leíró metaadat, amit csak olvas, nem pedig átjárás.
Több entitás is osztozik vele. Ez egyedi az entitásra, amelyhez tartozik.
A lekérdezésekben közvetlenül az alapján kell egyeznie vagy csoportosítania. Más entitás tulajdonságaként lehet csak szűrni.

Példa: Az Adventure Works adatkészletben Country oszlopként kezdődik a employees táblán. Ha meg szeretné tudni, hogy "mely alkalmazottak élnek ugyanabban az országban?" vagy "melyik országban van a legtöbb alkalmazott?", válassza szét Country egy saját csomóponttípussá. Ha csak egy alkalmazott országát kell címkeként megjelenítenie, hagyja meg tulajdonságként.

Kulcsoszlopok kiválasztása

Minden csomóponttípushoz szükség van egy kulcsoszlopra (vagy összetett kulcsra), amely egyedileg azonosítja az egyes csomópontokat. Gondosan válassza ki a kulcsokat:

  • Használjon meglévő egyedi azonosítókat a forrástáblákból . Például, CustomerID_K vagy ProductID_K.
  • Kerülje a helyettesítő kulcsokat, amelyek nem rendelkeznek üzleti jelentéssel, kivéve, ha nem létezik természetes kulcs. Például előnyben részesítse CustomerID az auto-növekvő sorszámmal szemben.
  • Összetett kulcsokat akkor használjon , ha egyetlen oszlop nem garantálja az egyediséget. Például egy ProductVersion csomópontnak mind ProductID, mind VersionNumber lehet szükséges kulcsként.
  • A kulcsoszlopok és az élleképezésekben használt idegen kulcsoszlopok adattípusainak egyeztetése. A nem egyező típusok az éllétrehozás hibáit okozzák.

Jótanács

Csomópontkulcs-megkötések definiálása, amelyek lehetővé teszik a lekérdezési motor számára a kulcstulajdonságok közvetlen keresését. Ez az optimalizálás felgyorsítja az adott csomópontokat kulcs szerint kereső lekérdezéseket.

Csomóponttulajdonságok hozzáadása

Csomóponttípus létrehozásakor válassza ki, hogy a forrástábla mely tulajdonságokat vegye fel a csomóponttípus tulajdonságai közé, különösen azokat a tulajdonságokat, amelyekre a OneLake Security hozzáférési szabályait alkalmazták az alapul szolgáló forrástáblára.

Tulajdonságok hozzáadása a csomópont létrehozása során a + Tulajdonság hozzáadása gombbal. Másik lehetőségként adjon hozzá tulajdonságokat egy meglévő csomóponthoz úgy, hogy duplán kattint a csomóponttípusra a gráfmodell-szerkesztőben a csomópontszerkesztési párbeszédpanel megnyitásához és a Definíció szerkesztése parancs kiválasztásához. Válassza a Tulajdonság hozzáadása lehetőséget, majd válasszon oszlopokat a forrástáblából.

Előfordulhat, hogy nem szeretné a tábla minden oszlopát tulajdonságként hozzáadni. A túlzott tulajdonságok növelik a tárolást, lassúak a lekérdezések, és megnehezítik a gráf karbantartását. Ezért ne adjon hozzá olyan tulajdonságokat, amelyekre nincs szüksége a lekérdezésekhez vagy elemzésekhez.

Minden csomóponttípusnál csak a következő tulajdonságokat tartsa meg:

  • A csomópont egyediségéhez szükséges (kulcsoszlopok)
  • Lekérdezéseknél szűrőkben WHERE vagy vetítésekben RETURN van használva.
  • Alsóbb rétegbeli elemzéshez vagy vizualizációhoz szükséges

Ha többet szeretne megtudni arról, hogy a tulajdonságszám hogyan befolyásolja a lekérdezés teljesítményét, olvassa el a Csak a szükséges tulajdonságok visszaadása című témakört.

Adattípusok kiválasztása

Válassza ki az egyes tulajdonságok legspecifikusabb adattípusát. A megfelelő típusok javítják a tárolási hatékonyságot és a lekérdezési teljesítményt:

  • INT vagy UINT64 használata numerikus azonosítók és számok esetén. A numerikus összehasonlítások gyorsabbak, mint a karakterlánc-összehasonlítások.
  • Sztring formátumú dátumok helyett időbélyegekhez használható ZONED DATETIME .
  • Igaz/hamis jelölőkhöz használható BOOLEAN sztringértékek helyett, például "yes" vagy "no".

A támogatott típusok teljes listáját az Aktuális korlátozások – Adattípusok című témakörben találja.

Éltípusok kiválasztása

Az éltípusok határozzák meg a csomóponttípusok közötti kapcsolatokat. Minden éltípus egy forrástáblán keresztül csatlakoztat egy forráscsomóponttípust egy célcsomóponttípushoz.

Kövesse az alábbi irányelveket:

  • Használjon leíró címkéket , amelyek igékként vagy igekifejezésekként olvashatók. Például, purchases, sells, livesInés belongsTo. A jól elnevezett élek megkönnyítik a lekérdezések olvasását.
  • Körültekintően mérlegelje az irányt. A gráf szélei irányítva vannak. Válassza ki a valós kapcsolatot legjobban képviselő irányt. Például a Customer --vásárlások-->Order természetesebb módon olvashatók, mint a Order --vásárló által-->Customer.
  • Adjon különböző neveket a különböző csomóponttípus-párokat összekötő éltípusoknak. Ha az "alkalmazott megrendelést értékesít" és az "ügyfél megrendelést vásárol" is csatlakozik Order, nevezze el őket sells és purchases ahelyett, hogy mindkettőnek ugyanazt a címkét adná. További információ: peremhálózat-létrehozási korlátozások.

Tulajdonságok hozzáadása éltípusokhoz

A csomópontokhoz hasonlóan az éltípusok is tulajdonságok nélkül kezdődnek. Tetszés szerint akkor adhat hozzá tulajdonságokat, ha az adatok a végpontok helyett magát a kapcsolatot írják le. A peremhálózati tulajdonságok akkor hasznosak, ha olyan GQL-lekérdezéseket ír, amelyeknek a kapcsolatra vonatkozó adatokat kell szűrni, összesíteni vagy visszaadni.

Tulajdonság hozzáadásához kattintson duplán egy éltípusra a gráfmodell-szerkesztőben az élszerkesztés párbeszédpanel megnyitásához, és válassza a Definíció szerkesztése lehetőséget. Válassza a Tulajdonság hozzáadása lehetőséget, majd válasszon oszlopokat a forrástáblából.

Mikor kell éltulajdonságokat hozzáadni: Ha egy oszlop a két csomópont közötti kapcsolatról árulja el, hogy „mennyi?”, „mikor?” vagy „milyen módon?”, akkor az az élhez tartozik, nem pedig valamelyik csomóponthoz.

Példa: Az Adventure Works-adatkészletben a contains él a Order-t a Product-hoz a adventureworks_orders táblán keresztül kapcsolja. Az olyan oszlopok, mint a OrderQty, UnitPrice és LineTotal, a kapcsolatot írják le: egy adott rendelésben egy termékből hány darab volt, és milyen áron. Az olyan oszlopok, mint a OrderDate vagy a ShipDate, magát a sorrendet írják le, és a Order csomóponttípushoz tartoznak, nem pedig az élre.

Fontos

A peremhálózat forrástáblájának olyan oszlopokat kell tartalmaznia, amelyek megfelelnek az értékekben és adattípusokban a forrás- és célcsomópont-típusok kulcsoszlopainak. A csomóponttípusok létrehozásához használt táblák peremhálózati forrástáblákként is szolgálhatnak, ha megfelelnek ennek a követelménynek.

Gyakori táblázatos-gráfos minták

Az alábbi táblázat összefoglalja, hogy egyes gyakori táblázatos adatstruktúrák hogyan fordíthatók le gráfelemekre:

Tabuláris struktúra Gráf eredménye Example
Egy-a-többhöz: Szülőtábla + gyermektábla idegen kulccsal Két csomóponttípus csatlakozik egy éltípushoz. Customer -- vásárlások->Order
Több-a-többhöz: Két táblát összekötő kereszttábla Éltípus két csomóponttípus között. Vendor -- előállít-->Product
Beágyazott entitás: Megosztott entitást jelképező oszlop Kinyert csomóponttípus élekkel. Employee -- livesIn->Country
Hierarchia: Szülő-gyermek táblák lánca Az egyes szintek szélei által összekapcsolt csomóponttípusok. Product -- isOfType-->Subcategory --belongsTo->Category

A beágyazott entitásminta részletes bemutatása: Több csomópont- és éltípus hozzáadása egy forrástáblából.

A gráfséma módosítása

A Graph nem támogatja a sémafejlődést. A gráfmodell mentése után a csomóponttípusok, éltípusok és tulajdonságaik struktúrája javítva lesz. Ha szerkezeti módosításokat szeretne végezni (például tulajdonság csomóponttípushoz való hozzáadásához, éltípus eltávolításához vagy kulcsoszlop módosításához), létre kell hoznia egy új gráfmodellt, és újra kell betöltenie az adatokat.

A gráfséma módosítása:

  1. A munkaterületen hozzon létre egy új gráfelemet, amely ugyanahhoz a tóházhoz csatlakozik.
  2. A gráfmodell-szerkesztőben adja hozzá a szükséges csomóponttípusokat és éltípusokat, beleértve az új vagy módosított tulajdonságokat is.
  3. Kulcsoszlopok és élleképezések konfigurálása. Győződjön meg arról, hogy az adattípusok egyeznek a kulcsoszlopok és az idegen kulcsoszlopok között.
  4. Válassza a Mentés lehetőséget az adatok betöltéséhez és az új gráf létrehozásához.
  5. Frissítse a lekérdezési készleteket úgy, hogy az új gráfra mutassanak.
  6. Miután ellenőrizte, hogy az új gráf a várt módon működik-e, törölje az eredeti gráfelemet, ha nincs rá szüksége.