Végre egy Lassan Változó, 2-es Típusú Dimenzió az SQL Server Integration Services – 1. Rész

Végre egy Lassan Változó, 2-es Típusú Dimenzió az SQL Server Integration Services – 1. Rész

A: Koen Verbeeck | Frissítve: 2018-08-09 | Hozzászólások (4) | Kapcsolódó: 1 | 2 | 3 | 4 | Több > Integrációs Szolgáltatások Fejlesztése

Ingyenes MSSQLTips Webinar: Ismerkedés az SSIS

Megtanulják, hogyan kell kezdeni az SQL Server Integration Services meg, hogyan kell felépíteni egy SSIS projekt ezzel a demo koncentrált webinar.,

probléma

az adattárházunkban több dimenzióban szeretnénk megőrizni a történelmet.Az ETL (Extractransform and Load) megvalósításához SQL Server integrációs szolgáltatásokat (SSIS) használunk. Próbáltuk a lassan változó dimenzió varázslót, de a teljesítmény rossznak tűnik. Hogyan leheta kívánt funkciókat rendszeres SSIS komponensekkel valósítjuk meg?

Solution

Bevezetés a lassan változó dimenziókba

egy lassan változó dimenzió (SCD) nyomon követi az individualmemberek történetét., Ralph Kimball számos módszert javasol a The DatawarehouseToolkit könyvében:

  • Type 1 – írja felül a mezőket, amikor az érték megváltozik. Nincs előzménye.
  • 2. típus-hozzon létre egy új sort a mezők új értékeivel. Az Extracolumns azt jelzi, hogy időben egy sor érvényes volt.
  • 3. Típus-tartsa egy oszlop régi értékét külön oszlopban.
  • több típusú SCD létezik, de ezek többnyire a fenti hibrid kombinációk.

ebben a tippben a 2. típusú helyzetre összpontosítunk. Illusztráljunk egy példát., Van egy egyszerű asztalunk, amely az ügyfelek adatait tárolja.

az SK_Customer oszlop egy identityproperty oszlop, amely minden sorhoz új értéket generál. Szeretnénk megőrizni a hely attribútum történetét. Amikor a hely Antwerpenről Brüsszelbe változik,nem frissítjük a sort, hanem új rekordot helyezünk be:

a ValidFrom és ValidTo mezők használatával jelezzük, hogy a rekord időben érvényes volt. Új helyettesítő kulcs keletkezik, deaz üzleti kulcs – CustomerName – ugyanaz marad., Amikor egy tény tableis betöltve, a keresés kerül sor az ügyfél asztalra. A tényrekord időbélyegzőjétől függően a két sor egyike visszatér. Például:

minden tény ugyanarra az ügyfélre vonatkozik. Amikor megkérdezi a teljes értékesítési összegeta CustomerA esetében az eredmény 31. A teljes értékesítés helyenként 12.75 Antwerpand 18.25 Brüsszel, annak ellenére, hogy az adatok az azonos ügyfél. Az SCDType 2 használatával elemezhetjük adatainkat történelmi attribútumokkal.,

végrehajtási módszerek

számos módszer létezik a 2. típusú ina adattárház lassan változó dimenziójának betöltésére. Választhatja a tiszta T-SQL megközelítést, akár multipleT-SQL utasításokkal, akár az egyesítési utasítás használatával. Ez utóbbit magyarázzaaz SQL Server MERGE utasítás használatával a 2. típusú lassan változó méretek feldolgozásához.

az SSIS segítségével használhatja a beépített lassan változó dimenzió varázslót, amely több forgatókönyvet is képes kezelni., Ezt a varázslót a tipsLoading történelmi adatok egy SQL Server Data Warehouse andHandle lassan változó méretek SQL Server Integration Services. Ennek a varázslónak a hátránya a teljesítmény: az OLE DB parancsot használja az everyupdate-hez, ami nagyobb adatkészletekhez rossz teljesítményt eredményezhet. Ha módosítja az adatfolyamot, hogy megoldja ezeket a problémákat, akkor nem futtathatja újra a varázslót, mivel elveszítené az összes változást.

