Criar um repositório

Este documento ajuda você a entender o conceito de repositórios no Dataform e como criar um novo repositório.

Sobre os repositórios do Dataform

Cada repositório do Dataform contém uma coleção de arquivos SQLX e JavaScript que formam seu fluxo de trabalho, além de pacotes e arquivos de configuração do Dataform. Você interage com o conteúdo do seu repositório em um espaço de trabalho de desenvolvimento.

O Dataform mostra seus repositórios na página do Dataform em ordem alfabética de IDs de repositório. É possível classificar e filtrar.

  • Para conferir seus repositórios, no Google Cloud console, acesse a página Dataform.

    Acesse Dataform

Cada repositório do Dataform está conectado a um agente de serviço padrão do Dataform ou a uma conta de serviço personalizada. Só é possível selecionar uma conta de serviço personalizada ao criar um repositório. Você pode editar a conta de serviço mais tarde.

Por padrão, o Dataform usa um agente de serviço ou uma conta de serviço derivada do número do projeto no seguinte formato:

service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

O Dataform usa o Git para registrar mudanças e gerenciar versões de arquivos. Cada repositório do Dataform corresponde a um repositório Git. Depois de criar um repositório do Dataform, é possível conectá-lo a um repositório remoto do GitHub, GitLab ou Bitbucket.

Em um repositório do Dataform, o Dataform armazena o código do repositório. Em um repositório conectado, o repositório de terceiros armazena o código do repositório. O Dataform interage com o repositório de terceiros para permitir que você edite e execute o conteúdo dele em um espaço de trabalho de desenvolvimento do Dataform.

A página do repositório do Dataform consiste nos seguintes componentes:

Guia "Espaços de trabalho de desenvolvimento"
Mostra os espaços de trabalho de desenvolvimento criados no repositório.
Guia "Registros de execução do fluxo de trabalho"
Mostra os registros de execução do fluxo de trabalho do Dataform.
Guia "Versões e programação"
Permite inspecionar, criar, editar e excluir configurações de versão e configurações de fluxo de trabalho.
Guia "Configurações"
Mostra o nome e o local do repositório. Para um repositório conectado a um repositório Git de terceiros, mostra a origem do repositório de terceiros, o nome da ramificação padrão e o token secreto. Mostra os botões para conectar o repositório a um repositório Git de terceiros e para editar a conexão Git.
Botão "Criar espaço de trabalho de desenvolvimento"
Permite criar um espaço de trabalho de desenvolvimento.

Depois de criar e inicializar um espaço de trabalho de desenvolvimento, é possível editar o arquivo de configurações do fluxo de trabalho para configurar as seguintes configurações do Dataform do seu repositório:

  • O banco de dados padrão (Google Cloud ID do projeto).
  • O esquema padrão (ID do conjunto de dados do BigQuery).
  • O local padrão do BigQuery.
  • O esquema padrão (ID do conjunto de dados do BigQuery) para declarações.
  • O data warehouse, que precisa ser definido como bigquery.
  • Variáveis definidas pelo usuário que são disponibilizadas ao código do projeto durante a compilação.

Para mais informações sobre as configurações do repositório do Dataform, consulte IProjectConfig na referência principal do Dataform.

Configurações do repositório

Ao criar um repositório do Dataform, é necessário definir as seguintes configurações do repositório:

ID do repositório
Um ID exclusivo do repositório. Os IDs só podem incluir números, letras, hifens e sublinhados.
Região

Região do Dataform para armazenar o repositório e o conteúdo dele.

Essa região de armazenamento pode ser diferente da região de processamento em que o Dataform processa seu código e armazena a saída das execuções. Por padrão, a região de processamento é definida como a região padrão do conjunto de dados do BigQuery. É possível editar a região de processamento no arquivo de configurações do fluxo de trabalho após criar o repositório. Para mais informações, consulte Configurar as configurações do fluxo de trabalho do Dataform.

Agente de serviço ou conta de serviço

O agente de serviço do Dataform ou a conta de serviço personalizada associada ao repositório. Para novos repositórios, é necessário fornecer uma conta de serviço personalizada. É possível selecionar uma conta de serviço associada ao seu Google Cloud projeto ou inserir manualmente uma conta de serviço diferente.

