Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Data Vault w chmurze

652 views

Published on

Prezentacja przedstawiona podczas dBConf 2015. Opisuje jaki sposób zaimplementować model Data Vault, który pozwala na wersjonowanie i logiczną odrębność bytów/obiektów/encji w hurtowni danych.

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Data Vault w chmurze

  1. 1. Data Vault w chmurze IMPLEMENTACJA MODELU NA PRZYKŁADZIE REDSHIFT Adrian Najczuk, dBConf 2015 1
  2. 2. O mnie DW&BI LEADER IMPLEMENTACJE DW&BI W OPARCIU O IBM COGNOS/DB2 I REDSHIFT TRENER BI BIZ DEV MANAGER 2 najczuk@gmail.com https://pl.linkedin.com/in/najczuk
  3. 3. Agenda 1. Wprowadzenie – czym jest HD i DV 2. Benchmark TPC H 3. Implementacja 1. Huby 2. Linki 3. Satelity 4. DV 2.0 3
  4. 4. Czym jest Hurtownia Danych (HD) Dane w przedsiębiorstwie są rozproszone ◦ aplikacje, pliki, webservice’y, maile, ludzie HD to miejsce, w którym wszystkie te źródła są integrowane Dzięki HD z danych mogą korzystać użytkownicy biznesowi HD nie obciążają systemów transakcyjnych 4 • Analiza • OczyszczanieŹródła • Oczyszczanie • ŁączenieStaging • Raporty • Analizy • Data Marts • Report Marts • Kostki Data Acces
  5. 5. Data Vault – Metodologia Konflikt danych w systemie a informacji biznesowych 5 Zmienność reguł biznesowych Zmienność systemów
  6. 6. SAT Data Vault – Model 6 HUB LINK LINKSAT SAT SAT SAT HUBLINK LINK SATSAT SAT
  7. 7. Data Vault - Architektura 7 AnalizaŹródła CleansingStaging • Data Vault • Business Vault EDW • Raporty • Analizy • Data Marts • Report Marts • Kostki Data Access
  8. 8. Benchmark TPC H PART - 200 000 PARTSUPP – 800 000 SUPPLIER – 10 000 CUSTOMER – 150 000 NATION – 25 LINEITEM – 6 000 000 ORDERS – 1 500 000 8
  9. 9. Implementacja 9 4 generyczne skrypty w Talend konfiguracja w oparciu o tabele pomocnicze Amazon Redshift bezobsługowe wersjonowanie danych nazewnictwo wg standardów Amazon S3
  10. 10. Hub - konfiguracja hub_params id identyfikator wpisu rsrc źródło pochodzenia danych hub_name nazwa huba source_business_key nazwa kolumny z kluczem biznesowym source_schema_name nazwa schemy w obrębie stagingu source_table_name nazwa tabeli w stagingu 10 Dane z różnych warstw (STG, EDW, …) znajdują się na tym samym klastrze.
  11. 11. Hub – przykład encji 11 dv.hub_customer customer_sqn klucz sekwencyjny customer_ldts czas przybycia customer_ledts czas odejścia customer_rsrc id źródła customer_id klucz biznesowy dv_helpers.hub_params id 1 rsrc TPC hub_name customer source_business_key c_custkey source_schema_name tpc source_table_name customer
  12. 12. Hub – kroki ładowania Params Pobierz parametry Przybycie Dopisz rekordy, których klucz biznesowy (customer_id) nie występuje lub występuje z datą odejścia (customer_ledts) Odejścia Sprawdź co jest w hubie a brakuje w źródle 12
  13. 13. Hub - timelaps 13 dv.hub_customer t1 t2 t3 dodano usunięto dodano customer_sqn 1 1 3 customer_ldts t1 t1 t3 customer_ledts t2 customer_rsrc TPC TPC TPC customer_id 20 20 20
  14. 14. Sat - konfiguracja sat_params id identyfikator wpisu rsrc źródło pochodzenia danych sat_name nazwa satelity hub_name nazwa huba source_business_key nazwa kolumny z kluczem biznesowym source_schema_name nazwa schemy w obrębie stagingu source_table_name nazwa tabeli w stagingu 14 Wariant dedykowany dla satelit pochodzących z jednej tabeli systemu źródłowego
  15. 15. Sat – przykład encji 15 dv.sat_customer customer_sqn/ customer_hkey 123 customer_ldts czas przybycia customer_ledts czas odejścia customer_rsrc id źródła customer_hash hash z atrybutów opisowych atrybut 1-n atrybuty opisowe dv_helpers.sat_params id 5 rsrc TPC sat_name customer hub_name customer source_business_key c_custkey source_schema_name tpc source_table_name customer dv_helpers.sat_cols id 5 5 source_col name surname target_col name surname order 1 2
  16. 16. Sat – kroki ładowania Przybycie Pobierz rekordy dla których - nie występuje customer_id, - występuje z customer_ledts - customer_hash różni się Zrzut Zapisz przy pomocy polecenia UNLOAD rekody na S3 Zaimportuj regordy przy pomocy COPY na S3 Aktualizacja Dla zdublowanych rekordów ustaw customer_ledts dla starszego. - stwórz tmp_table dla starszych - usun te rekordy z sat - wstaw z temp_table Usunięcia Dla rekordów, które znikły przeprowadzamy podobną procedurę jak w przypadku aktualizacji 16
  17. 17. Sat - timelaps 17 dv.sat_customer t1 t2 t3 dodano zmieniono usunięto customer_sqn 1 1 1 1 customer_ldts t1 t1 t2 t2 customer_ledts t2 – 1sec t3 customer_rsrc TPC TPC TPC TPC customer_hash hash1 hash1 hash2 hash2 atrybut 1-n {a,b,c} {a,b,c} {a,b,x} {a,b,x}
  18. 18. Lnk - konfiguracja lnk_params id identyfikator wpisu rsrc źródło pochodzenia danych lnk_name nazwa linka hub1_name nazwa huba 1 col_name_1 nazwa kolumny docelowej … source_sql_query Zapytanie wyciągające potrzebne klucze has_business_key jeżeli true wstawiamy pierwszą wartość z zapytania jako id hubs_no ilość hub’ów 18 Domyślnie skonfigurowany pod maksymalnie n hub’ów, ale można pokusić się o generalizację
  19. 19. Lnk – przykład encji 19 dv.lnk_customer_order customer_order_hkey hash z {hub1_sqn,…} customer_order_ldts czas przybycia customer_order_ledts czas odejścia customer_order_rsrc id źródła {hub1_sqn,…} sqn’y hubów customer_order_id klucz biznesowy relacji, jeżeli istnieje lnk_params id 4 rsrc TPC lnk_name customer_order hub1_name customer col_name_1 customer hub1_name order col_name_1 order source_sql_query has_business_key 0 hubs_no 2
  20. 20. Lnk – kroki ładowania Przybycie Pobierz rekordy dla których - nie występuje customer_order_hkey/ customer_order_id, - występuje z customer_order_ledts Zrzut Zapisz przy pomocy polecenia UNLOAD rekordy na S3 Zaimportuj rekordy przy pomocy COPY na S3 Usunięcia Dla zdublowanych hkey ustaw customer_order_ledts dla starszego - stwórz tmp_table dla starszych - usuń te rekordy z lnk - wstaw z rekordy temp_table 20
  21. 21. Lnk - timelaps 21 dv.lnk_customer_order t1 t2 dodano usunięto customer_order_hkey hash1 hash1 customer_order_ldts t1 t1 customer_order_ledts t2 customer_order_rsrc TPC TPC customer_sqn 4 4 order_sqn 5 5
  22. 22. DV 2.0 22 eliminacja SQN na rzecz HKEY wparcie NoSQL klucze kompozytowe w HUB usunięcie LEDTS z linków na rzecz satelit realtime z wykorzystaniem ESB
  23. 23. Źródła 23
  24. 24. PYTANIA? 24
  25. 25. 25

×