In questo articolo si parla di uno strumento semplice e veloce per la scoperta dei dati, il cui funzionamento è visibile su KDPV. È interessante notare che whale è progettato per essere ospitato su un server git remoto. Maggiori dettagli di seguito.
Come lo strumento di scoperta dei dati di Airbnb ha cambiato la mia vita
Nella mia carriera ho avuto la fortuna di affrontare alcune sfide interessanti: ho studiato la matematica dei flussi mentre conseguivo il mio diploma al MIT, ho lavorato su modelli incrementali e su un progetto open source in Wayfair, oltre a implementare nuovi modelli di targeting sulla homepage e miglioramenti del CUPED in Airbnb. Tuttavia, tutto questo lavoro non è mai stato glamour: in realtà, ho spesso passato gran parte del mio tempo a cercare, esaminare e verificare i dati. Anche se questo era uno stato costante nel mio lavoro, non mi era venuto in mente che fosse un problema finché non sono approdato in Airbnb, dove è stato risolto grazie a uno strumento di scoperta dei dati — .
Dove posso trovare {{data}}? Dataportal.
Cosa significa questa colonna? Dataportal.
Come sta {{metric}} oggi? Dataportal.
Qual è il significato della vita? In Dataportal, probabilmente.
Bene, hai dipinto il quadro. Trovare i dati e comprendere cosa significano, come sono stati creati e come usarli richiede solo pochi minuti, non ore. Potrei dedicare il mio tempo a fare semplici deduzioni o a lavorare su nuovi algoritmi, (… oppure rispondere a domande casuali sui dati), invece di scavare nelle note, scrivere ripetutamente query SQL e menzionare i colleghi su Slack per cercare di ricreare il contesto che qualcun altro aveva già.
E qual è il problema?
Ho capito che la maggior parte dei miei amici non aveva accesso a uno strumento del genere. Poche aziende vogliono investire enormi risorse per creare e mantenere uno strumento-piattaforma come Dataportal. E sebbene ci siano alcune soluzioni open source, di solito sono progettate per la scalabilità, rendendo difficile la personalizzazione e la manutenzione senza un ingegnere DevOps dedicato. Pertanto, ho deciso di creare qualcosa di nuovo.
Whale: uno strumento di scoperta dei dati incredibilmente semplice

E sì, con semplice intendo semplice. Whale ha solo due componenti:
- Una libreria Python che raccoglie metadati e li formatta in MarkDown.
- Un'interfaccia della riga di comando in Rust per la ricerca di questi dati.
In termini di infrastruttura interna per la manutenzione, c'è solo un insieme di file di testo e un programma di aggiornamento. Questo è tutto, quindi l'hosting su un server git, come Github, è banale. Nessun nuovo linguaggio di query da imparare, nessuna infrastruttura di gestione, nessun backup. Git è noto a tutti, quindi la sincronizzazione e la collaborazione sono incluse gratuitamente. Esploriamo più nel dettaglio le funzionalità .
Interfaccia grafica completa basata su git
Whale è progettato per navigare nell'oceano di un server git remoto. È da configurare: definisci alcune connessioni, copia lo script Github Actions (o scrivilo per la piattaforma CI/CD scelta) — e avrai immediatamente uno strumento di scoperta dei dati online. Potrai cercare, visualizzare, documentare e condividere le tue tabelle direttamente su Github.

Esempio di tabella segnaposto generata con Github Actions. Guarda la dimostrazione completa .
Ricerca fulminea dalla CLI nel tuo repository
Whale vive e respira nella riga di comando, fornendo una ricerca funzionale, in millisecondi, tra le tue tabelle. Anche con milioni di tabelle, siamo riusciti a rendere whale incredibilmente performante, utilizzando alcune astute meccaniche di caching e ristrutturando il backend in Rust. Non noterai alcun ritardo nella ricerca [ciao, Google DS].

Dimostrazione di whale, ricerca tra un milione di tabelle.
Calcolo automatico delle metriche [in beta]
Una delle mie meno favorite attività come scienziato di dati è l'esecuzione delle stesse query ripetutamente solo per verificare la qualità dei dati utilizzati. Whale supporta la definizione di metriche in semplice SQL, che saranno eseguite secondo un programma insieme ai tuoi pipeline di pulizia dei metadati. Definisci un blocco metrics in formato YAML all'interno della tabella segnaposto, e Whale verrà eseguito automaticamente secondo pianificazione e avvierà le query annidate nel metrics.
```metrics
metric-name:
sql: |
select count(*) from table
``` 
In combinazione con Github, questo approccio significa che whale può servire come una fonte centrale semplice e affidabile per la definizione delle metriche. Whale conserva persino i valori insieme ai timestamp nel catalogo «~/whale/metrics», se desideri creare un grafico o un'analisi più approfondita.
Futuro
Parlando con gli utenti delle nostre versioni pre-release di whale, abbiamo capito che le persone richiedevano funzionalità più ampie. Perché uno strumento di ricerca tabellare? Perché non uno strumento di ricerca delle metriche? Perché non un monitoraggio? Perché non uno strumento per eseguire query SQL? Anche se whale v1 era originariamente pensato come un semplice strumento CLI companion Dataportal/Amundsen, è già diventato una piattaforma autonoma e multifunzionale, e speriamo che diventi parte integrante dell'arsenale del data scientist.
Se c'è qualcosa che desideri vedere nel processo di sviluppo, unisciti al nostro , apri Issues su , o anche contattaci direttamente su . Abbiamo già una serie di funzioni interessanti – modelli Jinja, segnalibri, filtri di ricerca, notifiche Slack, integrazione con Jupyter, persino un pannello CLI per le metriche – e saremo lieti del tuo contributo.
Conclusione
Whale è sviluppato e mantenuto da Dataframe, una startup che ho recentemente avuto il piacere di fondare con altre persone. Mentre whale è concepito per i professionisti della data processing, Dataframe è destinata a team di data processing. Per coloro che desiderano collaborare più da vicino – non esitate a , ti aggiungeremo alla lista d'attesa.
Usando il codice promozionale HABR, puoi ottenere un ulteriore 10% di sconto su quello indicato nel banner.
Altri corsi
Articoli consigliati
Fonte: habr.com
