Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaKatalin Vörösné Megváltozta több, mint 10 éve
2
Kinek szól az előadás: Akik már ismerik valamennyire az SSIS-t Akik nem most hallanak először a BI-ról és az adattárházról Az előadás célja A legjobb módszerek bemutatása Hogy Önök hatékony ETL folyamatokat valósítsanak meg az SSIS segítségével
3
Az SSIS Gyors áttekintése Hatékony ETL folyamat megvalósítása az SSIS segítségével Teljesítmény-hangolás
4
Projekt- tervezés Projektmenedzsment Üzleti igények meghatározása 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
5
Adatbetöltő eszköz, a MS ETL eszköze Része az SQL Server 2005 programcsomagnak Grafikus programozási interfész Nem DTS!
6
Az SSIS Gyors áttekintése Hatékony ETL folyamat megvalósítása az SSIS segítségével Teljesítmény-hangolás
7
Érvek a fájlrendszer mellett Könnyebb Source control alá helyezni egy fájlt, mint egy adatbázist Könnyebb fájlt verziózni, mint adatbázist Egyszerűbb menteni és visszaállítani, mint az msdb adatbázist Egyszerűbben betölti a BI Studio az SSIS csomagokat fájlból, mint adatbázisból Hierarchikusan rendezhetjük az SSIS csomagokat Érvek az adatbázis mellett A napi mentések során SSIS csomagjaink automatikusan mentődnek.
8
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és Hívó package változójában SQL 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)
9
Készítsünk naplót, hogy Pontos képet kapjunk betöltési folyamataink eredményéről Statisztikákat készíthessünk Láthatóvá tegyük, hogy épp melyik folyamat fut Futtatandó 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éggel A task szintű naplózásra használjuk az SSIS beépített naplózási szolgáltatását (sysdtslog90 tábla)
10
Minden szinten: mikor indult, mikor fejeződött be, milyen eredménnyel zárult a folyamat Job szint melyik napotokra futott, hány hívott package futott hibásan mekkora volt az adattárház betöltés előtt és után, … Package szint: Errorcode, desc, source Betöltött sorok száma (új, megváltozott, hibás, ) Honnan lett meghívva (job, BI Studio, …) interactive mode Ki futtatta, … Melyik gépen futott Task szint: onError esemény
11
A Derived column task segítségével könnyen hozzáadhatjuk a beérkező rekordokhoz, hogy Melyik forrásrendszerből került be Melyik Package töltötte Milyen 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.
12
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ó!
13
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 karaktert Minden más esetben készítsük el magunk a teljes lekérdezést Megj.: A DataFlow task nem konfigurálható át futásidőben, csak a package betöltésekor. (DTS tudta) -> Migration best practice: NE
14
A Template package tartalmazza: Konfigurációs állományok elérési útját Naplózási funkciókat Gyakran használt task-okat, connection menedzsereket, Standard változókat Csomagok védelmi szintjét ProtectionLevel=DontSaveSensitive standard beállításokat Tegyü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
15
1 Package 1 táblát töltsön! Dimenzió táblánként 1 package, ténytáblánként 1 package Könnyebb fejleszteni, hibát javítani, futtatni, párhuzamosítani Package-en belül használjunk container-eket Párhuzamosíthatóak benne a folyamatok Egyszerű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
17
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 parancssort Task-ok kikapcsolása: Disable=false (csak debug módban használható)
18
Az SSIS Gyors áttekintése Hatékony ETL folyamat megvalósítása az SSIS segítségével Teljesítmény-hangolás
19
Workflow engine Párhuzamos futtatást lehetővé tevő Task-okat, konténereket futtató workflow engine Teljesí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 engie Speciális runtime task, ami lehetővé teszi a különböző rendszerek közti adatmozgatást Komponensei adatforrások, transzformációs eljárások, céladatbázisok Párhuzamosítható
20
Párhuzamosítsunk! Szedjük szét a forrásadatokat Fájlokat több fájlba Tá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)
21
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ény Használjunk SQL Server Destination-t OLE DB helyett Töltsünk üres táblába (Partícionálás)
22
Építsen hatékony SSIS csomagokat! Ismerje meg alaposan az SSIS architektúráját Pá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!
23
Integration Services: Performance Tuning Techniques http://www.microsoft.com/technet/prodtechnol/sql/2005/ssisperf.mspx Project REAL: Business Intelligence ETL Design Practices http://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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.