Popularne techniki sprawdzania poprawności danych w Analytics i dlaczego ich potrzebujesz
Opublikowany: 2022-12-19Uwaga edytora: ten artykuł został pierwotnie opublikowany na blogu Iteratively 14 grudnia 2020 r.
Pod koniec dnia analiza danych musi zostać przetestowana, jak każdy inny kod. Jeśli nie zweryfikujesz tego kodu — i danych, które generuje — może to być kosztowne (według Gartnera na przykład 9,7 miliona dolarów rocznie).
Aby uniknąć tego losu, firmy i ich inżynierowie mogą wykorzystać szereg proaktywnych i reaktywnych technik sprawdzania poprawności danych. Zdecydowanie zalecamy to pierwsze, co wyjaśnimy poniżej. Proaktywne podejście do walidacji danych pomoże firmom upewnić się, że posiadane dane są czyste i gotowe do pracy.
Reaktywne i proaktywne techniki sprawdzania poprawności danych: rozwiązuj problemy z danymi, zanim staną się problemem
„Uncja prewencji jest warta funta leczenia”. To stare powiedzenie, które sprawdza się w prawie każdej sytuacji, w tym w technikach sprawdzania poprawności danych do celów analitycznych. Innym sposobem na powiedzenie tego jest to, że lepiej być proaktywnym niż reaktywnym.
Celem każdej weryfikacji danych jest określenie, gdzie dane mogą być niedokładne, niespójne, niekompletne lub nawet ich brakować.
Z definicji reaktywna walidacja danych odbywa się po fakcie i wykorzystuje wykrywanie anomalii do identyfikowania ewentualnych problemów z danymi oraz do łagodzenia objawów błędnych danych. Chociaż te metody są lepsze niż nic, nie rozwiązują podstawowych problemów powodujących złe dane.
Uważamy, że zamiast tego zespoły powinny starać się zastosować proaktywne techniki sprawdzania poprawności danych w swoich analizach, takie jak bezpieczeństwo typów i schematyzacja, aby mieć pewność, że dane, które otrzymują, są dokładne, kompletne i mają oczekiwaną strukturę (a przyszli członkowie zespołu nie mają zmagać się ze złym kodem analitycznym).
Chociaż wybór bardziej wszechstronnego podejścia do walidacji może wydawać się oczywisty, wiele zespołów ostatecznie stosuje reaktywną walidację danych. Może to wynikać z wielu powodów. Często kod analityczny jest późniejszą refleksją dla wielu zespołów niezwiązanych z danymi i dlatego nie został przetestowany.
Niestety często zdarza się również, że dane są przetwarzane bez żadnej weryfikacji. Ponadto słaby kod analityczny zostaje zauważony tylko wtedy, gdy jest naprawdę zły, zwykle kilka tygodni później, gdy ktoś zauważy, że raport jest rażąco błędny lub nawet go nie ma.
Reaktywne techniki sprawdzania poprawności danych mogą wyglądać jak transformacja danych w hurtowni za pomocą narzędzia takiego jak dbt lub Dataform.
Chociaż wszystkie te metody mogą pomóc w rozwiązaniu problemów z danymi (i często przy użyciu obiektywnie świetnych narzędzi), nadal nie pomogą w wyleczeniu podstawowej przyczyny złych danych (np. na podstawie projektu bez komunikacji między zespołami), dzięki czemu będziesz do nich wracać za każdym razem.
Sama reaktywna walidacja danych nie wystarczy; musisz zastosować proaktywne techniki walidacji danych, aby być naprawdę skutecznym i uniknąć wspomnianych wcześniej kosztownych problemów. Dlatego:
- Dane to sport zespołowy. Zapewnienie czystości danych nie zależy tylko od jednego działu lub jednej osoby. Wszyscy muszą współpracować, aby zapewnić wysoką jakość danych i rozwiązywać problemy, zanim się pojawią.
- Walidacja danych powinna być częścią cyklu życia oprogramowania (SDLC). Gdy zintegrujesz go z SDLC i równolegle z istniejącym programowaniem opartym na testach i zautomatyzowanym procesem kontroli jakości (zamiast dodawać go po namyśle), oszczędzasz czas, zapobiegając problemom z danymi, zamiast rozwiązywać je później.
- Proaktywne sprawdzanie poprawności danych można zintegrować z istniejącymi narzędziami i potokami CI/CD. Jest to łatwe dla zespołów programistów, ponieważ już zainwestowały w automatyzację testów i mogą teraz szybko ją rozszerzyć, aby dodać również pokrycie do analiz.
- Proaktywne testowanie poprawności danych to jeden z najlepszych sposobów wydajnego działania szybko poruszających się zespołów. Zapewnia im to szybką iterację i uniknięcie dryfowania danych i innych dalszych problemów.
- Proaktywne sprawdzanie poprawności danych daje Ci pewność, że możesz zmieniać i aktualizować kod w razie potrzeby, jednocześnie minimalizując liczbę błędów, które będziesz musiał później usunąć. Ten proaktywny proces zapewnia, że Ty i Twój zespół zmieniacie tylko kod, który jest bezpośrednio powiązany z danymi, którymi się zajmujecie.
Teraz, gdy ustaliliśmy, dlaczego proaktywne sprawdzanie poprawności danych jest ważne, następne pytanie brzmi: jak to robisz? Jakie narzędzia i metody stosują zespoły, aby upewnić się, że ich dane są dobre, zanim pojawią się problemy?
Zanurzmy się.
Metody walidacji danych
Walidacja danych to nie tylko jeden krok, który odbywa się w określonym momencie. Może się to zdarzyć w wielu punktach cyklu życia danych — u klienta, na serwerze, w potoku lub w samej hurtowni.
W rzeczywistości jest bardzo podobny do testowania oprogramowania na wiele sposobów. Jest jednak jedna zasadnicza różnica. Nie testujesz samych wyjść; potwierdzasz również, że wprowadzone przez Ciebie dane są prawidłowe.
Przyjrzyjmy się, jak wygląda sprawdzanie poprawności danych w każdej lokalizacji, sprawdzając, które są reaktywne, a które proaktywne.
Techniki walidacji danych w kliencie
Możesz użyć narzędzi, takich jak Amplitude Data, aby wykorzystać bezpieczeństwo typów, testy jednostkowe i linting (statyczna analiza kodu) do sprawdzania poprawności danych po stronie klienta.
Teraz jest to świetny punkt wyjścia, ale ważne jest, aby zrozumieć, jakiego rodzaju testowanie tego rodzaju narzędzia umożliwia przeprowadzanie na tej warstwie. Oto zestawienie:
- Bezpieczeństwo typów polega na tym, że kompilator sprawdza poprawność typów danych i instrukcji implementacji u źródła, zapobiegając błędom na dalszych etapach z powodu literówek lub nieoczekiwanych zmiennych.
- Testy jednostkowe polegają na testowaniu określonego fragmentu kodu w izolacji. Niestety, większość zespołów nie integruje analiz w swoich testach jednostkowych, jeśli chodzi o walidację ich analiz.
- Testy A/B polegają na testowaniu przepływu analiz w oparciu o zestaw danych ze złotego stanu (wersję analiz, o której wiesz, że była doskonała) lub kopię danych produkcyjnych. Pomoże Ci to ustalić, czy wprowadzane zmiany są dobre i czy stanowią poprawę w stosunku do istniejącej sytuacji.
Techniki sprawdzania poprawności danych w potoku
Walidacja danych w potoku polega na upewnieniu się, że dane wysyłane przez klienta są zgodne z formatem danych w Twojej hurtowni. Jeśli te dwie osoby nie znajdują się na tej samej stronie, konsumenci danych (menedżerowie produktów, analitycy danych itp.) nie uzyskają przydatnych informacji po drugiej stronie.
Metody sprawdzania poprawności danych w potoku mogą wyglądać tak:
- Walidacja schematu , aby upewnić się, że śledzenie zdarzeń jest zgodne z tym, co zostało zdefiniowane w rejestrze schematów.
- Integracja i testowanie komponentów za pomocą relacyjnych, unikalnych i zastępczych kluczowych testów użyteczności w narzędziu takim jak dbt, aby upewnić się, że śledzenie między platformami działa dobrze.
- Testowanie świeżości za pomocą narzędzia takiego jak dbt w celu określenia, jak „świeże” są dane źródłowe (inaczej jak aktualne i zdrowe).
- Testy dystrybucyjne za pomocą narzędzia takiego jak Great Expectations, aby otrzymywać alerty, gdy zestawy danych lub próbki nie pasują do oczekiwanych danych wejściowych i upewnić się, że zmiany wprowadzone w śledzeniu nie zakłócają istniejących strumieni danych.
Techniki walidacji danych w hurtowni
Możesz użyć testowania dbt, testowania Dataform i Great Expectations, aby upewnić się, że dane wysyłane do Twojej hurtowni są zgodne z konwencjami, których oczekujesz i potrzebujesz. W tej warstwie można również przeprowadzać przekształcenia, w tym sprawdzanie typów i zabezpieczanie typów w ramach tych przekształceń, ale nie zalecamy tej metody jako podstawowej techniki sprawdzania poprawności, ponieważ jest ona reaktywna.
W tym momencie metody walidacji dostępne dla zespołów obejmują sprawdzenie, czy dane są zgodne z określonymi konwencjami, a następnie przekształcenie ich w celu ich dopasowania. Zespoły mogą również używać testów relacji i świeżości z dbt, a także testowania wartości/zakresu za pomocą Great Expectations.
Cała funkcjonalność tego narzędzia sprowadza się do kilku kluczowych technik sprawdzania poprawności danych w tej warstwie:
- Schematyzacja , aby upewnić się, że dane i transformacje CRUD są zgodne z ustalonymi konwencjami.
- Testy bezpieczeństwa w celu zapewnienia zgodności danych z wymogami bezpieczeństwa, takimi jak RODO.
- Testowanie relacji w narzędziach takich jak dbt, aby upewnić się, że pola w jednym modelu są mapowane na pola w danej tabeli (inaczej integralność referencyjna).
- Testy świeżości i dystrybucji (jak wspomnieliśmy w sekcji dotyczącej rurociągów).
- Sprawdzanie zakresu i typu , które potwierdza, że dane wysyłane od klienta mieszczą się w oczekiwanym zakresie lub formacie hurtowni.
Doskonały przykład wielu z tych testów w działaniu można znaleźć, zagłębiając się w silnik odkrywania i metadanych Lyft, Amundsen. To narzędzie pozwala konsumentom danych w firmie przeszukiwać metadane użytkowników, aby zwiększyć zarówno ich użyteczność, jak i bezpieczeństwo. Główną metodą firmy Lyft zapewniającą jakość i użyteczność danych jest rodzaj wersjonowania poprzez oczyszczające graf zadanie Airflow, które usuwa stare, zduplikowane dane, gdy nowe dane są dodawane do ich magazynu.
Dlaczego teraz jest czas na zastosowanie lepszych technik sprawdzania poprawności danych
W przeszłości zespoły ds. danych miały problemy z weryfikacją danych, ponieważ ich organizacje nie zdawały sobie sprawy ze znaczenia higieny danych i zarządzania nimi. To już nie jest świat, w którym żyjemy.
Firmy zdały sobie sprawę, że jakość danych ma kluczowe znaczenie. Samo czyszczenie złych danych w sposób reaktywny nie jest wystarczająco dobre. Zatrudnianie zespołów inżynierów danych do czyszczenia danych poprzez transformację lub pisanie niekończących się zapytań SQL to niepotrzebne i nieefektywne wykorzystanie czasu i pieniędzy.
Kiedyś akceptowalne było posiadanie danych, które są dokładne w 80% (dać lub brać, w zależności od przypadku użycia), pozostawiając 20% margines błędu. Może to wystarczyć do prostej analizy, ale nie wystarczy do napędzania silnika rekomendacji produktów, wykrywania anomalii lub podejmowania krytycznych decyzji biznesowych lub produktowych.
Firmy zatrudniają inżynierów do tworzenia produktów i wykonywania świetnej pracy. Jeśli muszą spędzać czas na zajmowaniu się złymi danymi, nie wykorzystują go w pełni. Ale walidacja danych daje im ten czas, aby mogli skupić się na tym, co robią najlepiej: tworzeniu wartości dla organizacji.
Dobra wiadomość jest taka, że wysokiej jakości dane są w zasięgu ręki. Aby to osiągnąć, firmy muszą pomóc wszystkim zrozumieć jego wartość, przełamując silosy między producentami danych a odbiorcami danych. Następnie firmy powinny wyrzucić arkusze kalkulacyjne i zastosować lepsze praktyki inżynierskie do swoich analiz, takie jak wersjonowanie i schematyzacja. Na koniec powinni upewnić się, że w całej organizacji przestrzegane są najlepsze praktyki dotyczące danych, z planem śledzenia i zarządzania danymi.
Zainwestuj w proaktywną weryfikację analityczną, aby czerpać zyski z danych
W dzisiejszym świecie reaktywne, niejawne narzędzia i metody sprawdzania poprawności danych już po prostu nie wystarczają. Kosztują czas, pieniądze i, co być może najważniejsze, zaufanie.
Aby uniknąć tego losu, przyjmij filozofię proaktywności. Identyfikuj problemy, zanim staną się one kosztownymi problemami, weryfikując dane analityczne od samego początku i przez cały cykl życia oprogramowania.