Visão geral do Dataform

Este documento apresenta os conceitos e processos do Dataform.

O Dataform é um serviço para os analistas de dados desenvolverem, testarem o controle de versões e a programação de fluxos de trabalho SQL complexos para a transformação de dados no BigQuery.

Com o Dataform, é possível gerenciar a transformação de dados nas fases Processo de carregamento e transformação (ELT, na sigla em inglês) para integração de dados. Depois que os dados brutos são extraídos dos sistemas de origem e carregados no BigQuery, o Dataform ajuda você a transformá-los em um conjunto de tabelas bem definido, testado e documentado.

O Dataform permite realizar as seguintes ações de transformação de dados:

  • Desenvolva e execute fluxos de trabalho SQL para transformação de dados.
  • Colabore com os membros da equipe no desenvolvimento de fluxos de trabalho SQL pelo Git.
  • Gerenciar um grande número de tabelas e as dependências delas.
  • Declare dados de origem e gerencie dependências de tabelas.
  • Confira a árvore de dependências do fluxo de trabalho SQL.
  • Gerenciar dados com código SQL em um repositório central.
  • Reutilizar código com JavaScript.
  • Teste a exatidão dos dados com testes de qualidade em tabelas de origem e saída.
  • Controle de versões do código SQL.
  • Documentar tabelas de dados no código SQL.

Processos de transformação de dados no Dataform

O fluxo de trabalho de transformação de dados para o Dataform é o seguinte:

  1. O Dataform permite criar repositórios para gerenciar seu código.
  2. O Dataform permite criar espaços de trabalho para desenvolvimento.
  3. O Dataform permite desenvolver fluxos de trabalho SQL em um espaço de trabalho de desenvolvimento.
  4. O Dataform compila o núcleo do Dataform em SQL.
  5. O Dataform executa a árvore de dependências.

O Dataform permite criar repositórios para gerenciar seu código

Em um repositório do Dataform, você usa o núcleo do Dataform, uma extensão do SQL, para gravar arquivos SQLX em que define seu fluxo de trabalho. Os repositórios do Dataform oferecem suporte ao controle de versões. É possível vincular um repositório do Dataform a um provedor Git de terceiros.

O Dataform permite criar espaços de trabalho para desenvolvimento

É possível criar espaços de trabalho de desenvolvimento em um repositório do Dataform para desenvolvimento do núcleo do Dataform. Em um espaço de trabalho de desenvolvimento, é possível fazer alterações no repositório, fazer a compilação, testar e enviar para o repositório principal usando o Git.

O Dataform permite desenvolver o núcleo do Dataform em um espaço de trabalho de desenvolvimento

Em um espaço de trabalho de desenvolvimento, é possível definir e documentar tabelas, as dependências delas e a lógica de transformação para criar seu fluxo de trabalho SQL. Também é possível configurar ações em JavaScript.

O Dataform compila o núcleo do Dataform

Durante a compilação, o Dataform realiza as seguintes tarefas:

  • Compila o Dataform Core em um fluxo de trabalho do SQL padrão.
  • Adiciona instruções SQL padrão, como CREATE TABLE ou INSERT, ao código inline com a configuração da consulta.
  • Transcompila (compila JavaScript da fonte para a origem) em SQL.
  • Resolve dependências e verifica erros, incluindo dependências ausentes ou circulares.
  • Cria a árvore de dependências de todas as ações a serem executadas no BigQuery.

A compilação do Dataform é hermética para garantir a consistência da compilação, o que significa que o mesmo código é compilado sempre no mesmo resultado de compilação SQL. O Dataform compila seu código em um sandbox sem acesso à Internet. Nenhuma outra ação, como chamar APIs externas, estão disponíveis durante a compilação.

Para depurar em tempo real, é possível inspecionar o fluxo de trabalho SQL compilado do seu projeto em um gráfico interativo no espaço de trabalho de desenvolvimento.

O Dataform executa a árvore de dependências

No BigQuery, o Dataform realiza as seguintes tarefas:

  • Executa comandos SQL, seguindo a ordem da árvore de dependências.
  • Executa consultas de declaração em suas tabelas e visualizações para verificar a exatidão dos dados.
  • Executa outras operações SQL definidas.

Após a execução, você pode usar suas tabelas e visualizações para todos os fins de análise.

É possível acessar os registros para conferir quais tabelas foram criadas, se as declarações foram aprovadas ou reprovadas, quanto tempo cada ação levou para ser concluída e outras informações. Também é possível conferir o código SQL exato que foi executado no BigQuery.

Modelo de modelagem do Dataform

O Dataform oferece um framework de modelagem de dados de código aberto, que consiste do Dataform Core e CLI do Dataform, para uso fora do Google Cloud.

Limitações

O Dataform tem as seguintes limitações conhecidas:

  • O Dataform no Google Cloud é executado em um ambiente de execução V8 simples e não oferece suporte a outros recursos e módulos fornecidos pelo Node.js. Se as A base de código atual requer módulos Node.js, será preciso remover essas dependências.

    Os projetos sem um campo de nome em package.json geram diferenças em package-lock.json sempre que os pacotes são instalados. Para evitar esse resultado, você precisa adicionar uma propriedade name em package.json.

  • Não há suporte para URLs git+https:// para dependências em package.json.

    Converta esses URLs em URLs de arquivo https:// simples. Por exemplo, converta git+https://github.com/dataform-co/dataform-segment.git#1.5 para https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz.

  • A execução manual de testes de unidade não está disponível.

  • A pesquisa de conteúdo de arquivos nos espaços de trabalho de desenvolvimento não está disponível.

  • A partir do núcleo do Dataform 3.0.0., o Dataform não distribui uma imagem do Docker. Você pode criar sua própria imagem Docker do Dataform, que pode ser usada para executar o equivalente aos comandos da CLI do Dataform. Para criar sua própria imagem do Docker, consulte Colocar um aplicativo em contêiner na documentação do Docker.

A seguir