Migrar do Dataform legado

O Dataform legado vai ser descontinuado em 26 de fevereiro de 2024. Depois dessa data, não será mais possível acessar projetos legados. Neste documento, descrevemos as diferenças entre o Dataform legado e o Dataform no Google Cloud e mostramos como importar um projeto legado do Dataform para o Dataform no Google Cloud.

Sobre as diferenças entre o Dataform legado e o Dataform no Google Cloud

O Dataform é um serviço sem servidor para analistas de dados desenvolverem e implantarem tabelas, tabelas incrementais ou visualizações no BigQuery. O Dataform oferece um ambiente da Web para desenvolvimento de fluxo de trabalho SQL, conexão com os serviços GitHub, GitLab, Bitbucket e Azure DevOps, além de integração e implantação contínuas e execução de fluxos de trabalho.

O Dataform no Google Cloud é diferente do Dataform legado das seguintes maneiras:

  • O Dataform no Google Cloud oferece suporte à conexão de repositórios do Dataform e do Bitbucket.
  • O controle de acesso é baseado no IAM.
  • A configuração de um limite de simultaneidade de consulta (concurrentQueryLimit) no arquivo de configurações do fluxo de trabalho foi removida.

    No Dataform legado, os limites de simultaneidade impediam o Dataform de enviar muitas consultas simultâneas ao BigQuery. Para gerenciar a simultaneidade no Dataform no Google Cloud, recomendamos ativar as filas de consulta do BigQuery.

  • Os ambientes legados são substituídos por configurações de lançamento.

  • As programações legadas são substituídas por configurações do fluxo de trabalho.

  • Os alertas de falha no fluxo de trabalho são configurados no Cloud Logging.

  • O Dataform no Google Cloud e o Dataform legado usam diferentes versões do NPM e formatos diferentes de package-lock.json.

    Para desenvolver um fluxo de trabalho SQL no Dataform e no Dataform legados no Google Cloud, use o formato package-lock.json legado para a instalação do pacote. Não instale pacotes do Dataform no Google Cloud até migrar totalmente para o Dataform no Google Cloud.

Para mais informações sobre os recursos do Dataform no Google Cloud, consulte Visão geral dos recursos do Dataform.

No momento, os recursos legados do Dataform não têm suporte no Google Cloud

No momento, os seguintes recursos do Dataform legado não são compatíveis com o Dataform no Google Cloud:

  • Execução manual de testes de unidade.
  • Pesquisar conteúdo de arquivos em espaços de trabalho de desenvolvimento.

Esta lista será atualizada continuamente à medida que novos recursos do Dataform no Google Cloud forem lançados.

Limitações conhecidas

O Dataform no Google Cloud tem as seguintes limitações conhecidas:

  • O Dataform no Google Cloud é executado em um ambiente de execução V8 simples e não é compatível com outros recursos e módulos fornecidos pelo Node.js. Se a base de código atual exigir algum módulo Node.js, será necessário remover essas dependências.

    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 isso, você precisa adicionar uma propriedade name em package.json.

  • Os URLs git+https:// para dependências em package.json não são compatíveis.

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

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs BigQuery and Dataform.

    Ative as APIs

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative as APIs BigQuery and Dataform.

    Ative as APIs

Funções exigidas

Para receber as permissões necessárias para importar um projeto legado, peça ao administrador para conceder a você o papel do IAM Administrador do Dataform (roles/dataform.admin) nos repositórios. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Importar um projeto legado

Para importar um projeto legado no Dataform no Google Cloud, siga estas etapas no console do Google Cloud:

  1. Verifique se o projeto do Dataform em app.dataform.co está conectado ao GitHub ou ao GitLab.
  2. No Console do Google Cloud, acesse a página Dataform.

    Acessar a página do Dataform

  3. Crie um novo repositório.

  4. Conecte o repositório ao repositório Git remoto que hospeda o projeto legado.

Configurar seu projeto importado do Dataform

Para ajustar seu projeto legado para o Dataform no Google Cloud, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Dataform.

    Acessar a página do Dataform

  2. Selecione seu Repositório.

  3. Crie um espaço de trabalho de desenvolvimento.

  4. Acesse o espaço de trabalho de desenvolvimento.

  5. No arquivo de configurações do fluxo de trabalho, especifique um local padrão.

workflow_settings.yaml

Adicione o parâmetro defaultLocation neste formato:

defaultLocation: DATASET_LOCATION,

Substitua DATASET_LOCATION pelo local padrão do seu conjunto de dados do BigQuery, por exemplo, US, EU ou us-east1.

O parâmetro defaultLocation é ignorado por app.dataform.co.

dataform.json

Adicione o parâmetro defaultLocation neste formato:

"defaultLocation": "DATASET_LOCATION",

Substitua DATASET_LOCATION pelo local padrão do seu conjunto de dados do BigQuery, por exemplo, US, EU ou us-east1.

O parâmetro defaultLocation é ignorado por app.dataform.co.

  1. Excluir package-lock.json.
  2. Em package.json, faça o seguinte:

    1. Faça upgrade de @dataform/core para 3.0.0-beta.2 ou mais recente.
    2. Adicione um nome de pacote no seguinte formato:

      {
          "name": "PACKAGE_NAME",
          "dependencies": {
              "@dataform/core": "^3.0.0-beta.2"
          }
      }
      

      Substitua PACKAGE_NAME por um nome para seu pacote do Dataform, por exemplo, o nome do projeto.

    3. Converta URLs git+https:// em dependências package.json em URLs de arquivo https:// simples.

      Por exemplo, converta git+https://github.com/dataform-co/dataform-segment.git#1.5 em https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz.

      Se você estiver usando URLs git+https:// em pacotes pré-criados do Dataform, confira as instruções de instalação atualizadas desses pacotes nas páginas de lançamento, por exemplo, na página de lançamento do segmento dataform.

  3. Configure as permissões do BigQuery e as permissões do usuário.

  4. Migrar ambientes de environments.json para configurações de lançamento.

  5. Migrar programações de environments.json para configurações de fluxo de trabalho.

  6. Configurar alertas usando o Cloud Logging.

A seguir