Wysokowydajny pipeline ETL dla danych o wyborcach i zmianach adresu w USA
Klient to amerykańska firma zajmująca się analizą tożsamości, która agreguje duże ilości danych publicznych na potrzeby zastosowań biznesowych. Jej platforma przetwarzała już ogromne zbiory danych, jednak kilka wartościowych źródeł danych o wyborcach i zmianach adresu nie było częścią głównego pipeline’u.
Celem klienta było włączenie tych zbiorów danych do głównego pipeline’u.
Oczekiwania klienta:
- Zintegrować dane o wyborcach i zmianach adresu z 5 zewnętrznych źródeł z istniejącym pipeline’em
- Przetworzyć i ustandaryzować miliardy rekordów o niespójnych formatach
- Wyeliminować zduplikowane i sprzeczne rekordy pochodzące z różnych źródeł
- Zbudować niezawodny backend wyszukiwania zdolny do obsługi ogromnych wolumenów danych
Dlaczego ten projekt był wymagający
Ogromny wolumen danych
Projekt wymagał przetworzenia ponad 4 miliardów rekordów zebranych z wielu zewnętrznych baz danych. W tamtym czasie dostępna infrastruktura miała ścisłe ograniczenia dotyczące pamięci, przestrzeni dyskowej i mocy obliczeniowej, przez co operacje na dużą skalę były powolne, podatne na awarie i kosztowne.
Rozproszone źródła
Dane pochodziły z pięciu źródeł, z których każde miało własną strukturę, nazewnictwo pól, logikę aktualizacji i problemy z jakością danych. Te same osoby występowały w wielu zbiorach danych, często ze sprzecznymi lub częściowo pokrywającymi się atrybutami.
Niedojrzałe narzędzia
Projekt powstał w czasie, gdy narzędzia Big Data i frameworki do przetwarzania rozproszonego były jeszcze na wczesnym etapie rozwoju. Wiele procesów, które obecnie są zautomatyzowane, wymagało wtedy indywidualnych rozwiązań inżynieryjnych, ręcznej optymalizacji i starannej orkiestracji, aby działały stabilnie.
Ograniczenia infrastruktury
Sprzęt był kosztowny i miał ograniczone możliwości. Skalowanie poprzez zwykłe dodawanie kolejnych zasobów nie było możliwe, dlatego system należało zaprojektować tak, aby maksymalnie wykorzystywał ograniczoną przestrzeń dyskową, pamięć i moc obliczeniową bez utraty niezawodności.
Co dostarczyliśmy
Rozwiązanie zaprojektowano jako wieloetapowy pipeline danych oddzielający pozyskiwanie, przetwarzanie i wyszukiwanie. Dane przepływały ze źródeł zewnętrznych przez kontrolowaną warstwę ETL, gdzie były standaryzowane i walidowane, a następnie indeksowane w scentralizowanym backendzie wyszukiwania.
Każdy etap został odizolowany, aby ograniczyć skutki awarii i umożliwić częściowe ponowne przetwarzanie danych w razie potrzeby.
Dane były pozyskiwane z pięciu niezależnych źródeł danych o wyborcach i zmianach adresu, z których każde korzystało z innych formatów, schematów i logiki aktualizacji. Podczas procesu ingestion rekordy były parsowane.
Imiona i nazwiska, adresy oraz podstawowe atrybuty tożsamości zostały ustandaryzowane przed dalszym przetwarzaniem, aby zapewnić spójność pomiędzy źródłami.
Przed indeksowaniem system wykorzystywał entity resolution do wykrywania nakładających się rekordów reprezentujących tę samą osobę w różnych zbiorach danych.
Sprzeczne i redundantne wpisy były rozwiązywane, aby zapobiec sztucznemu zwiększaniu liczby danych oraz niespójnym wynikom wyszukiwania. Do warstwy wyszukiwania opartej na SOLR trafiały wyłącznie oczyszczone i zweryfikowane rekordy.
System powstał przy ścisłych ograniczeniach infrastruktury. Sprzęt był kosztowny, pamięć ograniczona, a narzędzia do rozproszonego przetwarzania danych wciąż się rozwijały.
Ponieważ skalowanie poziome nie było prostym rozwiązaniem, architektura opierała się na przetwarzaniu wsadowym, starannym zarządzaniu zasobami i przewidywalnych obciążeniach, stawiając stabilność i integralność danych ponad agresywną optymalizację wydajności.
Stos technologiczny projektu
WPF WCF .NET SQL Server AWS Hadoop SOLR
Rezultaty projektu
Wcześniej odizolowane zbiory danych o wyborcach i zmianach adresu zostały pomyślnie zintegrowane z istniejącym pipeline’em danych i mogły być wykorzystywane na dużą skalę. Klient otrzymał ustandaryzowaną, przeszukiwalną warstwę danych wspierającą wzbogacanie danych tożsamości w ramach swojej platformy.
Najważniejsze rezultaty:
- Zintegrowano pięć zewnętrznych źródeł danych o wyborcach i zmianach adresu z głównym pipeline’em
- Stworzono ujednolicony zbiór danych odpowiedni do wyszukiwania i wzbogacania danych tożsamości na dużą skalę
- Wyeliminowano zduplikowane i sprzeczne rekordy z nakładających się źródeł
- Dostarczono stabilny backend wyszukiwania oparty na SOLR dla kolejnych systemów
- Umożliwiono długoterminowe ponowne wykorzystanie ustandaryzowanych danych bez konieczności ich ponownego przetwarzania