Zaplanowane pozyskiwanie danych dla amerykańskiej firmy dostarczającej dane publiczne

Automatyczne pozyskiwanie danych PII od 43 dostawców danych

Klient jest dostawcą danych publicznych dla konsumentów i firm poszukujących informacji o osobach w USA. Jego działalność zależy od regularnych aktualizacji danych pochodzących od 43 publicznych i komercyjnych dostawców.

Klient potrzebował systemu działającego w sposób ciągły, który:

  • Regularnie sprawdza źródła
  • Pobiera nowe dane, gdy tylko się pojawią
  • Rozpakowuje i dekoduje pobrane pliki
  • Ponawia próby w przypadku nieudanego pobierania
  • Uruchamia kolejny etap pipeline’u przetwarzania danych w Airflow DAG

Kluczowe wyzwania w projekcie ingestion danych

Różnorodność źródeł

Nie istniał jeden standardowy schemat wspólny dla wszystkich dostawców. Niektóre źródła umożliwiały bezpośrednie pobieranie plików. Inne wymagały logowania, nawigacji, używania filtrów i wykonania kilku kolejnych czynności, zanim plik stał się dostępny.

Niestabilne dane wejściowe

Pliki mogły:

  • Przestać się pobierać w trakcie procesu
  • Pojawić się później niż oczekiwano
  • Zostać zastąpione pod tą samą nazwą plikiem o innym rozmiarze
  • Pojawiać się w dużych partiach lub jako pojedyncze, duże archiwa

Wolumen i częstotliwość

Niektórzy dostawcy udostępniali jeden duży plik, inni setki plików podczas jednej aktualizacji. Kontrole musiały być wykonywane często, aby nie przeoczyć zmian, nawet jeśli same aktualizacje pojawiały się rzadko.

Ograniczenia systemu legacy

Istniał starszy system ingestion, jednak był zawodny i trudny do rozbudowy. Klient wymagał, aby nowy system działał na jego własnych serwerach.

Masz podobne problemy w swoim projekcie?

Skontaktuj się z nami, aby omówić, jak możemy pomóc Ci wyeliminować wąskie gardła i osiągnąć maksymalną wydajność systemu.

Nasze rozwiązanie do automatyzacji ingestion danych

Modernizacja starszego systemu ingestion danych do postaci konteneryzowanych mikroserwisów

Przebudowaliśmy starszy system ingestion jako konteneryzowane rozwiązanie oparte na mikroserwisach. Dzięki temu każde źródło korzysta z własnego workflow i nie wpływa na pozostałe. Po wstępnym przetworzeniu pliku system uruchamia Airflow DAG w celu dalszego przetwarzania danych.

System obsługuje:

  • Bezpośrednie pobieranie z S3 i Google Drive
  • Portale wymagające uwierzytelnienia
  • Dynamiczne wykrywanie linków
  • Generowanie plików na podstawie wyszukiwania
  • Pliki dostarczane przez dostawców bezpośrednio do przestrzeni dyskowej klienta
Automatyczna ciągła weryfikacja endpointów

Dla każdego źródła system:

  • Sprawdza endpointy zgodnie z harmonogramem
  • Porównuje dostępne pliki z tymi, które zostały już pobrane
  • Weryfikuje nazwy i rozmiary plików
  • Wykrywa zastąpione lub uszkodzone pliki
  • Ponownie pobiera pliki po wykryciu zmian

Rozmiary plików wynosiły od kilku kilobajtów do setek megabajtów. Niektóre cykle aktualizacji obejmowały setki plików.

Obsługa błędów podczas ingestion danych

System został zaprojektowany z założeniem, że błędy mogą występować i muszą być automatycznie obsługiwane.

  • Każde zadanie dopuszcza ograniczoną liczbę nieudanych pobrań plików
  • Częściowe błędy nie powodują niepowodzenia całego zadania
  • Brakujące pliki są automatycznie pobierane ponownie podczas kolejnych uruchomień
  • Tylko przypadki niemożliwe do odzyskania są oznaczane jako nieudane zadania
Dashboard do monitorowania zadań ingestion danych

Za pomocą dashboardu klient może śledzić wykonywanie zadań, pobieranie plików, ich wstępne przetwarzanie i inne etapy procesu.

Alerty są uruchamiane, gdy:

  • Oczekiwane dane nie pojawiają się
  • Zadania kończą się błędem lub przekraczają limit czasu
  • System zbliża się do limitów przestrzeni dyskowej

Kluczowe rezultaty projektu ingestion danych

System działa w środowisku produkcyjnym od 2022 roku i pracuje nieprzerwanie przy minimalnej ingerencji ręcznej.

Pipeline obsługuje duże wolumeny plików i ogromną liczbę rekordów, zachowując integralność danych dzięki ciągłej weryfikacji oraz ponownemu pobieraniu plików, gdy zostaną zmienione lub zastąpione.

  • 6 409 zadań ingestion wykonanych w ciągu 12 miesięcy
  • 6 całkowicie nieudanych zadań (≈ 0,09% współczynnika awarii)
  • 6 360 sprawdzeń endpointów w ciągu jednego miesiąca
  • 266 uruchomień z pobieraniem nowych danych miesięcznie
  • 6 596 rozpakowanych plików i 28 514 przetworzonych plików miesięcznie
  • ~3,1 miliarda rekordów załadowanych w ciągu jednego miesiąca
Rezultaty projektu automatyzacji ingestion danych

Skontaktuj się z nami

support@nannostech.com
+48889712077