kővári attila független bi tanácsadó, sql server mvp biprojekt.hu
DESCRIPTION
Adattárház építése az SQL Server 2005 Integration Services (SSIS) segítségével. Kővári Attila Független BI tanácsadó, SQL Server MVP www.biprojekt.hu Kovari.Attila @ biprojekt.hu. Az előadásról. Kinek szól az előadás: Akik már ismerik valamennyire az SSIS-t - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/1.jpg)
Kővári AttilaFüggetlen BI tanácsadó, SQL Server [email protected]
Adattárház építése az SQL Server 2005 Integration Services (SSIS)segítségével
![Page 2: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/2.jpg)
Az előadásrólKinek szól az előadás:
Akik már ismerik valamennyire az SSIS-tAkik nem most hallanak először a BI-ról és az adattárházról
Az előadás céljaA legjobb módszerek bemutatásaHogy Önök hatékony ETL folyamatokat valósítsanak meg az SSIS segítségével
![Page 3: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/3.jpg)
TematikaAz SSIS Gyors áttekintéseHatékony ETL folyamat megvalósítása az SSIS segítségévelTeljesítmény-hangolás
![Page 4: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/4.jpg)
Hol tartunk most?
Projekt- tervezés
Projektmenedzsment
Üzl
eti
ig
én
ye
k m
eg
ha
táro
zás
a
Architektúra- tervezés
Eszköz- választás és
telepítés
Fizikai tervezés
Adatbetöltők tervezése és fejlesztése
Felhasználói felület /alk.
tervezés
Felhasználói felület /alk. fejlesztés
Üzembe- helyezés, oktatás
Növekedés
Karbantartás
Dimenzionális modellezés
![Page 5: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/5.jpg)
SSIS áttekintésAdatbetöltő eszköz, a MS ETL eszközeRésze az SQL Server 2005 programcsomagnakGrafikus programozási interfészNem DTS!
![Page 6: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/6.jpg)
TematikaAz SSIS Gyors áttekintéseHatékony ETL folyamat megvalósítása az SSIS segítségévelTeljesítmény-hangolás
![Page 7: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/7.jpg)
Hol tároljuk a package-eket?Adatbázis? Fájl rendszer? SSIS package store?
Érvek a fájlrendszer mellettKönnyebb Source control alá helyezni egy fájlt, mint egy adatbázistKönnyebb fájlt verziózni, mint adatbázistEgyszerűbb menteni és visszaállítani, mint az msdb adatbázistEgyszerűbben betölti a BI Studio az SSIS csomagokat fájlból, mint adatbázisbólHierarchikusan rendezhetjük az SSIS csomagokat
Érvek az adatbázis mellettA napi mentések során SSIS csomagjaink automatikusan mentődnek.
![Page 8: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/8.jpg)
Készítsünk adatforrástól és hardver környezettől független SSIS csomagokat!A minden package által használt beállításokat
tegyük szeparált konfigurációs állományba (pl elérési utak)Minden package ugyanabból a konfigurációs állományból olvassa ki a beállításokat!Hol tároljuk a konfigurációs beállításokat?
XML konfigurációs állomány Környezeti változó Registry bejegyzésHívó package változójábanSQL Server
Best practice: Adatforrásonként, beállításonként egy XML fájl és Windows környezeti változók használata (Indirect XML Configuration file)
![Page 9: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/9.jpg)
Naplózzuk az adattárház eseményeit!
Készítsünk naplót, hogyPontos képet kapjunk betöltési folyamataink eredményérőlStatisztikákat készíthessünkLáthatóvá tegyük, hogy épp melyik folyamat futFuttatandó betöltések (SSIS csomagok, task-ok) szabályozása
Készítsünk háromszintű naplót (Job, Package, Task) lefúrási lehetőséggelA task szintű naplózásra használjuk az SSIS beépített naplózási szolgáltatását (sysdtslog90 tábla)
![Page 10: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/10.jpg)
Auditáljuk a beérkező rekordokat
A Derived column task segítségével könnyen hozzáadhatjuk a beérkező rekordokhoz, hogy
Melyik forrásrendszerből került beMelyik Package töltötteMilyen módon került be (BI Studióból, vagy job-ból? (interactiveMode)Hogy került be? (hibaágon, vagy standard úton)Ki töltötte be?Mikori betöltéssel került be?
Az audit információk megkönnyítik a hibakeresést és a kézi javítást.
![Page 11: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/11.jpg)
Építsünk dinamikus SSIS csomagokat
Egy ismételt betöltés során eldönti a package, hogy kell-e futnia vagy sem. Ne fusson újra, ha egyszer már sikeresen lefutott!Használjunk feltételhez kötött végrehajtást (Expression and Constraint)Napló alapján tárolt eljárás beírja a package változójába, hogy kell e futni vagy nem. A package innen kiolvassa és az annak megfelelő ágon fut.Ne erre használjuk a disable=true beállítást, mert nem erre való!
![Page 12: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/12.jpg)
Építsünk dinamikusan konfigurált csomagokat
Nem tudjuk beégetni az SSIS csomagba, hogy melyik napot kell letöltenie.Paraméterezett lekérdezés, vagy az egész lekérdezés egy paraméter:
Select * from t where datum=?„Select * from t where datum=2007-05-16”
Használjunk paramétert, ha lekérdezésünk hossza meghaladja a 4000 karaktertMinden más esetben készítsük el magunk a teljes lekérdezéstMegj.: A DataFlow task nem konfigurálható át futásidőben, csak a package betöltésekor. (DTS tudta) -> Migration best practice: NE
![Page 13: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/13.jpg)
Készítsünk Template package-et a fejlesztési munka gyorsítására
A Template package tartalmazza:Konfigurációs állományok elérési útjátNaplózási funkciókatGyakran használt task-okat, connection menedzsereket, Standard változókatCsomagok védelmi szintjét
ProtectionLevel=DontSaveSensitive
standard beállításokatTegyünk BreakPoint-ot az package OnPostExecute eseményére
Tegyünk szöveges megjegyzéseket a template package-be -> Mit kell majd átállítani, ha új package készül belőle
![Page 14: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/14.jpg)
A Package-ek legyenek moduláris felépítésűek
1 Package 1 táblát töltsön!Dimenzió táblánként 1 package, ténytáblánként 1 packageKönnyebb fejleszteni, hibát javítani, futtatni, párhuzamosítani
Package-en belül használjunk container-eket
Párhuzamosíthatóak benne a folyamatokEgyszerűbb nem futtatni (disable=true)
Használjunk fő package-eket a dimenziókat és ténytáblákat töltő package-ek összefogására
![Page 15: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/15.jpg)
A Package-ek legyenek moduláris felépítésűek
![Page 16: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/16.jpg)
Hogyan futassuk SSIS csomagjainkat fejlesztés közben?
BI Development stúdióF5 (Start with debugging)Ctrl F5 (Start without debugging)
Parancssor: DTExec.exe (vagy DTExecUI.exe)Performancia teszteléshez használjuk a parancssortTask-ok kikapcsolása: Disable=false (csak debug módban használható)
![Page 17: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/17.jpg)
TematikaAz SSIS Gyors áttekintéseHatékony ETL folyamat megvalósítása az SSIS segítségévelTeljesítmény-hangolás
![Page 18: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/18.jpg)
Az SSIS felépítéseWorkflow engine
Párhuzamos futtatást lehetővé tevő Task-okat, konténereket futtató workflow engineTeljesítménye SSIS szempontjából tekinthető adottságnak (teljesítménye az RDBMS-től, a hálózat sebességétől függ)
Data Flow engieSpeciális runtime task, ami lehetővé teszi a különböző rendszerek közti adatmozgatástKomponensei adatforrások, transzformációs eljárások, céladatbázisokPárhuzamosítható
![Page 19: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/19.jpg)
Teljesítmény-hangolásPárhuzamosítsunk!
Párhuzamosítsunk!Szedjük szét a forrásadatokat
Fájlokat több fájlbaTáblák adatát több szeletre (where feltétellel)
Határozzuk meg, hogy hány folyamat fusson párhuzamosan
Data flown-n kívül (Package-en belül): MaxConcurrentExecutables (-1 = (Logikai) processzorok száma + 2)Data flown-n belül: EngineThreads. Az alapértelmezett 5, ami egy multiprocesszoros gépen megnövelhető (Adatforrásoknak és aszinkron transzformációknak kell egy-egy thread)
![Page 20: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/20.jpg)
Teljesítmény-hangolásIrányelvek
Egyszerre a lehető legtöbb adatot olvassuk be a pipeline-ba
Csak azokat amelyekre tényleg szükség van. Select * = A lehető legkisebb helyigényű adattípust használjuk
Kerüljük a teljes adathalmazon végzett transzformációkat (sort, aggregate) (ha tudjuk)Index: Betöltés szempontjából csak a dimenzió táblákra -> jobb lookup teljesítményHasználjunk SQL Server Destination-t OLE DB helyettTöltsünk üres táblába (Partícionálás)
![Page 21: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/21.jpg)
ÖsszefoglalásÉpítsen hatékony SSIS csomagokat!Ismerje meg alaposan az SSIS architektúrájátPárhuzamosítson!Mérje a teljesítményt (Naplózzon)És használjon egy jól bevált adattárház építési metodológiát!
![Page 22: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/22.jpg)
További információk
Integration Services: Performance Tuning Techniqueshttp://www.microsoft.com/technet/prodtechnol/sql/2005/ssisperf.mspx
Project REAL: Business Intelligence ETL Design Practiceshttp://www.microsoft.com/technet/prodtechnol/sql/2005/realetldp.mspx
Blog bejegyzések:Jammie Thomson, Marco Russo, Alberto Ferrari, Brian Knight írásai
Magyar nyelvű irodalom:http://www.biprojekt.hu
![Page 23: Kővári Attila Független BI tanácsadó, SQL Server MVP biprojekt.hu](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568147a5550346895db4e2e8/html5/thumbnails/23.jpg)