Por padrão, o Dataform usa um agente de serviço ou uma conta de serviço derivada do número do projeto no seguinte formato:

service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

É necessário usar uma conta de serviço personalizada para executar fluxos de trabalho no repositório, mas o agente de serviço padrão do Dataform ainda é usado para todas as outras operações do repositório.

Modo estrito "agir como"

Ativa uma verificação de segurança adicional que exige a permissão iam.serviceAccounts.actAs na conta de serviço. Para novos repositórios, o modo estrito "agir como" é aplicado. Para repositórios atuais, recomendamos usar contas de serviço personalizadas e ativar o modo estrito "agir como" para garantir um modelo de permissões mais seguro e previsível.

Criptografia

Método de criptografia para o repositório. É possível usar a criptografia padrão, uma chave de criptografia do Cloud KMS gerenciada pelo cliente exclusiva ou uma chave CMEK padrão do Dataform. Para mais informações sobre como usar chaves de criptografia gerenciadas pelo cliente (CMEK) no Dataform, consulte Usar chaves de criptografia gerenciadas pelo cliente.

Depois de criar um repositório, é possível conectá-lo ao GitHub ou ao GitLab.

Antes de começar

  1. Faça login na sua Google Cloud conta do. Se você não conhece o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Para usar a criptografia CMEK no repositório, ative a criptografia CMEK dos repositórios do Dataform.

Funções exigidas

Para conseguir as permissões necessárias para criar e excluir um repositório, peça ao administrador que conceda a você as seguintes funções do IAM nos repositórios:

  • Administrador do Dataform (roles/dataform.admin) – o projeto
  • Usuário da conta de serviço (roles/iam.serviceAccountUser) – a conta de serviço personalizada

Para mais informações sobre a concessão de funções, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando funções personalizadas ou outras funções predefinidas.

Conceder as funções necessárias

Para executar fluxos de trabalho no repositório do Dataform e no BigQuery, é possível usar uma conta de serviço personalizada ou sua Conta do Google.

Sua conta de serviço personalizada precisa ter as seguintes funções obrigatórias:

  • Editor de dados do BigQuery (roles/bigquery.dataEditor) em projetos ou conjuntos de dados específicos do BigQuery aos quais o Dataform precisa de acesso de leitura e gravação. Isso geralmente inclui o projeto que hospeda seu repositório do Dataform.
  • Visualizador de dados do BigQuery (roles/bigquery.dataViewer) em projetos ou conjuntos de dados específicos do BigQuery aos quais o Dataform precisa de acesso somente leitura.
  • Usuário de jobs do BigQuery (roles/bigquery.jobUser) no projeto que hospeda seu repositório do Dataform.

Para permitir que o Dataform use sua conta de serviço personalizada, o agente de serviço padrão do Dataform precisa ter as seguintes funções no recurso da conta de serviço personalizada:

Para conceder essas funções, siga estas etapas:

  1. No Google Cloud console, acesse a página IAM.

    Acessar IAM

  2. Clique em Conceder acesso.

  3. No campo Novos principais, insira o ID da sua conta de serviço personalizada.

  4. No menu Selecionar uma função, selecione as seguintes funções uma por uma, usando Adicionar outra função para cada função adicional:

    • Editor de dados do BigQuery
    • Visualizador de dados do BigQuery
    • Usuário de jobs do BigQuery
  5. Clique em Salvar.

  6. No Google Cloud console, acesse a página Contas de serviço.

    Acesse as Contas de serviço

  7. Selecione sua conta de serviço personalizada.

  8. Acesse Principais com acesso e clique em Conceder acesso.

  9. No campo Novos principais, insira o ID do agente de serviço padrão do Dataform.

    O ID do agente de serviço padrão do Dataform está no seguinte formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    

    Substitua PROJECT_NUMBER pelo ID numérico do seu Google Cloud projeto. Encontre o ID do seu Google Cloud projeto no Google Cloud painel do console. Para mais informações, consulte Identificar projetos.

  10. Na lista Selecionar uma função, adicione as seguintes funções:

    • Usuário da conta de serviço
    • Criador do token da conta de serviço
  11. Clique em Salvar.

