Sådan søger du data hurtigt og nemt med Whale

Sådan søger du data hurtigt og nemt med Whale
Denne artikel taler om det enkleste og hurtigste dataopdagelsesværktøj, hvis arbejde du ser på KDPV. Interessant nok er whale designet til at blive hostet på en ekstern git-server. Detaljer under snittet.

Hvordan Airbnbs dataopdagelsesværktøj ændrede mit liv

I min karriere har jeg været så heldig at arbejde med nogle sjove problemer: Jeg studerede flow-matematik, mens jeg tog min grad på MIT, arbejdede på inkrementelle modeller og med et open source-projekt pylift hos Wayfair, og implementerede nye hjemmesidemålretningsmodeller og CUPED-forbedringer hos Airbnb. Men alt dette arbejde var aldrig glamourøst – faktisk brugte jeg ofte det meste af min tid på at søge, undersøge og validere data. Selvom dette var en konstant tilstand på arbejdet, faldt det ikke ind for mig, at dette var et problem, før jeg kom til Airbnb, hvor det blev løst med et dataopdagelsesværktøj − dataportal.

Hvor kan jeg finde {{data}}? dataportal.
Hvad betyder denne kolonne? dataportal.
Hvordan har {{metrisk}} det i dag? dataportal.
Hvad er en følelse af liv? I dataportal, sandsynligvis.

Okay, du har præsenteret billedet. At finde data og forstå, hvad det betyder, hvordan det blev oprettet, og hvordan man bruger det hele tager kun et par minutter, ikke timer. Jeg kunne bruge min tid på at drage enkle konklusioner eller nye algoritmer (... eller besvare tilfældige spørgsmål om dataene), i stedet for at grave gennem noter, skrive gentagne SQL-forespørgsler og nævne kolleger på Slack for at prøve at genskabe kontekst. som en anden allerede havde.

Hvad er problemet?

Jeg indså, at de fleste af mine venner ikke havde adgang til sådan et værktøj. Få virksomheder er villige til at bruge enorme ressourcer på at bygge og vedligeholde et platformsværktøj som Dataportal. Og selvom der er nogle få open source-løsninger, har de en tendens til at være designet til at skalere, hvilket gør det vanskeligt at konfigurere og vedligeholde uden en dedikeret DevOps-ingeniør. Så jeg besluttede at skabe noget nyt.

Whale: Et dumt simpelt dataopdagelsesværktøj

Sådan søger du data hurtigt og nemt med Whale

Og ja, med dumt simpelt mener jeg dumt simpelt. Hvalen har kun to komponenter:

  1. Et Python-bibliotek, der indsamler metadata og formaterer dem i MarkDown.
  2. Rust kommandolinjegrænseflade til at søge gennem disse data.

Set fra den interne infrastruktur til vedligeholdelse er der kun en masse tekstfiler og et program, der opdaterer teksten. Det er det, så hosting på en git-server som Github er trivielt. Intet nyt forespørgselssprog at lære, ingen administrationsinfrastruktur, ingen sikkerhedskopier. Alle kender Git, så synkronisering og samarbejde er gratis. Lad os se nærmere på funktionaliteten Whale v1.0.

Fuldt udstyret git-baseret GUI

Whale er designet til at svømme i havet på en ekstern git-server. Han meget let konfigurerbar: definer nogle forbindelser, kopier Github Actions-scriptet (eller skriv et til din valgte CI/CD-platform), og du vil have et dataopdagelseswebværktøj med det samme. Du vil være i stand til at søge, se, dokumentere og dele dine regneark direkte på Github.

Sådan søger du data hurtigt og nemt med Whale
Et eksempel på en stub-tabel genereret ved hjælp af Github Actions. Fuld fungerende demo se i dette afsnit.

Lynhurtig CLI-søgning efter dit depot

Whale lever og ånder på kommandolinjen, hvilket giver kraftfulde millisekunders opslag på tværs af dine borde. Selv med millioner af borde lykkedes det os at gøre hval utroligt performant ved at bruge nogle smarte caching-mekanismer og også ved at genopbygge backend i Rust. Du vil ikke bemærke nogen søgeforsinkelse [hej Google DS].

Sådan søger du data hurtigt og nemt med Whale
Whale demo, million tabel opslag.

Automatisk beregning af metrics [i beta]

En af mine mindst foretrukne ting som dataforsker er at køre de samme forespørgsler igen og igen bare for at kontrollere kvaliteten af ​​de data, der bruges. Whale understøtter muligheden for at definere metrics i almindelig SQL, der vil blive planlagt til at køre sammen med dine metadata-oprydningspipelines. Definer en YAML-metrikblok inde i stub-tabellen, og Whale vil automatisk køre efter en tidsplan og køre forespørgsler indlejret i metrics.

```metrics
metric-name:
  sql: |
    select count(*) from table
```

Sådan søger du data hurtigt og nemt med Whale
Kombineret med Github betyder denne tilgang, at hval kan tjene som en nem central kilde til sandhed for metriske definitioner. Whale gemmer endda værdierne sammen med tidsstemplet i "~/. whale/metrics", hvis du ønsker at lave nogle kortlægninger eller mere dybdegående research.

fremtiden

Efter at have talt med brugere af vores pre-release versioner af hval, indså vi, at folk havde brug for mere funktionalitet. Hvorfor et tabelopslagsværktøj? Hvorfor ikke et metric-søgeværktøj? Hvorfor ikke overvåge? Hvorfor ikke et SQL-forespørgselsudførelsesværktøj? Mens whale v1 oprindeligt blev udtænkt som et simpelt CLI-ledsagerværktøj Dataportal/Amundsen, den har allerede udviklet sig til en selvstændig platform med fuld funktioner, og vi håber, at den bliver en integreret del af Data Scientists værktøjskasse.

Hvis der er noget, du vil se i udviklingsprocessen, så vær med til vores til Slack-samfundet, åben numre kl Githubeller endda kontakte direkte LinkedIn. Vi har allerede en række fede funktioner - Jinja-skabeloner, bogmærker, søgefiltre, Slack-advarsler, Jupyter-integration, endda et CLI-dashboard til metrics - men vi ville elske dit input.

Konklusion

Whale er udviklet og vedligeholdt af Dataframe, en startup, som jeg for nylig havde fornøjelsen af ​​at stifte sammen med andre mennesker. Mens hval er lavet til data scientists, er Dataframe lavet til data scientists. For dig, der ønsker at samarbejde tættere, er du velkommen til at adressevi tilføjer dig til ventelisten.

Sådan søger du data hurtigt og nemt med Whale
Og med kampagnekode HABR, kan du få yderligere 10% til rabatten angivet på banneret.

Flere kurser

Udvalgte artikler

Kilde: www.habr.com