
Mateusz Wujec
Big Data Engineer
Zgodnie z popularnym powiedzeniem "garbage in, garbage out" – każdy model ML lub raportowanie BI, które korzysta z danych niskiej jakości, będzie generować niewłaściwe wyniki. Z kolei te prowadzą do błędnych decyzji biznesowych.
W dzisiejszym świecie opartym na danych, niezawodność danych jest ważniejsza niż kiedykolwiek wcześniej. Uczenie maszynowe, modele LLM oraz podejmowanie decyzji opartych na danych, wspierane przez rozwiązania Business Intelligence – wszystkie mają jeden wspólny warunek, który jest bardzo często pomijany – dobra jakość danych. Żadne z powyższych rozwiązań nie umożliwi użytkownikom wykorzystania nowoczesnych technologii, jeśli dane, na których się opierają, są niedokładne, częściowo brakujące lub niewłaściwie traktowane.
Zgodnie z popularnym powiedzeniem " garbage in, garbage out", każdy model ML lub raportowanie BI, które korzysta z danych niskiej jakości, będzie generować niewłaściwe wyniki. Z kolei te prowadzą do błędnych decyzji biznesowych. Zespół Compliance Reporting zdaje sobie sprawę, jak ważna jest jakość danych, z którymi pracujemy na co dzień. Dlatego zdecydowaliśmy się wprowadzić zestaw wskaźników jakości danych oraz procesów, które pozwolą nam zrozumieć ich stan, obserwować go w czasie oraz podejmować niezbędne działania w celu poprawy jakości danych.
W tym artykule opiszę ostatnie miesiące naszej pracy, wyjaśnię, jak działają nasze rozwiązania i przedstawię nasze plany na przyszłość. Wszystkie nasze postępy zostały oparte na platformie APEX, dlatego zaprezentuję metodologię i komponenty, które wykorzystaliśmy. Może to być interesujące dla innych zespołów, które planują wdrożyć podobne rozwiązania wkrótce.
Aktualny stan monitorowania jakości danych w zespole raportowania zgodności obejmuje:
Ponieważ pracujemy z danymi z różnych Unitów, w różnych krajach, gdzie wiele procesów nadal jest realizowanych ręcznie, opóźnienia w dostarczaniu danych są jednym z najczęstszych problemów. Ponieważ interesariusze polegają na produktach danych dostarczanych przez nasz zespół, musimy być świadomi wszelkich opóźnień w dostępności. Aby być zawsze poinformowanym, zaimplementowaliśmy zestaw alertów na platformie Databricks, które sprawdzają datę ostatniego przesyłu danych dla głównych zbiorów, które importujemy. Alerty w Databricks okazały się bardzo przydatnym narzędziem do wykorzystania w takich rozwiązaniach.
Pomysł stojący za alertami jest prosty – to zasadniczo zapytanie SQL, które ma zwrócić jedną wartość, pełniącą funkcję wskaźnika. Ustawiany jest próg konfiguracyjny i za każdym razem, gdy wynik nie spełnia tego progu, alert zmienia swój stan na TRIGGERED i wysyła powiadomienia do wszystkich osób odpowiedzialnych za dostarczanie danych. Alerty te mogą być uruchamiane cyklicznie – codziennie, raz w tygodniu, co 15 minut itp. W przypadku zespołu Compliance Reporting są one sterowane przez Workflow w Databricks, który uruchamia się po zakończeniu wszystkich procesów pobierania danych. Alerty dotyczące danych źródłowych działają w ten sam sposób, co alerty przesyłu danych. Jednak w tym przypadku interesuje nas nie data przesłania, a data biznesowa, która powinna być dostarczana codziennie. Podobnie alertujemy, jeśli różnica dni pomiędzy dniem procesowania a ostatnią datą biznesowa przekroczy liczbę ustaloną z interesariuszami.
Powyższe rozwiązania zapewniają, że nasz zespół jest zawsze powiadamiany, gdy dane są opóźnione lub ich zakres jest niezadowalający. Jednak taki system alertów nie jest wystarczający. Często dane mogą być zduplikowane lub niekompletne. W takich przypadkach nasz zespół uruchomił projekt Data Quality Checks – projekt, który ma na celu okresowe skanowanie tabel, które utrzymujemy, i generowanie metadanych ze szczegółami na temat liczby załadowanych rekordów, liczby unikalnych wartości, dat ostatnich zdarzeń oraz opóźnień – wszystko podzielone na Hub i Unit, aby było bardziej czytelne. Proces ten wykonywany jest raz w tygodniu i skanuje z góry określoną listę tabel, przygotowując dane statystyczne w dwóch tabelach prezentujących wszystkie interesujące fakty. Dzięki temu możemy analizować historyczne dane dostarczania, uzyskać wgląd w problematyczne obszary danych i zidentyfikować jednostki, które dostarczają dane o mniejszej jakości.
This process is performed weekly, scanning a predefined list of tables and preparing statistical data in two tables that present all the relevant facts. This allows us to analyze historical data delivery, gain insights into problematic data areas, and identify units that deliver lower-quality data.
Data Quality Checks to workflow w Databricks, który składa się z dwóch etapów – przygotowanie metadanych dla Core Banking Systems oraz danych Swift. Kod jest zapakowany w paczkę Pythonową do ponownego użycia wraz z procesem CI/CD.
Naszym najnowszym osiągnięciem w dziedzinie jakości danych jest ambitne zadanie oceny aktualnego stanu jakości danych w sposób holistyczny. Ponieważ przechodzimy na platformę Neuron, a pobieranie danych w czasie rzeczywistym już ma miejsce, potrzeba kompletności i dokładności danych rośnie. Dlatego tworzymy proces, który będzie analizował całą historię danych i tworzył pełny obraz, który pozwoli nam zobaczyć trendy w jakości danych.
Zajmujemy się również metadanymi na poziomie kolumn – liczba wartości, liczba nulli, średnie i odchylenia – wszystko to w celu testowania statystycznego. Obecnie proces jest w początkowej fazie, z określonym zakresem danych i częścią wskaźników zaimplementowanych. Dodatkowo planujemy zidentyfikować anomalie w wartościach danych, przeprowadzić analizę statystyczną trendów, stworzyć grupowanie, a w przyszłości wprowadzić zasady na poziomie kolumn dotyczące dozwolonych wartości. Wszystko to zostanie zaprezentowane w raporcie, który umożliwi nam przeprowadzenie benchmarkingu, zidentyfikowanie problematycznych zestawów danych i stanowić punkt wyjścia do rozmów na temat poprawy jakości danych.
Jakość danych to skomplikowany temat, z którym zmaga się wiele firm. Wymaga dużej wiedzy biznesowej, zaangażowania i pracy. Jednak odpowiednia opieka nad jakością danych zapewnia dokładność raportowania i modeli uczenia maszynowego, które stają się coraz ważniejsze w dzisiejszych czasach.
Big Data Engineer