SlideShare a Scribd company logo
1 of 19
Zasilanie hurtowni danych 
w SSIS w praktyce 
Kamil Nowiński 
kamil@nowinski.net
Kamil Nowiński 
• Konsultant, freelancer SQL Server 
• Obecnie jako architekt w projekcie hurtowni danych 
„Ari@dna2” programu e-Cło dla Ministerstwa Finansów 
• Programista > 20 lat (VB6, VB.NET, C#, .NET Framework) 
• Ponad 10-letnie doświadczenie w SQL Server (DEV/DBA) 
• Bazy danych: Microsoft SQL 2000 – 2012+ 
• Członek komisji rewizyjnej Stowarzyszenia PLSSUG, 
• Współorganizator konferencji SQLDay 
• Certyfikaty SQL Server: MCITP, MCP, MCTS, MCSA, MCSE 
• Zainteresowania: 
• Optymalizacja baz danych, Hurtownie danych, SSIS 
• Fotografia cyfrowa (Nikon D-90, Adobe Lightroom)
Agenda 
Źródła zasileń hurtowni danych 
Częstotliwość zasilania hurtowni 
Sposoby zasilania hurtowni 
Demo 
Więzy integralności w hurtowni
Nie powiem o… 
Projektowaniu hurtowni 
SCD (Slowly Changing Dimension) 
Przechwytywaniu zdarzeń 
Checkpoint 
…tym co Roman w listopadzie ;) 
Dlaczego? 
Bo to nie 8-godzinny warsztat SQLDay!
Źródła zasileń hurtowni danych 
• Systemy bazodanowe (operacyjne) 
– Microsoft SQL Server 
– Oracle 
– PostgreSQL 
– SyBase 
– DB2 
– … 
• Pliki płaskie 
– CSV 
– Excel 
• Bazy Microsoft Access 
• Pliki XML 
• WebServices
Częstotliwość zasilania hurtowni 
• Miesięczny 
• Tygodniowy 
• Dzienny 
• Częściej? (RealTime?)
Stage 
• Po co, dlaczego? 
• Lokalizacja 
• Ale co dalej z danymi?
Sposoby zasilania hurtowni 
Zasilanie przyrostowe bez aktualizacji: 
 SPLIT PARTITION & TRUNCATE 
 INSERT (only) 
Zasilanie przyrostowe z „ułomną” aktualizacją: 
 DELETE/TRUNCATE & INSERT 
Zasilanie z aktualizacją danych / eliminacją duplikatów: 
 Mechanizm CDC (Net processing mode) 
 DISTINCT 
 SORT 
 Lookup 
 DELETE, INSERT, UPDATE  MERGE
DEMO #1
Więzy integralności w hurtowni 
• Dobra, jedna tabela została zasilona – co z pozostałymi? 
• Pytanie: czy istotna jest kolejność zasilania? 
• Odpowiedź brzmi: to zależy  
– Nie, gdy zasilamy „Staging” 
– Tak*, gdy zasilamy hurtownię (bazę docelową) 
• Od czego zależy kolejność? 
– CONSTRAINTS typu FOREIGN KEY
Load/Merge Order 
• Gdy mamy jedną tabelę… (iluzja)
Load/Merge Order 
• Dwie tabele (robisz DW na zaliczenie laborek?)
Load/Merge Order 
• Kilka tabel 
(marzenia)
Load/Merge Order 
• KilkaNAŚCIE tabel
Load/Merge Order 
• KilkaSET tabel (utopia)
Jak poradzić sobie z ustaleniem kolejności ładowania tabel 
DEMO #2
Podsumowanie 
• Obszar „Stage” w osobnej bazie danych zaraz „obok” 
• Eliminacja duplikatów: 
– Lookup niekoniecznie (tylko z opcją CACHE!) 
– MERGE
Q&A 
Pytania?
DZIĘKUJĘ ZA UWAGĘ 
Zapraszam do kontaktu 
kamil@nowinski.net 
kamil.nowinski 
http://pl.linkedin.com/in/kamilnowinski/ 
@NowinskiK

More Related Content

What's hot

Object Relational Database Management System
Object Relational Database Management SystemObject Relational Database Management System
Object Relational Database Management SystemAmar Myana
 
Heterogeneous computing
Heterogeneous computingHeterogeneous computing
Heterogeneous computingRashid Ansari
 
Data warehousing labs maunal
Data warehousing labs maunalData warehousing labs maunal
Data warehousing labs maunalEducation
 
Distributed database system
Distributed database systemDistributed database system
Distributed database systemM. Ahmad Mahmood
 
Enterprise Security: Tableau vs. Power BI
Enterprise Security: Tableau vs. Power BIEnterprise Security: Tableau vs. Power BI
Enterprise Security: Tableau vs. Power BISenturus
 
Hadoop Distributed File System
Hadoop Distributed File SystemHadoop Distributed File System
Hadoop Distributed File SystemRutvik Bapat
 
Introduction to multi core
Introduction to multi coreIntroduction to multi core
Introduction to multi coremukul bhardwaj
 