az utolsó lehetőség-a 3rdparty komponensek használata mellett – az SCD Type 2 logikát saját maga építi az adatfolyamba, amelyet a következő szakaszban ismertetünk.,

implementáció SSIS-ben

Az ebben a tippben javasolt megoldás az SSIS bármely verziójára vonatkozik. Mi ‘ llreprise példája az ügyfél dimenzió, de egy extra mező került hozzáadásra:az e-mail attribútum. Nem tartjuk meg az e-mail címek előzményeit, így anynew érték felülírja az összes többi értéket.

először egy forrásból, valószínűleg egy átmeneti környezetből olvassuk az adatokat. Relációs forrás használatakor használhatja az OLE DB forrás komponenst egy SQL querytovelolvasni az adatokat. Csak válassza ki az oszlopokat, amelyekre valóban szüksége van a dimenziójához. A mező értékét itt is kiszámítják., Mivel általában az előző napi adatokat tölti be, a ValidFrom a tegnapi napra van beállítva. Ha nincs relációs forrása, akkor ezt az oszlopot egy származtatott Columntransformation segítségével adhatja hozzá.

a következő lépésben egy keresést végzünk a dimenzió ellen.Itt ellenőrizzük, hogy a bejövő sorok beillesztés vagy frissítés-e.Ha nem talál egyezést, akkor a sor egy új dimenziós tag, amelyet be kell illeszteni.Ha talál egyezést, a dimenzió tag már létezik, és szükségünk lesz tocheck SCD Type 2 változások., Hacsak nincs nagyon nagy dimenziója, használhatjaa teljes gyorsítótár:

konfigurálja a keresési átalakítást, hogy nem megfelelő sorokat küldjön a nem megfelelő kimenetre. Az SSIS 2005-ben ez az opció még nem létezik, így használhatod a hibakimenetet,vagy állíthatod be az átalakítást a hibák figyelmen kívül hagyására, valamint a lapkákat és frissítéseket feltételes megosztással.

a kapcsolat ablaktáblában a következő SQL lekérdezés a surrogatekey-t, az üzleti kulcsot (CustomerName) és az SCD Type 2 oszlopokat jeleníti meg., Minden tag esetében csak a legutóbbi sor kerül lekérésre a ValidTo mező szűrésével.

a hely Mező az egyértelműség érdekében átnevezésre kerül Location_OLD-ra. A theColumns ablaktáblában egyezzen meg az üzleti gombbal, majd válassza ki az összes többi oszlopot.

most hozzáadhatunk egy OLE DB rendeltetési helyet a vászonra. Ez a rendeltetési hely írminden új sort a dimenzióba. Csatlakoztassa a keresést no Match Outputof a keresési átalakítás a cél.,

a leképezési ablaktáblán térképezze fel az adatáramlás oszlopait adimension táblázat oszlopaival.

a SK_Customer oszlopot nem fedik le, mivel ez egy identitás oszlopés értékeit az adatbázismotor generálja. A ValidTo columnis szintén üresen maradt. Az új soroknak nincs értéke ehhez az oszlophoz.

a Tipp 2. részében folytatjuk az adatfolyam konfigurációját, ahol ellenőrizzük, hogy egy sor 2-es típusú frissítés-e vagy sem.,

Következő Lépéseket
  • Ha többet szeretne tudni arról, hogy a végrehajtási lassan változó méretek inSSIS, akkor nézd meg az alábbi tippeket:
    • az SQL Szerver MERGE Nyilatkozatot, hogy a Folyamat, 2-es Típusú Lassan Változó Méretek
    • Betöltése Történeti Adatok a SQL Server adattárház
    • Fogantyú Lassan Változó Méretek az SQL Server Integration Services
  • még több SSIS fejlesztési tippek ebben áttekintése.,

Utolsó frissítése: 2018-08-09

a szerzőről
Koen Verbeeck egy BI szakmai, amely a Microsoft BI stack egy különös szerelem SSIS.
összes tipp megtekintése

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük