Nasz klient z branży technologicznej, zmagał się z wyzwaniem zarządzania rosnącą ilością danych i koniecznością optymalizacji procesów analitycznych. Firma intensywnie korzystała z danych, napędzając swoje działania marketingowe, operacyjne i produktowe. Celem projektu była modernizacja modelu konsumpcji danych oraz dostosowanie jej do potrzeb rosnącej organizacji.
Zakres prac
Współpraca obejmowała kompleksową migrację i refaktoryzację niezarządzalnych, nieuporządkowanych procesów danych, które przez lata rosły swobodnie i przekształciły się w dług technologiczny, wymagający pilnych zmian, do nowoczesnego środowiska DBT (Data Build Tool) core. Kluczowe etapy projektu obejmowały:
Analiza istniejącego modelu konsumpcji danych:
Nasz zespół analityków przeprowadził mapowanie wszystkich istniejących procesów transformacji danych, identyfikując kluczowe obszary wymagające optymalizacji w istniejących modelach. Analizy wykazały, że dotychczasowy model opóźniał czas odświeżania, generował niespójności w wynikach oraz nie pozwalał na dynamiczne skalowanie infrastruktury w odpowiedzi na rosnące potrzeby biznesowe procesów transformacji danych, identyfikując kluczowe punkty zapalne, takie jak wolne odświeżanie danych oraz brak standaryzacji w kodzie SQL.
Zespół dokonał przeglądu około 20 projektów danych, obejmujących różnorodne źródła, takie jak systemy monitorowania użytkowników, narzędzia marketingowe oraz dane finansowe.
Migracja procesów danych do DBT:
Przenieśliśmy istniejące procedury SQL (BigQuery Routines) do DBT core, wzbogacając sugerowany model danych w DBT (modele stagingowe, intermediate i marty) o modele core zawierające kluczowe wymiary i wskaźniki, wykorzystywane później w większości martów. Marty zostały zaprojektowane w taki sposób, aby były efektywne kosztowo i zaspokajały potrzeby raportowe klienta.
Opracowaliśmy uniwersalne makra, które zastąpiły powtarzalny kod SQL. Dzięki temu zwiększono spójność procesów oraz uproszczono zarządzanie i wprowadzanie zmian.
Nasi eksperci przeprojektowali proces predykcji w taki sposób, aby ujednolicić i uprościć proces przy wykorzystaniu makr.
Optymalizacja wydajności:
Wdrożyliśmy partycjonowanie i klastrowanie w istniejących procedurach BigQuery jeszcze przed zakończeniem migracji, aby możliwie szybko wprowadzić optymalizacje. Dzięki czemu mogliśmy znacząco zmniejszyć bieżące koszty przetwarzania danych jeszcze przed zakończeniem projektu migracyjnego.
W nowym podejściu, wykorzystującym modele DBT, również zastosowano partycjonowanie i klastrowanie. Zmiany te w połączeniu z nowym, zoptymalizowanym przepływem danych czterokrotnie zmniejszyły czas odświeżania i zapewniły, że wraz ze wzrostem wolumenu danych koszty przetwarzania nie rosną liniowo, lecz pozostają optymalnie zarządzane dzięki skalowalności wprowadzonego rozwiązania.
Wprowadzono zmiany w strukturze danych, w tym kolumn typu STRUCT na zapis JSON, co obniżyło koszty przetwarzania tej tabeli względem alternatywnego rozwiązania prawie o 30%, a czas jej utworzenia był krótszy o 85%.
Orkiestracja procesów:
Nasz zespół wdrożył Airflow do zarządzania harmonogramem odświeżania danych, co pozwoliło na bardziej precyzyjne planowanie zadań i dynamiczne dostosowanie do zmieniających się wymagań.
Dzięki zastosowaniu DAG-ów (Directed Acyclic Graphs) zbudowanych z myślą o współdzielonych zależnościach, procesy mogły być realizowane wielowątkowo, co znacząco skróciło czas przetwarzania danych i wyeliminowało konieczność manualnych interwencji. W połączeniu z zaawansowanymi powiadomieniami o błędach, Airflow pozwolił zespołowi skupić się na strategicznych działaniach, zamiast na rutynowym monitorowaniu procesów.
CI/CD zostało zintegrowane w Google Cloud Build, co usprawniło kontrolę wersji i przyspieszyło wdrażanie zmian. Dzięki tej integracji proces wdrażania nowego kodu oraz synchronizacji między zespołami stał się szybszy i bardziej przejrzysty, eliminując opóźnienia wynikające z manualnych procesów i minimalizując ryzyko konfliktów w kodzie.
Walidacja i czyszczenie danych:
Zastosowano testy w DBT, aby automatycznie kontrolować poprawność danych na różnych etapach przetwarzania, na przykład nieunikatowe klucze, czy nieoczekiwane braki w wartościach lub nagły spadek kluczowego wskaźnika. Pozwoliło to na proaktywne podejście w znajdowaniu błędów w danych i informowaniu biznesu o potencjalnych problemach.
Inżynierowie opracowali mechanizmy korekty danych historycznych, eliminując błędy w źródłach danych z możliwością dokumentacji, z czego wynikała dana potrzeba.
Raportowanie i wizualizacja:
Dzięki zaprojektowaniu nowych data martów, dashboardy działają szybciej i konsumują mniej danych.
Wartość dla klienta
Kluczowe wyniki:
- Skrócenie czasu odświeżania danych z około 8 godzin do 2 godzin.
- Redukcja kosztów utrzymania infrastruktury danych o około 60%, dzięki optymalizacjom w BigQuery.
- Nowe procesy umożliwiły szybszą realizację powtarzalnych zadań dzięki standaryzacji kodu i lepszej organizacji danych, co znacząco przyspieszyło integrację nowych źródeł informacji oraz usprawniło operacyjność zespołów.
- Zmniejszenie ryzyka błędów manualnych dzięki automatyzacji i testom jakości danych.
Wartość biznesowa:
- Zwiększona efektywność operacyjna zespołów analitycznych, marketingowych i produktowych.
- Lepsza skalowalność infrastruktury danych, umożliwiająca dalszy rozwój organizacji.
- Zarządzanie kosztami operacyjnymi, co wspiera strategiczne decyzje inwestycyjne.
- Możliwość szybszego wdrażania nowych pracowników do projektów BI oraz samodzielność zaawansowanych użytkowników w korzystaniu z narzędzi BI.
Podsumowanie
Projekt migracji i optymalizacji danych dla anonimowego klienta z branży technologicznej to przykład kompleksowego podejścia do modernizacji modelu konsumpcji danych. Dzięki wprowadzeniu DBT, Airflow i CI/CD firma osiągnęła znaczącą poprawę wydajności i zarządzalności procesów danych, co jednocześnie wyeliminowało dług technologiczny i znacząco zredukowało barierę wejścia dla nowych analityków.
Dzięki temu zaawansowani użytkownicy BI mogą teraz skuteczniej korzystać z narzędzi i realizować self-service. Ten projekt pokazuje, jak właściwe zarządzanie danymi może przynieść wymierne korzyści zarówno na poziomie operacyjnym, jak i strategicznym.