W tym materiale opowiedziano o najprostszym i szybkim narzędziu do odkrywania danych, którego działanie można zobaczyć na KDPV. Co ciekawe, whale został stworzony w taki sposób, aby mógł być hostowany na zdalnym serwerze git. Szczegóły poniżej.
Jak narzędzie do odkrywania danych Airbnb zmieniło moje życie
W mojej karierze miałem szczęście pracować nad kilkoma ciekawymi problemami: studiowałem matematykę przepływów podczas uzyskiwania dyplomu na MIT, pracowałem nad modelami inkrementalnymi i projektem z otwartym kodem źródłowym. w Wayfair, a także wprowadzałem nowe modele targetowania na stronie głównej i ulepszenia CUPED w Airbnb. Ale cała ta praca nigdy nie była glamurystyczna — w rzeczywistości często spędzałem większość czasu na wyszukiwaniu, badaniu i weryfikacji danych. Chociaż było to stałym stanem w pracy, nigdy nie przyszło mi do głowy, że to problem, aż nie trafiłem do Airbnb, gdzie został on rozwiązany dzięki narzędziu do odkrywania danych — .
Gdzie mogę znaleźć {{data}}? Dataportal.
Co oznacza ta kolumna? Dataportal.
Jak dzisiaj radzi sobie {{metric}}? Dataportal.
Jaki jest sens życia? W Dataportal, prawdopodobnie.
Dobrze, nakreśliłeś obraz. Znalezienie danych i zrozumienie, co one oznaczają, jak zostały stworzone i jak je wykorzystać — to wszystko zajmuje tylko kilka minut, a nie godzin. Mógłbym spędzać czas na prostych wnioskach lub nowych algorytmach, (… lub odpowiedziach na przypadkowe pytania dotyczące danych), zamiast szukać w notatkach, pisać powtarzające się zapytania SQL i wspominać kolegów na Slacku, aby spróbować odtworzyć kontekst, który już miał ktoś inny.
A w czym problem?
Zrozumiałem, że większość moich przyjaciół nie miała dostępu do takiego narzędzia. Niewiele firm chce przeznaczać ogromne zasoby na stworzenie i utrzymanie takiego narzędzia-platformy jak Dataportal. I chociaż istnieje kilka rozwiązań z otwartym kodem źródłowym, są one generalnie zaprojektowane do skalowania, co komplikuje dostosowanie i konserwację bez dedykowanego inżyniera DevOps. Dlatego postanowiłem stworzyć coś nowego.
Whale: proste do głupoty narzędzie do odkrywania danych

I tak, przez proste do głupoty mam na myśli proste do głupoty. Whale ma tylko dwa komponenty:
- Biblioteka Python zbierająca metadane i formatująca je w MarkDown.
- Interfejs wiersza poleceń w Rust do przeszukiwania tych danych.
Z perspektywy wewnętrznej infrastruktury wsparcia są tylko liczne pliki tekstowe oraz aktualizujący program tekstowy. To wszystko, dlatego umiejscowienie na serwerze git, takim jak Github, jest trywialne. Żadnego nowego języka zapytań, którego należałoby się uczyć, żadnej infrastruktury zarządzania, żadnych kopii zapasowych. Git jest znany wszystkim, więc synchronizacja i współpraca są w pakiecie. Przyjrzyjmy się bliżej funkcjonalności. .
Wielofunkcyjny interfejs graficzny oparty na gicie.
Whale został stworzony, aby pływać w oceanie zdalnego serwera gita. Jest do skonfigurowania: określ kilka połączeń, skopiuj skrypt Github Actions (lub napisz go dla wybranej platformy CI/CD) – i od razu zyskasz webowe narzędzie do odkrywania danych. Będziesz mógł wyszukiwać, przeglądać, dokumentować i dzielić się swoimi tabelami bezpośrednio na Githubie.

Przykład wygenerowanej za pomocą Github Actions tabeli-zastępnika. Pełną działającą demonstrację .
Błyskawiczne wyszukiwanie z CLI w twoim repozytorium.
Whale żyje i działa w wierszu poleceń, zapewniając funkcjonalne, milisekundowe wyszukiwanie w twoich tabelach. Nawet przy milionach tabel udało nam się uczynić whale niesamowicie wydajnym, wykorzystując kilka sprytnych mechanizmów buforowania oraz przepisując backend w Rust. Nie zauważysz opóźnienia w wyszukiwaniu [cześć, Google DS].

Demonstracja whale, wyszukiwanie w milionie tabel.
Automatyczne obliczanie metryk [w beta].
Jedną z moich najmniej ulubionych rzeczy jako naukowca-analityka danych jest uruchamianie tych samych zapytań wciąż i wciąż tylko po to, aby sprawdzić jakość używanych danych. Whale wspiera możliwość definiowania metryk w prostym SQL, które będą wykonywane cyklicznie razem z twoimi konwerterami czyszczenia metadanych. Zdefiniuj blok metryk w formacie YAML w tabeli zastępnika, a Whale automatycznie będzie wykonywał zaplanowane i uruchamiał zapytania z metryk.
```metrics
metric-name:
sql: |
select count(*) from table
``` 
W połączeniu z Github podejście to oznacza, że whale może służyć jako lekki centralny źródło prawdy dla definicji metryk. Whale nawet zapisuje wartości wraz z czasem w katalogu »~/whale/metrics«, jeśli chcesz stworzyć jakiś wykres lub przeprowadzić głębsze badanie.
Przyszłość
Rozmawiając z użytkownikami naszych wersji beta whale, zrozumieliśmy, że ludzie potrzebują szerszej funkcjonalności. Dlaczego akurat narzędzie do wyszukiwania w tabeli? Dlaczego nie narzędzie do wyszukiwania metryk? Dlaczego nie monitorowanie? Dlaczego nie narzędzie do wykonywania zapytań SQL? Chociaż whale v1 początkowo zaprojektowano jako prosty towarzysz CLI, Dataportal/Amundsen, już przekształcił się w w pełni funkcjonalną, autonomiczną platformę i mamy nadzieję, że stanie się nieodłączną częścią zestawu narzędzi Data Scientistów.
Jeśli istnieje coś, co chciałbyś zobaczyć w trakcie rozwoju, dołącz do naszej , otwórz Issues na , albo nawet skontaktuj się bezpośrednio z . Mamy już szereg interesujących funkcji — szablony Jinja, zakładki, filtry wyszukiwania, powiadomienia Slack, integracja z Jupyter, a nawet panel CLI dla metryk — ale czekamy na Twój wkład.
Podsumowanie
Whale jest rozwijany i wspierany przez Dataframe, startup, który miałem przyjemność założyć razem z innymi osobami. Podczas gdy whale jest przeznaczony dla specjalistów ds. przetwarzania danych, Dataframe jest skierowany do zespołów zajmujących się przetwarzaniem danych. Dla tych z was, którzy chcą bliżej współpracować — nie wahaj się , dodamy cię do listy oczekujących.
A z kodem promocyjnym HABR, możesz uzyskać dodatkowe 10% zniżki na zniżkę wskazaną na banerze.
Inne kursy
Rekomendowane artykuły
Źródło: habr.com