Data center cooling infrastructure slide
Data center cooling infrastructure slideData center cooling infrastructure slide
Data center cooling infrastructure slideLivin Jose
 
Distributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflowDistributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflowEmanuel Di Nardo
 
Introduction To Data Warehousing
Introduction To Data WarehousingIntroduction To Data Warehousing
Introduction To Data WarehousingAlex Meadows
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
Implementation levels of virtualization
Implementation levels of virtualizationImplementation levels of virtualization
Implementation levels of virtualizationGokulnath S
 

What's hot (20)

5. cs8451 daa anna univ question bank unit 5
5. cs8451 daa anna univ question bank unit 55. cs8451 daa anna univ question bank unit 5
5. cs8451 daa anna univ question bank unit 5
 
HDFS Architecture
HDFS ArchitectureHDFS Architecture
HDFS Architecture
 
Object Relational Database Management System
Object Relational Database Management SystemObject Relational Database Management System
Object Relational Database Management System
 
Heterogeneous computing
Heterogeneous computingHeterogeneous computing
Heterogeneous computing
 
Data warehousing labs maunal
Data warehousing labs maunalData warehousing labs maunal
Data warehousing labs maunal
 
Database - Design & Implementation - 1
Database - Design & Implementation - 1Database - Design & Implementation - 1
Database - Design & Implementation - 1
 
Ppt
PptPpt
Ppt
 
Hive(ppt)
Hive(ppt)Hive(ppt)
Hive(ppt)
 
Distributed database system
Distributed database systemDistributed database system
Distributed database system
 
Enterprise Security: Tableau vs. Power BI
Enterprise Security: Tableau vs. Power BIEnterprise Security: Tableau vs. Power BI
Enterprise Security: Tableau vs. Power BI
 
SSIS Presentation
SSIS PresentationSSIS Presentation
SSIS Presentation
 
Hadoop Distributed File System
Hadoop Distributed File SystemHadoop Distributed File System
Hadoop Distributed File System
 
Introduction to multi core
Introduction to multi coreIntroduction to multi core
Introduction to multi core
 
Data center cooling infrastructure slide
Data center cooling infrastructure slideData center cooling infrastructure slide
Data center cooling infrastructure slide
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
Distributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflowDistributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflow
 
Hdfs architecture
Hdfs architectureHdfs architecture
Hdfs architecture
 
Introduction To Data Warehousing
Introduction To Data WarehousingIntroduction To Data Warehousing
Introduction To Data Warehousing
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Implementation levels of virtualization
Implementation levels of virtualizationImplementation levels of virtualization
Implementation levels of virtualization
 

Similar to Zasilanie hurtowni danych w SSIS w praktyce

Wprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivotWprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivotKamil Nowinski
 
SQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureSQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureKamil Nowinski
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuHighWheelSoftware
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychWomen in Technology Poland
 
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastBartosz Ratajczyk
 
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSeeQuality.net
 
Paweł Ciepły: PowerBI part1
Paweł Ciepły: PowerBI part1Paweł Ciepły: PowerBI part1
Paweł Ciepły: PowerBI part1AnalyticsConf
 
semKRK #13 - Aneta i Dawid Krystosik
semKRK #13 - Aneta i Dawid KrystosiksemKRK #13 - Aneta i Dawid Krystosik
semKRK #13 - Aneta i Dawid KrystosiksemKRK
 
AnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseAnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseWlodek Bielski
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
Microsoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaMicrosoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaWydawnictwo Helion
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
 
PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...
PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...
PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...PROIDEA
 
Microsoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBAMicrosoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBAHighWheelSoftware
 
Przemysław Dzierżak: Hurtownie dla DBA
Przemysław Dzierżak: Hurtownie dla DBAPrzemysław Dzierżak: Hurtownie dla DBA
Przemysław Dzierżak: Hurtownie dla DBAAnalyticsConf
 

Similar to Zasilanie hurtowni danych w SSIS w praktyce (20)

Wprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivotWprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivot
 
SQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureSQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data Capture
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danych
 
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
 
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
 
Paweł Ciepły: PowerBI part1
Paweł Ciepły: PowerBI part1Paweł Ciepły: PowerBI part1
Paweł Ciepły: PowerBI part1
 
Change Tracking
Change TrackingChange Tracking
Change Tracking
 
semKRK #13 - Aneta i Dawid Krystosik
semKRK #13 - Aneta i Dawid KrystosiksemKRK #13 - Aneta i Dawid Krystosik
semKRK #13 - Aneta i Dawid Krystosik
 
SQLDay2013_MarekAdamczuk_Kursory
SQLDay2013_MarekAdamczuk_KursorySQLDay2013_MarekAdamczuk_Kursory
SQLDay2013_MarekAdamczuk_Kursory
 
Sql day2015 fts
Sql day2015 ftsSql day2015 fts
Sql day2015 fts
 
AnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseAnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data Warehouse
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
SQL. Ćwiczenia praktyczne
SQL. Ćwiczenia praktyczneSQL. Ćwiczenia praktyczne
SQL. Ćwiczenia praktyczne
 
Microsoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaMicrosoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga eksperta
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...
PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...
PLNOG 3: Tadeusz Knapik - E = (DC)2 czyli jak można pracować w oparciu o dwa ...
 
Kolokacja - prezentacja z PLNOG20
Kolokacja - prezentacja z PLNOG20Kolokacja - prezentacja z PLNOG20
Kolokacja - prezentacja z PLNOG20
 
Microsoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBAMicrosoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBA
 
Przemysław Dzierżak: Hurtownie dla DBA
Przemysław Dzierżak: Hurtownie dla DBAPrzemysław Dzierżak: Hurtownie dla DBA
Przemysław Dzierżak: Hurtownie dla DBA
 

Zasilanie hurtowni danych w SSIS w praktyce

  • 1. Zasilanie hurtowni danych w SSIS w praktyce Kamil Nowiński kamil@nowinski.net
  • 2. Kamil Nowiński • Konsultant, freelancer SQL Server • Obecnie jako architekt w projekcie hurtowni danych „Ari@dna2” programu e-Cło dla Ministerstwa Finansów • Programista > 20 lat (VB6, VB.NET, C#, .NET Framework) • Ponad 10-letnie doświadczenie w SQL Server (DEV/DBA) • Bazy danych: Microsoft SQL 2000 – 2012+ • Członek komisji rewizyjnej Stowarzyszenia PLSSUG, • Współorganizator konferencji SQLDay • Certyfikaty SQL Server: MCITP, MCP, MCTS, MCSA, MCSE • Zainteresowania: • Optymalizacja baz danych, Hurtownie danych, SSIS • Fotografia cyfrowa (Nikon D-90, Adobe Lightroom)
  • 3. Agenda Źródła zasileń hurtowni danych Częstotliwość zasilania hurtowni Sposoby zasilania hurtowni Demo Więzy integralności w hurtowni
  • 4. Nie powiem o… Projektowaniu hurtowni SCD (Slowly Changing Dimension) Przechwytywaniu zdarzeń Checkpoint …tym co Roman w listopadzie ;) Dlaczego? Bo to nie 8-godzinny warsztat SQLDay!
  • 5. Źródła zasileń hurtowni danych • Systemy bazodanowe (operacyjne) – Microsoft SQL Server – Oracle – PostgreSQL – SyBase – DB2 – … • Pliki płaskie – CSV – Excel • Bazy Microsoft Access • Pliki XML • WebServices
  • 6. Częstotliwość zasilania hurtowni • Miesięczny • Tygodniowy • Dzienny • Częściej? (RealTime?)
  • 7. Stage • Po co, dlaczego? • Lokalizacja • Ale co dalej z danymi?
  • 8. Sposoby zasilania hurtowni Zasilanie przyrostowe bez aktualizacji:  SPLIT PARTITION & TRUNCATE  INSERT (only) Zasilanie przyrostowe z „ułomną” aktualizacją:  DELETE/TRUNCATE & INSERT Zasilanie z aktualizacją danych / eliminacją duplikatów:  Mechanizm CDC (Net processing mode)  DISTINCT  SORT  Lookup  DELETE, INSERT, UPDATE  MERGE
  • 10. Więzy integralności w hurtowni • Dobra, jedna tabela została zasilona – co z pozostałymi? • Pytanie: czy istotna jest kolejność zasilania? • Odpowiedź brzmi: to zależy  – Nie, gdy zasilamy „Staging” – Tak*, gdy zasilamy hurtownię (bazę docelową) • Od czego zależy kolejność? – CONSTRAINTS typu FOREIGN KEY
  • 11. Load/Merge Order • Gdy mamy jedną tabelę… (iluzja)
  • 12. Load/Merge Order • Dwie tabele (robisz DW na zaliczenie laborek?)
  • 13. Load/Merge Order • Kilka tabel (marzenia)
  • 14. Load/Merge Order • KilkaNAŚCIE tabel
  • 15. Load/Merge Order • KilkaSET tabel (utopia)
  • 16. Jak poradzić sobie z ustaleniem kolejności ładowania tabel DEMO #2
  • 17. Podsumowanie • Obszar „Stage” w osobnej bazie danych zaraz „obok” • Eliminacja duplikatów: – Lookup niekoniecznie (tylko z opcją CACHE!) – MERGE
  • 19. DZIĘKUJĘ ZA UWAGĘ Zapraszam do kontaktu kamil@nowinski.net kamil.nowinski http://pl.linkedin.com/in/kamilnowinski/ @NowinskiK

Editor's Notes

  1. SPLIT PARTITION INSERT DELETE/TRUNCATE & INSERT Z aktualizacją danych / eliminacją duplikatów: Mechanizm CDC (nie zawsze możliwy) DISTINCT, SORT (sort all cols with remove duplicates) LookUp (wolny) DELETE, INSERT, UPDATE -> MERGE
  2. * Gdy ma relacje i nie wyłączyliśmy ich podczas ładowania