Ir para o conteúdo principal

Apresentando o Delta Time Travel para Data Lakes de grande escala

Introducing Delta Time Travel for Large Scale Data Lakes

Publicado: 4 de fevereiro de 2019

Anúncios7 min de leitura

Obtenha uma prévia do novo e-book da O'Reilly para obter a orientação passo a passo necessária para começar a usar o Delta Lake.


Versionamento de dados para reproduzir experimentos, reverter e auditar dados

Temos o prazer de apresentar os recursos de viagem no tempo no Databricks Delta Lake, o mecanismo de análise unificado de última geração construído sobre o Apache Spark, para todos os nossos usuários. Com este novo recurso, o Delta versiona automaticamente os big data que você armazena em seu data lake, e você pode acessar qualquer versão histórica desses dados. Este gerenciamento de dados temporais simplifica seu pipeline de dados, facilitando a auditoria, a reversão de dados em caso de gravações ou exclusões incorretas acidentais e a reprodução de experimentos e relatórios. Sua organização pode finalmente padronizar um repositório de big data limpo, centralizado e versionado em seu próprio armazenamento em nuvem para suas análises.

Desafios comuns com a alteração de dados

  • Auditar alterações de dados: auditar alterações de dados é fundamental tanto em termos de conformidade de dados quanto de depuração simples para entender como os dados mudaram ao longo do tempo. As organizações que migram de sistemas de dados tradicionais para tecnologias de big data e a nuvem enfrentam dificuldades nesses cenários.
  • Reproduzir experimentos e relatórios: durante o treinamento do modelo, os cientistas de dados executam vários experimentos com diferentes parâmetros em um determinado conjunto de dados. Quando os cientistas revisitam seus experimentos após um período de tempo para reproduzir os modelos, normalmente os dados de origem foram modificados por pipelines upstream. Muitas vezes, eles são pegos desprevenidos por essas alterações de dados upstream e, portanto, lutam para reproduzir seus experimentos. Alguns cientistas e organizações projetam as melhores práticas criando várias cópias dos dados, levando ao aumento dos custos de armazenamento. O mesmo vale para os analistas que geram relatórios.
  • Reversões: os pipelines de dados às vezes podem gravar dados incorretos para os consumidores downstream. Isso pode acontecer devido a problemas que variam desde instabilidades de infraestrutura a dados confusos e bugs no pipeline. Para pipelines que fazem anexos simples a diretórios ou a uma tabela, as reversões podem ser facilmente resolvidas por particionamento baseado em data. Com atualizações e exclusões, isso pode se tornar muito complicado, e os engenheiros de dados normalmente precisam projetar um pipeline complexo para lidar com esses cenários.

Apresentando a viagem no tempo

Os recursos de viagem no tempo do Delta simplificam a criação de pipelines de dados para os casos de uso acima. Ao gravar em uma tabela ou diretório Delta, cada operação é versionada automaticamente. Você pode acessar as diferentes versões dos dados de duas maneiras diferentes:

1. Usando um timestamp

Sintaxe Scala:

Você pode fornecer o timestamp ou a string de data como uma opção para o leitor DataFrame:

Em Python:

Sintaxe SQL:

Se o código do leitor estiver em uma biblioteca à qual você não tem acesso e se você estiver passando parâmetros de entrada para a biblioteca para ler dados, você ainda pode voltar no tempo para uma tabela passando o timestamp no formato yyyyMMddHHmmssSSS para o caminho:

2. Usando um número de versão
No Delta, cada gravação tem um número de versão, e você pode usar o número de versão para viajar de volta no tempo também.

Sintaxe Scala:

Sintaxe Python:

UM LÍDER 5X

Gartner®: Databricks, líder em banco de dados em nuvem

Sintaxe SQL:

Auditar alterações de dados

Você pode examinar o histórico de alterações da tabela usando o comando DESCRIBE HISTORY ou através da interface do usuário.

Reproduzir experimentos e relatórios

A viagem no tempo também desempenha um papel importante no machine learning e na ciência de dados. A reprodutibilidade de modelos e experimentos é uma consideração fundamental para os cientistas de dados, porque eles geralmente criam centenas de modelos antes de colocar um em produção e, nesse processo demorado, gostariam de voltar aos modelos anteriores. No entanto, como o gerenciamento de dados geralmente é separado das ferramentas de ciência de dados, isso é realmente difícil de realizar.

O Databricks resolve este problema de reprodutibilidade integrando os recursos de viagem no tempo do Delta com o MLflow, uma plataforma de código aberto para o ciclo de vida do machine learning. Para treinamento de machine learning reproduzível, você pode simplesmente registrar um URL com timestamp para o caminho como um parâmetro MLflow para rastrear qual versão dos dados foi usada para cada trabalho de treinamento. Isso permite que você volte às configurações e conjuntos de dados anteriores para reproduzir modelos anteriores. Você não precisa coordenar com as equipes upstream nos dados nem se preocupar em clonar dados para diferentes experimentos. Este é o poder do Unified Analytics, onde a ciência de dados está intimamente ligada à engenharia de dados.

Reversões

A viagem no tempo também facilita a realização de reversões em caso de gravações incorretas. Por exemplo, se o seu trabalho de pipeline GDPR teve um bug que excluiu acidentalmente informações do usuário, você pode corrigir facilmente o pipeline:

Você também pode corrigir atualizações incorretas da seguinte forma:

Visualização fixa de uma tabela Delta em atualização contínua em vários trabalhos downstream

Com as consultas AS OF, agora você pode fixar o snapshot de uma tabela Delta em atualização contínua para vários trabalhos downstream. Considere uma situação em que uma tabela Delta está sendo atualizada continuamente, digamos, a cada 15 segundos, e há um trabalho downstream que lê periodicamente desta tabela Delta e atualiza diferentes destinos. Nesses cenários, normalmente você deseja uma visão consistente da tabela Delta de origem para que todas as tabelas de destino reflitam o mesmo estado. Agora você pode lidar facilmente com esses cenários da seguinte forma:

Consultas para análise de séries temporais simplificadas

A viagem no tempo também simplifica a análise de séries temporais. Por exemplo, se você quiser descobrir quantos novos clientes adicionou na última semana, sua consulta pode ser muito simples como esta:

Conclusão

A viagem no tempo no Delta melhora tremendamente a produtividade do desenvolvedor. Ajuda:

  • Os cientistas de dados gerenciam melhor seus experimentos
  • Os engenheiros de dados simplificam seus pipelines e revertem gravações incorretas
  • Os analistas de dados fazem relatórios fáceis

As organizações podem finalmente padronizar um repositório de big data limpo, centralizado e versionado em seu próprio armazenamento em nuvem para análise. Estamos entusiasmados para ver o que você será capaz de realizar com este novo recurso.

O recurso está disponível como visualização pública para todos os usuários. Saiba mais sobre o recurso. Para vê-lo em ação, inscreva-se para uma avaliação gratuita do Databricks.

Interessado no Delta Lake de código aberto?
Visite o hub online do Delta Lake para saber mais, baixe o código mais recente e junte-se à comunidade do Delta Lake.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada