Jak zrychlit ETL (transformaci dat) z 13 na 3hod. | Blue Partners
Aktualizováno: 19.11.2023
Zásadně jsme zrychlili transformaci dat pro jednu z největších společností pohybující se na trhu finančního poradenství společnost OVB Allfinanz, a.s.
2021
Náš klient
- OVB Allfinanz - poradenská společnost zajišťující analýzu finanční situace svých klientů, vždy s ohledem na individuální situaci
- více než 1 400 000 klientů v České republice
- více než 4 000 000 sjednávaných smluv v České republice
- více než 2000 licencovaných spolupracovníků v České republice
- působí v 16 zemích Evropy
Potřeba klienta
OVB používá ETL pro přesun dat z hlavního provozního systému jednotného pro všechny země do datové sféry CZ. Tento přesun probíhá denně vždy po uzavření dne v 18 hodin. Transformace dat původně trvala v průměru 13 hodin a pokud se proces v průběhu zhroutil, musela se celá transformace provádět od začátku. Navíc 13 hodin byl zásadní limit pro transformaci dat v nočním běhu, a protože některé navazující exporty se musely spouštět během noci, data putovala do některých systémů dalších stran i 2 dny. Tím, jak se postupně navyšoval objem dat potřebných k přenesení se ETL neustále prodlužovalo a prodlužovalo.
Jak projekt probíhal
V průběhu prvního měsíce se detailně dokumentovalo samotné ETL a návazné procesy. Následně jsme hledali možné optimalizace a postupně začali budovat nové ETL, které umí fungovat jak přírůstkově, tak přenést všechna data od nuly. Po nasazení nového ETL probíhal po určitou dobu souběh starého a nového ETL, kdy staré ETL bylo primární. Po doběhnutí starého i nového ETL bylo programově zjištěno, zda obě ETL dávají stejná data. Po krátké době, kdy bylo zaručeno, že data jsou shodná, jsme garde obrátili. Po následujících 3 měsících se odstavilo staré ETL.
Z původních 13 hodin teď ETL trvá stabilně něco málo přes 3 hodiny. Spolupracovníci tak mají data ještě stejný den.
V rámci startu projektu jsme si definovali následující cíle:
- vytvoření dokumentace “starého“ ETL
- zrychlení samotného ETL
- zrychlení pomocí přírůstkové metody, kdy se kopírují jen změněná data
- zavedení kontrolních mechanismů zajišťujících, aby se při problému ETL nemuselo spouštět celé od začátku
Kroky vedoucí ke zrychlení ETL
- Pokud to povaha dat povolovala, probíhal inkrementální import dat
- Byly zrušeny nevyužívané datové sady
- Bylo omezeno množství pomocných tabulek
- Využili jsme optimalizované DB indexy
- Zrušili jsme nevyužívané DB indexy
- Byly provedeny optimalizace ve vložených procedurách databáze (stored procedure)
- Snížili jsme počet kroků u vícekrokových procesů
- U procesů, u kterých to bylo možné, byla zavedena paralelizace procesů a tím zkrácen celkový čas
Nové kontrolní mechanismy
- Zavedeno porovnání specifických dat s předchozím dnem (provize, klienti, smlouvy)
- Doplnění stavů v jednotlivých částech, na které je navázán start dalších částí zpracování
Pokud při ETL končí jeden z procesů definovanou chybou, pak se ETL opakovaně pokouší dokončit danou část (např. při výpadku konektivity atd.). Toto je omezeno počtem pokusů a dobou přes kterou nesmí proces danou část přesáhnout.
Náročnost pro klienta
- Předání původní transformace dat (ETL)
- Odsouhlasení porovnání výstupů
Klíčové přínosy očima klienta
- Výrazné zrychlení poskytnutí dat spolupracovníkům OVB
- Rychlejší reporting
- Data se objevují v navazujících aplikacích, která využívají transformovaná data, mnohem dříve
- Snížení výpadků při transformaci dat
- Dokumentace provedené transformace
- Následný servis a rychlé řešení provozních záležitostí