Como pesquisar dados de forma rápida e fácil com o Whale



Este artigo descreve a ferramenta de descoberta de dados mais simples e rápida que você vê funcionando no KDPV. Curiosamente, o whale foi projetado para ser hospedado em um servidor git remoto. Detalhes sob o corte.



Como a ferramenta de descoberta de dados do Airbnb mudou minha vida



Na minha carreira, tenho sido bastante sorte de trabalhar em alguns problemas de diversão: Estudei fluir matemática durante minha graduação no MIT, trabalhou em modelos incrementais e com o pylift projeto de código aberto em Wayfair, e introduziu nova homepage alvo modelos e melhorias CUPED para Airbnb. Mas todo esse trabalho nunca foi glamoroso - na verdade, muitas vezes passei a maior parte do tempo pesquisando, explorando e validando dados. Embora esta fosse uma condição persistente no trabalho, não me ocorreu que era um problema até que cheguei ao Airbnb, onde foi resolvido com uma ferramenta de descoberta de dados, Dataportal .



Onde posso encontrar {{data}}? Dataportal .

O que esta coluna significa? Dataportal .

Como está {{metric}} hoje? Dataportal .

O que é um sentido de vida? Em Dataportal , provavelmente.


Ok, você apresentou uma foto. Encontrar os dados e entender o que eles significam, como foram criados e como usá-los - tudo isso leva apenas alguns minutos, não horas. Eu poderia gastar meu tempo tirando conclusões simples ou novos algoritmos (... ou respondendo a perguntas aleatórias sobre os dados), em vez de vasculhar anotações, escrever consultas SQL repetidas e mencionar colegas no Slack para tentar recriar o contexto. que outra pessoa já tinha.



Qual é o problema?



Percebi que a maioria dos meus amigos não tinha acesso a essa ferramenta. Poucas empresas desejam dedicar grandes recursos para construir e manter uma ferramenta de plataforma como o Dataportal. Embora existam várias soluções de código aberto por aí, elas tendem a ser projetadas para escalar, dificultando a configuração e manutenção sem um engenheiro de DevOps dedicado. Então decidi criar algo novo.



Whale: uma ferramenta boba de descoberta de dados







E sim, por simples estupidez quero dizer simples até estupidez. A baleia tem apenas dois componentes:



  1. Uma biblioteca Python que coleta metadados e os formata no MarkDown.
  2. Interface de linha de comando Rust para pesquisar esses dados.


Do ponto de vista da infraestrutura interna, há apenas uma grande quantidade de arquivos de texto e um programa de atualização de texto para manutenção. É isso, então hospedar em um servidor git como o Github é trivial. Sem nova linguagem de consulta para aprender, sem infraestrutura de gerenciamento, sem backups. O Git é conhecido por todos, então a sincronização e a colaboração são gratuitas. Vamos dar uma olhada mais de perto na funcionalidade do Whale v1.0 .



GUI completo baseado em git



O Whale foi criado para navegar no oceano de um servidor git remoto. É muito fácil de configurar: defina algumas conexões, copie o script de ações do Github (ou escreva-o para a plataforma de CI / CD de sua escolha) e você terá uma ferramenta de descoberta de dados baseada na web imediatamente. Você poderá pesquisar, visualizar, documentar e compartilhar suas tabelas diretamente no Github.





Um exemplo de uma tabela de stub gerada usando Github Actions. Veja esta seção para uma demonstração completa de trabalho .



Pesquisa CLI ultrarrápida para seu repositório



A Whale vive e respira na linha de comando, fornecendo pesquisas poderosas de milissegundos em suas tabelas. Mesmo com milhões de tabelas, conseguimos fazer o whale ter um desempenho incrível usando alguns mecanismos de cache inteligentes e reconstruindo o back-end em Rust. Você não notará nenhum atraso de pesquisa [olá Google DS].





Baleia de demonstração, procure mais de um milhão de mesas .



Cálculo automático de métricas [em beta]



Uma das coisas que menos gosto como cientista de dados é executar as mesmas consultas repetidamente apenas para verificar a qualidade dos dados que estão sendo usados. O Whale suporta a capacidade de definir métricas em SQL simples que serão executadas em um cronograma junto com seus pipelines de limpeza de metadados. Defina um bloco de métricas YAML dentro da tabela de stub e o Whale será executado automaticamente conforme a programação e consultas de métricas aninhadas.



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




Quando combinada com o Github, esta abordagem significa que a baleia pode servir como uma fonte central fácil de verdade para definições métricas. O Whale ainda armazena os valores junto com o carimbo de data / hora em ~ /. baleia / métricas ”se você quiser fazer algum tipo de gráfico ou pesquisa mais profunda.



Futuro



Depois de conversar com os usuários de nossas versões de pré-lançamento do Whale, percebemos que as pessoas precisam de mais funcionalidade. Por que uma ferramenta de pesquisa de tabela? Por que não uma ferramenta de pesquisa de métricas? Por que não monitorar? Por que não uma ferramenta de execução de consulta SQL? Embora o whale v1 tenha sido originalmente concebido como uma ferramenta simples de CLI Dataportal/Amundsen, ele já evoluiu para uma plataforma autônoma totalmente funcional e esperamos que se torne parte integrante da caixa de ferramentas do cientista de dados.



Se houver algo que você deseja ver no processo de desenvolvimento, junte-se à nossa comunidade no Slack , abra os problemas no Github ou entre em contato direto com o LinkedIn .... Já temos vários recursos interessantes - modelos Jinja, favoritos, filtros de pesquisa, alertas do Slack, integração do Jupyter e até um painel CLI para métricas - mas adoraríamos sua opinião.



Conclusão



O Whale é desenvolvido e apoiado pela Dataframe, uma startup que recentemente tive o prazer de iniciar com outras pessoas. Enquanto a baleia é para cientistas de dados, Dataframe é para equipes de dados. Para aqueles de vocês que desejam cooperar mais estreitamente - não hesite em entrar em contato , nós o adicionaremos à lista de espera.



imagem


E com o código promocional do HABR , você ganha 10% a mais no desconto indicado no banner.












All Articles