Para mais informações sobre como conceder funções, consulte Conceder ao Dataform o acesso necessário.

Criar um repositório

Para criar um repositório do Dataform, siga estas etapas:

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

    Acesse Dataform

  2. Clique em Criar repositório.

  3. Na página Criar repositório, no campo ID do repositório , insira um ID exclusivo.

    Os IDs só podem incluir números, letras, hifens e sublinhados.

  4. Na lista suspensa Região, selecione uma região do Dataform para armazenar o repositório e o conteúdo dele. Selecione a região do Dataform mais próxima do seu local.

    Para uma lista de regiões do Dataform disponíveis, consulte Locais. A região do repositório não precisa corresponder ao local dos conjuntos de dados do BigQuery.

    No arquivo workflow_settings.yaml, é possível definir a região de processamento em que o Dataform processa seu código e armazena a saída das execuções. A região de processamento precisa corresponder ao local dos conjuntos de dados do BigQuery, mas não precisa corresponder à região do repositório. Para mais informações, consulte Configurar as configurações do fluxo de trabalho do Dataform.

  5. No menu Conta de serviço, selecione uma conta de serviço personalizada para o repositório.

    No menu, é possível selecionar uma conta de serviço personalizada associada ao seu Google Cloud projeto e à qual você tem acesso. As contas de serviço personalizadas são usadas apenas para execução do fluxo de trabalho. Todas as outras operações do repositório são realizadas pelo agente de serviço padrão do Dataform.

    1. Opcional: para selecionar uma conta de serviço que não aparece no menu, clique em Inserir manualmente e insira um ID da conta de serviço.
  6. Na seção Verificações de permissão actAs, aplique as verificações de permissão nas ações do usuário no repositório. Para detalhes sobre essas verificações, consulte Usar o modo estrito "agir como".

  7. Configure o mecanismo de criptografia selecionado para o repositório:

    Chave CMEK padrão

    O Dataform mostra a caixa de seleção Usar a chave KMS padrão e a seleciona por padrão.

    • Para criptografar o repositório com a chave CMEK padrão do Dataform, deixe a caixa de seleção Usar a chave KMS padrão marcada.

    Chave CMEK exclusiva

    Para criptografar o repositório com uma chave CMEK exclusiva, faça o seguinte:

    1. Se a caixa de seleção Usar a chave KMS padrão estiver marcada por padrão, desmarque-a.
    2. Na seção Criptografia, selecione a opção Chaves de criptografia gerenciadas pelo cliente (CMEK).
    3. No menu suspenso Selecionar uma chave gerenciada pelo cliente , selecione uma chave CMEK exclusiva.

    Criptografia em repouso

    • Para usar a criptografia padrão, na seção Criptografia, selecione a opção Google-managed encryption key.
  8. Clique em Criar e em Acessar repositórios.

Editar a conta de serviço

É necessário associar uma conta de serviço personalizada a um repositório do Dataform para execução do fluxo de trabalho. Todas as outras operações do repositório ainda são realizadas pelo agente de serviço padrão do Dataform.

Para editar a conta de serviço de um repositório do Dataform, siga estas etapas:

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

    Acesse Dataform

  2. Selecione um repositório e clique em Configurações.

  3. Ao lado do campo Conta de serviço, clique em Editar conta de serviço.

  4. No menu Conta de serviço, selecione uma conta de serviço para o repositório.

    No menu, é possível selecionar uma conta de serviço personalizada associada ao seu Google Cloud projeto e à qual você tem acesso.

    1. Opcional: para selecionar uma conta de serviço que não aparece no menu, clique em Inserir manualmente e insira um ID da conta de serviço.
  5. Clique em Salvar.

Excluir um repositório.

Para excluir um repositório e todo o conteúdo dele, siga estas etapas:

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

    Acesse Dataform

  2. Ao lado do repositório que você quer excluir, clique no menu Mais e selecione Excluir.

  3. Na janela Excluir repositório, insira o nome do repositório para confirmar a exclusão.

  4. Clique em Excluir.

A seguir