Este documento mostra como criar e executar um resultado de compilação com substituições de compilação usando a API Dataform.
Sobre as substituições de compilação da API Dataform
Para executar seu fluxo de trabalho SQL, o Dataform compila seu código em SQL para criar uma compilação resultado. Então, durante um fluxo de trabalho invocação, O Dataform executa o resultado da compilação no BigQuery.
Por padrão, o Dataform usa as configurações arquivo de configurações do fluxo de trabalho para criar o resultado da compilação. Isolar os dados executados em diferentes estágios do ciclo de vida de desenvolvimento, é possível substituir as configurações padrão por substituições de compilação.
Ao transmitir solicitações da API Dataform no terminal, você pode criar e executar uma resultado único de uma compilação com substituições de compilação. É possível criar um resultado da compilação de um espaço de trabalho ou de um committish do Git selecionado.
Para criar um resultado de compilação com substituições, é necessário aumentar o
API Dataform
compilationResults.create
solicitação. Na solicitação, você precisa especificar uma origem, um
workspace ou Gitish do Git, para que o Dataform seja compilado no
com base no resultado da compilação. Na
CodeCompilationConfig
objeto da solicitação compilationResults.create
, é possível configurar a compilação
substituições.
Você pode executar o resultado da compilação criada em uma
API Dataform
workflowInvocations.create
solicitação.
Você pode configurar as seguintes substituições de compilação usando a API Dataform:
Google Cloud
projeto
:
Projeto do Google Cloud em que o Dataform executa
Resultado da compilação, definido em workflow_settings.yaml
como defaultProject
ou em dataform.json
como defaultDatabase
.
- Prefixo da tabela
- O prefixo personalizado foi adicionado a todos os nomes de tabela da o resultado da compilação.
- Sufixo do esquema
- Sufixo personalizado anexado ao esquema das tabelas
definido em
defaultDataset
noworkflow_settings.yaml
,defaultSchema
emdataform.json
ou naschema
no blococonfig
de uma tabela.
O valor de uma compilação variável : Valor de uma variável de compilação a ser usada no resultado da compilação. Você podem usar variáveis de compilação para executar tabelas condicionalmente.
Como alternativa às substituições de compilação da API Dataform, que só podem ser usadas Para um resultado de compilação, é possível configurar substituições de compilação do espaço de trabalho no console do Google Cloud.
Para aprender sobre formas alternativas de configurar substituições de compilação na o Dataform, consulte Introdução ao código de desenvolvimento de software.
Antes de começar
No Console do Google Cloud, acesse a página Dataform.
Selecione ou crie um repositório.
Selecione ou crie um espaço de trabalho de desenvolvimento.
Definir uma origem do resultado de compilação
Para gerar a API Dataform
compilationResults.create
é necessário especificar uma origem para o resultado da compilação.
Você pode definir um espaço de trabalho do Dataform ou uma ramificação do Git, uma tag do Git ou um Git
confirmar o SHA como a origem na
compilationResults.create
solicitação.
Definir um espaço de trabalho como origem do resultado de compilação
- Na
compilationResults.create
solicitação, preencha a propriedadeworkspace
com o caminho de uma solicitação Espaço de trabalho do Dataform no seguinte formato:
{
"workspace": "projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/workspaces/WORKSPACE_NAME"
}
Substitua:
- PROJECT_NAME pelo nome do projeto do Google Cloud.
- LOCATION pelo local do repositório do Dataform; definido nas configurações de fluxo de trabalho.
- REPOSITORY_NAME pelo nome do Dataform repositório de dados.
- WORKSPACE_NAME pelo nome do espaço de trabalho do Dataform.
O exemplo de código a seguir mostra a propriedade workspace
na
Solicitação compilationResults.create
definida como um espaço de trabalho chamado "sales-test"
:
{
"workspace": "projects/analytics/locations/europe-west4/repositories/sales/workspaces/sales-test"
}
Definir um commitish do Git como uma origem de resultado de compilação
Na
compilationResults.create
solicitação, preencha a propriedadegitCommitish
com a ramificação do Git selecionada ou o commit SHA no seguinte formato:{ "gitCommitish": "GIT_COMMITISH" }
Substitua GIT_COMMITISH pela ramificação do Git selecionada, uma tag do Git ou uma tag do Git confirmar o SHA para o resultado da compilação.
O exemplo de código a seguir mostra a propriedade gitCommitish
na
Solicitação compilationResults.create
definida como "staging"
:
{
"gitCommitish": "staging"
}
Substituir o projeto padrão do Google Cloud
Para criar tabelas de preparo ou produção em um projeto do Google Cloud separado do
usado para desenvolvimento, é possível transmitir outro projeto do Google Cloud
na
CodeCompilationConfig
Objeto na API Dataform
compilationResults.create
solicitação.
Transmitir um ID do projeto padrão separado na solicitação compilationResults.create
substitui o ID do projeto padrão do Google Cloud configurado
arquivo de configurações do fluxo de trabalho,
mas não substitui os IDs de projetos do Google Cloud
configurados em tabelas individuais.
Para substituir o ID do projeto padrão do Google Cloud, defina o
defaultDatabase
para o ID do projeto do Google Cloud selecionado na ObjetoCodeCompilationConfig
no seguinte formato:{ "codeCompilationConfig": { "defaultDatabase": "PROJECT_NAME" } }
Substitua PROJECT_NAME pelo ID do projeto do Google Cloud que você quer. a ser definido para o resultado da compilação.
Adicionar um prefixo de tabela
Para identificar rapidamente as tabelas no resultado da compilação, você pode adicionar um prefixo ao
todos os nomes de tabelas no resultado da compilação passando o prefixo da tabela na
CodeCompilationConfig
Objeto na API Dataform
compilationResults.create
solicitação.
- Para adicionar um prefixo de tabela, defina a propriedade
tablePrefix
no ObjetoCodeCompilationConfig
no seguinte formato:
{
"codeCompilationConfig": {
"tablePrefix": "PREFIX",
}
}
Substitua PREFIX pelo sufixo que você quer anexar, por exemplo:
_staging
. Por exemplo, se defaultDataset
em workflow_settings.yaml
for
definido como dataform
, o Dataform vai criar tabelas
dataform_staging
.
Anexar um sufixo de esquema
Para separar os dados de desenvolvimento, preparo e produção, anexe um sufixo
a esquemas em um resultado de compilação passando o sufixo do esquema na
CodeCompilationConfig
Objeto na API Dataform
compilationResults.create
solicitação.
- Para anexar um sufixo de esquema, defina a propriedade
schemaSuffix
na ObjetoCodeCompilationConfig
no seguinte formato:
{
"codeCompilationConfig": {
"schemaSuffix": "SUFFIX",
}
}
Substitua SUFFIX pelo sufixo que você quer anexar, por exemplo:
_staging
. Por exemplo, se defaultDataset
em workflow_settings.yaml
for
definido como dataform
, o Dataform vai criar tabelas
dataform_staging
.
Observação:o schemaSuffix
de CodeCompilationConfig
o parâmetro substitui os esquemas configurados no bloco config
de
arquivos individuais.
Executar arquivos selecionados condicionalmente com variáveis de compilação
Para executar uma tabela selecionada apenas em uma configuração de execução específica, é possível
criar uma variável de compilação
para a configuração de execução e, em seguida, passe seu valor no campo
CodeCompilationConfig
Objeto na API Dataform
compilationResults.create
solicitação.
Para executar condicionalmente uma tabela em uma configuração de execução específica usando API Dataform, siga estas etapas:
- Criar uma variável de compilação e adicioná-la aos ícones tabelas.
Defina o par de chave-valor YOUR_VARIABLE e VALUE no Bloco
codeCompilationConfig
de um Solicitação de compilação da API Dataform no formato:{ "codeCompilationConfig": { "vars": { "YOUR_VARIABLE": "VALUE" } } }
Substitua YOUR_VARIABLE pelo nome da sua variável, por exemplo
executionSetting
.Substitua VALUE pelo valor da variável para esta compilação. resultado que cumpre a condição
when
definida nos itens selecionados do BigQuery.
O exemplo de código a seguir mostra a variável executionSetting
transmitida para um
Solicitação de compilação da API Dataform:
{
"gitCommitish": "staging",
"codeCompilationConfig": {
"vars": {
"executionSetting": "staging"
}
}
}
Executar um resultado de compilação com substituições de compilação
- Para executar o resultado da compilação criado por um
compilationResults.create
. , passa o ID de resultado da compilação retornado pelocompilationResults.create
em umworkflowInvocations.create
solicitação.
O exemplo de código a seguir mostra um ID de resultado de compilação transmitido em uma
workflowInvocations.create
solicitação:
{
"compilationResult": "projects/my-project-name/locations/europe-west4/repositories/my-repository-name/compilationResults/7646b4ed-ac8e-447f-93cf-63c43249ff11"
}
A seguir
- Para saber mais sobre maneiras de configurar substituições de compilação no o Dataform, consulte Introdução ao código ciclo de vida.
- Para saber mais sobre a API Dataform, consulte API Dataform.
- Saber como usar o console do Google Cloud para configurar substituições de compilação para todos os espaços de trabalho em um repositório, consulte Configurar a compilação do espaço de trabalho substituições.