Dimenziómodellezés a Microsoft Fabric Warehouse-ban: Ténytáblák
A következőkre vonatkozik:✅ SQL Analytics-végpont és Warehouse a Microsoft Fabricben
Feljegyzés
Ez a cikk a dimenziómodellezési cikksorozat részét képezi. Ez a sorozat a Microsoft Fabric Warehouse-beli dimenziómodellezéssel kapcsolatos útmutatásra és tervezési ajánlott eljárásokra összpontosít.
Ez a cikk útmutatást és ajánlott eljárásokat nyújt a ténytáblák dimenziómodellben való tervezéséhez. Gyakorlati útmutatást nyújt a Microsoft Fabric Warehouse-hoz, amely számos T-SQL-képességet támogat, például táblákat hozhat létre és adatokat kezelhet a táblákban. Így teljes mértékben szabályozhatja a dimenziómodell-táblák létrehozását és adatokkal való betöltését.
Feljegyzés
Ebben a cikkben az adattárház kifejezés egy vállalati adattárházra utal, amely a kritikus fontosságú adatok átfogó integrációját biztosítja a szervezetben. Ezzel szemben az önálló kifejezésraktár egy Fabric Warehouse-ra utal, amely egy szolgáltatott szoftver (SaaS) relációs adatbázis, amelyet az adattárház implementálásához használhat. Az egyértelműség kedvéért ebben a cikkben az utóbbit Fabric Warehouse-ként említik.
Tipp.
Ha tapasztalatlan a dimenziómodellezésben, első lépésként tekintse meg ezt a cikksorozatot. Nem célja a dimenziómodellezés tervezésének teljes körű megvitatása. További információkért tekintse meg közvetlenül a széles körben elfogadott közzétett tartalmakat, például Ralph Kimball és mások által kiadott The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3. kiadás, 2013).
A dimenziómodellben a ténytáblák megfigyelésekhez vagy eseményekhez kapcsolódó méréseket tárolnak. Tárolhatja az értékesítési rendeléseket, a részvényegyenlegeket, az árfolyamokat, a hőmérsékleti értékeket stb.
A ténytáblák olyan mértékeket tartalmaznak, amelyek általában numerikus oszlopok, például értékesítési rendelés mennyisége. Az elemzési lekérdezések összegzik a mértékeket (összeg, darabszám, átlag és egyéb függvények használatával) a dimenziószűrők és -csoportosítások kontextusában.
A ténytáblák dimenziókulcsokat is tartalmaznak, amelyek meghatározzák a tények dimenzióját . A dimenziókulcs értékei határozzák meg a tények részletességét , vagyis azt az atomi szintet, amellyel a tényeket definiálják. Egy értékesítési ténytábla rendelésdátum dimenziókulcsa például a tényadatok részletességét dátumszinten állítja be, míg egy értékesítési céldátum ténytáblában a céldátum dimenziókulcsa negyedéves szinten állíthatja be a részletességet.
Feljegyzés
Bár a tényeket nagyobb részletességgel lehet tárolni, a mértékértékeket nem könnyű felosztani alacsonyabb részletességi szintekre (ha szükséges). A sheer adatmennyiségek és az elemzési követelmények jogos okot adhatnak arra, hogy magasabb részletességi tényeket tároljanak, de a részletes elemzés rovására.
A ténytáblák egyszerű azonosításához általában előtagot kell adni a nevükhöz f_
vagy Fact_
a .
Ténytábla felépítése
Egy ténytábla szerkezetének leírásához tekintse meg a következő példát egy értékesítési ténytábla neveként f_Sales
. Ez a példa a helyes tervezési eljárásokat alkalmazza. Az oszlopcsoportok mindegyikét a következő szakaszok ismertetik.
CREATE TABLE f_Sales
(
--Dimension keys
OrderDate_Date_FK INT NOT NULL,
ShipDate_Date_FK INT NOT NULL,
Product_FK INT NOT NULL,
Salesperson_FK INT NOT NULL,
<…>
--Attributes
SalesOrderNo INT NOT NULL,
SalesOrderLineNo SMALLINT NOT NULL,
--Measures
Quantity INT NOT NULL,
<…>
--Audit attributes
AuditMissing BIT NOT NULL,
AuditCreatedDate DATE NOT NULL,
AuditCreatedBy VARCHAR(15) NOT NULL,
AuditLastModifiedDate DATE NOT NULL,
AuditLastModifiedBy VARCHAR(15) NOT NULL
);
Elsődleges kulcs
Ahogy a példában is látható, a minta ténytábla nem rendelkezik elsődleges kulccsal. Ennek az az oka, hogy általában nem szolgál hasznos célt, és szükségtelenül növeli a táblatároló méretét. Az elsődleges kulcsot gyakran a dimenziókulcsok és attribútumok halmaza sugallja.
Dimenziókulcsok
A minta ténytáblája különböző dimenziókulcsokkal rendelkezik, amelyek meghatározzák a ténytábla dimenzióját. A dimenziókulcsok a kapcsolódó dimenziók helyettesítő kulcsára (vagy magasabb szintű attribútumára) mutató hivatkozások.
Feljegyzés
Ez egy szokatlan ténytábla, amely nem tartalmaz legalább egy dátum dimenziókulcsot.
A ténytáblák többször is hivatkozhatnak egy dimenzióra. Ebben az esetben szerepkör-játék dimenzióként ismert. Ebben a példában a ténytáblában a dimenziókulcsok és ShipDate_Date_FK
a OrderDate_Date_FK
dimenziókulcsok vannak. Minden dimenziókulcs egy különálló szerepkört jelöl, de csak egy fizikai dátum dimenziója van.
Célszerű az egyes dimenziókulcsokat NOT NULL
a következőképpen beállítani. A ténytábla betöltése során speciális dimenziótagokkal jelölheti a hiányzó, ismeretlen, hiányzik vagy hibaállapotokat (ha szükséges).
Attribútumok
A minta ténytáblájának két attribútuma van. Az attribútumok további információkat nyújtanak, és beállítják a tényadatok részletességét, de nem dimenziókulcsok, dimenzióattribútumok vagy mértékek. Ebben a példában az attribútumoszlopok az értékesítési rendelés adatait tárolják. Más példák lehetnek például a követési számok vagy a jegyszámok. Elemzési célokra az attribútumok degenerált dimenziót alkothatnak.
Mértékek
A minta ténytáblája olyan mértékekkel is rendelkezik, mint az Quantity
oszlop. A mértékoszlopok általában numerikusak és gyakran additívak (vagyis össze lehet őket összegezni, és más összesítések használatával lehet összegezni). További információ: Mértéktípusok a cikk későbbi részében.
Naplózási attribútumok
A minta ténytáblája különböző naplózási attribútumokkal is rendelkezik. A naplózási attribútumok megadása nem kötelező. Lehetővé teszik a tényrekordok létrehozásának és módosításának idejét és módját, valamint a kinyerési, átalakítási és betöltési (ETL) folyamatok során felmerülő diagnosztikai vagy hibaelhárítási információkat is. Például nyomon kell követnie, hogy ki (vagy milyen folyamat) frissített egy sort, és mikor. A naplózási attribútumok segíthetnek diagnosztizálni egy kihívást jelentő problémát is, például ha egy ETL-folyamat váratlanul leáll.
Ténytábla mérete
A ténytáblák mérete eltérő. Méretük a dimenziónak, a részletességnek, a mértékek számának és az előzmények mennyiségének felel meg. A dimenziótáblákkal összehasonlítva a ténytáblák keskenyebbek (kevesebb oszlop), de nagyok vagy akár hatalmasak is a sorok tekintetében (több milliárdnál több).
Ténytervezési fogalmak
Ez a szakasz a ténytervezés különböző fogalmait ismerteti.
Ténytáblatípusok
A ténytábláknak három típusa van:
- Tranzakciós ténytáblák
- Időszakos pillanatkép-ténytáblák
- Pillanatkép-ténytáblák halmozása
Tranzakciós ténytáblák
A tranzakciós ténytáblák üzleti eseményeket vagy tranzakciókat tárolnak. Minden sor a dimenziókulcsok és mértékek, valamint opcionálisan egyéb attribútumok tekintetében tárolja a tényeket. A beszúrt adatok teljes mértékben ismertek, és soha nem változnak (kivéve a hibák kijavítása).
A tranzakciós ténytáblák általában a lehető legkisebb részletességi szinten tárolják a tényeket, és olyan mértékeket tartalmaznak, amelyek minden dimenzióban additívak. Az értékesítési ténytáblák, amelyek minden értékesítési rendeléssort tárolnak, jó példa egy tranzakciós ténytáblára.
Időszakos pillanatkép-ténytáblák
A rendszeres pillanatkép-ténytáblák előre meghatározott időpontban vagy adott időközönként tárolják a méréseket. Összefoglalja a főbb metrikákat vagy teljesítménymutatókat az idő függvényében, ezért hasznos lehet a trendelemzéshez és a változás időbeli monitorozásához. A mértékek mindig félig additívak (ezt később ismertetjük).
A leltár ténytáblája jó példa egy időszakos pillanatképtáblára. Minden nap tele van minden termék napi készletegyenlegével.
A tranzakciós ténytáblák helyett időszakos pillanatképtáblák használhatók nagy mennyiségű tranzakció rögzítésekor, és nem támogat semmilyen hasznos elemzési követelményt. Előfordulhat például, hogy több millió részvénymozgás van egy nap alatt (amelyek egy tranzakció ténytáblájában tárolhatók), de az elemzés csak a nap végi részvényszintek trendjeivel foglalkozik.
Pillanatkép-ténytáblák halmozása
A halmozódó pillanatkép-ténytáblák olyan méréseket tárolnak, amelyek egy jól meghatározott időszakban vagy munkafolyamatban halmozódnak fel. Gyakran különböző fázisokban vagy mérföldkövekben rögzíti egy üzleti folyamat állapotát, ami napokig, hetekig vagy akár hónapokig is eltarthat.
A ténysor a folyamat első eseménye után rövid időn belül betöltődik, majd a sor kiszámítható sorrendben frissül minden alkalommal, amikor mérföldkő-esemény történik. A frissítések a folyamat befejezéséig folytatódnak.
A pillanatkép-ténytábla halmozása több dátumdimenzió-kulcssal rendelkezik, amelyek mindegyike mérföldkő eseményt jelöl. Egyes dimenziókulcsok rögzíthetnek egy N/A állapotot , amíg a folyamat meg nem érkezik egy bizonyos mérföldkőhöz. A mértékek általában rögzítik az időtartamokat. A mérföldkövek közötti időtartamok értékes betekintést nyújtanak egy üzleti munkafolyamatba vagy összeállítási folyamatba.
Mértéktípusok
A mértékek általában numerikusak, és általában additívak. Egyes mértékek azonban nem mindig vehetők fel. Ezek az intézkedések féladalékként vagy nem additívként vannak kategorizálva.
Additív mértékek
Az additív mértékek bármilyen dimenzióban összegzhetők. A rendelési mennyiség és az értékesítési bevétel például additív mérték (a bevételt egyetlen pénznemben kell elszámolni).
Fél-additív mértékek
A félig additív mértékek csak bizonyos dimenziókban összegezhetők.
Íme néhány példa a félig additív mértékekre.
- Az időszakos pillanatkép-ténytáblákban lévő mértékek nem összegezhetők más időszakokban. Például nem kell összegeznie az éjszakai mintában szereplő leltárelemek korát, de a polcon lévő összes készletcikk életkorát minden este összeadhatja.
- A készletegyenleg mértéke a leltár ténytáblájában nem összegezhető más termékek között.
- A pénznem dimenziókulcsával rendelkező értékesítési ténytáblák értékesítési bevétele nem összegezhető pénznemek között.
Nem additív mértékek
A nem additív mértékek nem összegezhetők egyetlen dimenzióban sem. Ilyen például a hőmérséklet-mérés, amelynek természetéből adódóan nincs értelme más értékekhez hozzáadni.
Ilyenek például az árak, például az egységárak és az arányok. Az arány kiszámításához használt értékek tárolása azonban jobb gyakorlatnak számít, ami lehetővé teszi az arány kiszámítását, ha szükséges. Például egy értékesítési tény diszkont százalékát lehet tárolni kedvezményösszeg-mértékként (az értékesítési bevétel mértékével osztva). Vagy a polcon lévő leltárelemek életkorát nem érdemes az idő függvényében összegezve megadni, de előfordulhat, hogy a leltárelemek átlagéletkorának trendje figyelhető meg.
Bár egyes mértékek nem összegezhetők, mégis érvényesek. Ezek összesíthetők a darabszám, a különböző számok, a minimum, a maximum, az átlag és más adatok használatával. Emellett a nem additív mértékek is additívvá válhatnak, ha számításokban használják őket. Például a rendelés mennyiségével szorzott egységár értékesítési bevételt eredményez, ami additív.
Tény nélküli ténytáblák
Ha egy ténytábla nem tartalmaz mértékoszlopokat, akkor tény nélküli ténytáblának nevezzük. A tény nélküli ténytáblák általában eseményeket vagy eseményeket rögzítenek, például az osztályba járó diákokat. Elemzési szempontból a mérés ténysorok megszámlálásával érhető el.
Ténytáblák összesítése
Az aggregátum ténytáblák az alap ténytáblák alacsonyabb dimenziójú és/vagy nagyobb részletességű összesítését jelentik. Célja a lekérdezési teljesítmény felgyorsítása a gyakran lekérdezett dimenziók esetében.
Feljegyzés
A Power BI szemantikai modell képes felhasználó által definiált összesítéseket létrehozni ugyanahhoz az eredményhez, vagy használhatja az adattárház összesítő ténytáblát DirectQuery tárolási móddal.
Kapcsolódó tartalom
A sorozat következő cikkében megismerheti a dimenziós modelltáblák betöltésének útmutatását és tervezési ajánlott eljárásait.