Datawarehousing in het groot Sander van der Hoeff
Even voorstellen Sander van der Hoeff Sinds 1990 in de IT Met microsoft datawarehouses gedaan bij diverse klanten sinds 2001 Bij Kadenza sinds 2007 Hardloper
Opgericht in 2004 en met bijna 100 senior consultants is Kadenza de grootste onafhankelijke specialist op het gebied van Enterprise Intelligence Passie voor het vak Kadenza werkt uitsluitend met ervaren mensen aan projecten en detacheringsopdrachten op het gebied van Business Intelligence, Data Warehousing, Planning,Control en Consolidatie
Beschrijving Sandd Sandd is het op één na grootste postbedrijf van Nederland en richt zich op de bezorging van geadresseerde partijenpost, zoals direct mail en abonneebladen. Sinds de liberalisering van de Nederlandse postmarkt richt Sandd zich ook op transactiepost, zoals facturen en polissen. Sandd streeft een marktaandeel na van 20-25%.
Ontwikkeling Sandd
© 2011 – Norbert de Vries – Sandd B.V. Huidige situatie Op dit moment hebben 5 rapportage omgevingen met meer dan 200 gebruikers op HQ en in het netwerk: Sales Netwerk (nieuw) BBSC Human Resources Netwerk (SMIP2) => wordt langzaam uitgefaseerd Situatie vanaf 2011 © 2011 – Norbert de Vries – Sandd B.V.
Datawarehousing in het groot Tot 1 mln rijtjes geen probleem Maar daarna als het echt groot wordt Tips en tricks
Lagen architectuur (definities) Kadenza Referentie Methodiek Source Overhalen van data Stage Verschil vergelijking en foreward key generation DWH Historisch correct opslaan Datamart Aggregeren en beschikbaar maken
Wat is groot ? Table Size Veel characters fields Aantal rijen Monsterdimensies Aantal refenties naar Dimensies
Hardware 12 GB RAM 400 GB disks DB 80 GB Grootste Tabel 30 GB 360 mln rijen Standard edition
Zoek de verschillen (Stage)
Zoek de verschillen (Hoe) Change Data Capture (denk aan deletes) Mutatie markeringen in bronnen SCD component Merge join en Veld bij Veld vergelijking (sorteren) Lookup transformatie (twee keer) Merge join en Checksum transformatie Table Diff of andere extrene componenten Merge join en HashByte berekening (SQL of SSIS) Merge statement TSQL statement(s)
Blocking components zoals Sort in ssis Lookups Memory problemen 32 vs 64 bits (4gb max) Blocking components zoals Sort in ssis Lookups SSIS Memory (OS) vs SQL Memory SQL meer memory verergert het probleem Perfmon counter “Buffers spooled”
Synchronisatie van stromen
Schijfruimte problemen Tempdb Commit Size Sort operations Profiel van SSIS user
Temp bestanden realloceren TempDB http://bradmcgehee.com/wp-content/uploads/presentations User Profiel
Partitioning indien mogelijk Kan geen parameters aan in lookup Lookups Zo Klein mogelijk Partitioning indien mogelijk Kan geen parameters aan in lookup In Memory Als het niet past dramatische performance decrease Extreem groot user profiel
Meten is weten
Cascading Updates Iedere update van een parent levert ook een nieuwe child record op in het Datawarhouse Telefoonnummerwijziging van klant levert > 1 mln updates Cascading updates anders oplossen
Fragmenteren Tabellen (partitioning) Lookups Dataflows ??
Indexeren Kosten en baten Drie kwartier tijdwinst door drop index (en hem in stage parallel weer op te bouwen. Schijfruimte Tempdb vs Disk
Profiler Live Show All Events , Show All Colums (bijvoorbeeld DB naam) Saven als script en trace starten vanuit SSMS Trace file opslaan en voor later gebruik inlezen in Profiler Zoeken naar een speld in een hooiberg
RML Utilities Importeer Trace File Click en Zoek
Beheer Record counts Duration Counts Run reports
Weg is weg (archiveren) Het verschil tussen deletes en archives Erg vervelend als je hier achteraf mee wordt geconfronteerd Aparte procedure of gewoon in de bestaande flows
Vragen