Este documento ajuda você a entender o conceito de repositórios no Dataform e como criar um novo.
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 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. É possível classificar e filtrar os dados.
Para conferir seus repositórios, no Google Cloud console, acesse a página Dataform.
Cada repositório do Dataform precisa estar conectado a uma conta de serviço personalizada. Você seleciona uma conta de serviço personalizada ao criar um repositório. É possível editar a conta de serviço depois.
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 no repositório:
- O banco de dados padrão (ID do projetoGoogle Cloud ).
- 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 asserções.
- O depósito, 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:
- ID do repositório
- Um ID exclusivo do repositório. Os IDs podem incluir apenas 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 depois de criar o repositório. Para mais informações, consulte Configurar as definições de fluxo de trabalho do Dataform.
- Conta de serviço
A conta de serviço personalizada associada ao repositório. É possível selecionar uma conta de serviço associada ao seu projeto Google Cloud ou inserir manualmente uma conta de serviço diferente.
Você precisa usar uma conta de serviço personalizada para executar fluxos de trabalho no seu repositório. Todas as outras operações de repositório são realizadas pelo agente de serviço padrão do Dataform.
- Modo de simulação restrito
Ativa uma verificação de segurança adicional que exige a permissão
iam.serviceAccounts.actAsna conta de serviço. O modo estrito "agir como" é aplicado a todos os repositórios.- Criptografia
Método de criptografia do repositório. É possível usar a criptografia padrão, uma chave de criptografia do Cloud KMS gerenciada pelo cliente ou uma chave CMEK padrão do Dataform. Para mais informações sobre o uso de chaves de criptografia gerenciadas pelo cliente (CMEK) no Dataform, consulte Usar chaves de criptografia gerenciadas pelo cliente.
Depois de criar um repositório, você pode conectá-lo ao GitHub ou GitLab.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Para usar a criptografia CMEK no repositório, ative a criptografia CMEK dos repositórios do Dataform.
Funções exigidas
Para receber as permissões necessárias para criar e excluir um repositório, peça ao administrador para conceder os seguintes papéis 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 papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Conceder os papéis necessários
Para executar fluxos de trabalho no seu repositório do Dataform e no BigQuery, use uma conta de serviço personalizada ou sua Conta do Google.
Sua conta de serviço personalizada precisa ter os seguintes papéis obrigatórios:
- Editor de dados do BigQuery
(
roles/bigquery.dataEditor) em projetos ou conjuntos de dados específicos do BigQuery a que o Dataform precisa de acesso de leitura e gravação. Isso geralmente inclui o projeto que hospeda seu repositório do Dataform.