Nesta página, mostramos como editar o processamento do fluxo de trabalho SQL do Dataform configurações de um repositório específico.
Edite o arquivo de configurações para renomear os esquemas ou adicionar configurações variáveis de compilação ao seu repositório.
Sobre as configurações do repositório
Cada repositório do Dataform contém um fluxo de trabalho exclusivo de configuração do Terraform. O arquivo contém o ID do projeto do Google Cloud e o esquema em para que o Dataform publique recursos no BigQuery. O Dataform usa as configurações padrão que você pode substituir para melhor atender às suas de que precisa editando o arquivo de configurações.
A partir do Dataform core 3.0.0,
as configurações de fluxo de trabalho são armazenadas no arquivo workflow_settings.yaml por padrão.
Nas versões anteriores do Dataform Core,
as configurações de fluxo de trabalho são armazenadas no arquivo dataform.json
.
O arquivo workflow_settings.yaml
do Dataform core 3.0 é
é compatível com versões anteriores do dataform.json
. Você pode continuar usando
dataform.json
para armazenar as configurações do fluxo de trabalho. Recomendamos que você
migrar as configurações do fluxo de trabalho do repositório
para o formato workflow_settings.yaml
para compatibilidade futura.
Sobre workflow_settings.yaml
O arquivo workflow_settings.yaml
, introduzido no
Dataform core 3.0,
armazena as configurações do fluxo de trabalho do Dataform no formato YAML
.
O exemplo de código a seguir mostra um exemplo de arquivo workflow_settings.yaml
:
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
No exemplo de código anterior, os pares de chave-valor são descritos da seguinte forma:
defaultProject
: o ID do projeto do Google Cloud no BigQuery.defaultDataset
: o conjunto de dados do BigQuery em que O Dataform cria recursos, que têm o nomedataform
por padrão.defaultLocation
: a região padrão do conjunto de dados do BigQuery. Para mais informações sobre locais de conjuntos de dados do BigQuery, consulte os Locais dos conjuntos de dados. Nele, o Dataform processa seu código e o armazena dados executados. Essa região de processamento precisa corresponder ao local dos conjuntos de dados do BigQuery, mas não precisa a região do repositório do Dataform.defaultAssertionDataset
: o conjunto de dados do BigQuery em que O Dataform cria visualizações com resultados de declaração, chamadosdataform_assertions
por padrão.
Para mais informações sobre as propriedades workflow_settings.yaml
, consulte
referência de configurações para as configurações de fluxo de trabalho
no GitHub.
Você pode acessar as propriedades definidas no workflow_settings.yaml
no seu
Código do Dataform como propriedades do
dataform.projectConfig
objeto.
Os seguintes mapeamentos das opções de workflow_settings.yaml
para o código acessível
dataform.projectConfig
opções se aplicam:
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
O exemplo de código a seguir mostra o objeto dataform.projectConfig
chamado em um
SELECT
em uma visualização:
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
Sobre dataform.json
O arquivo dataform.json
armazena as configurações do fluxo de trabalho do Dataform
no formato JSON
.
O exemplo de código a seguir mostra um exemplo de arquivo dataform.json
:
{
"warehouse": "bigquery",
"defaultDatabase": "my-gcp-project-id",
"defaultSchema": "dataform",
"defaultLocation": "australia-southeast2",
"assertionSchema": "dataform_assertions"
}
No exemplo de código anterior, os pares de chave-valor são descritos da seguinte forma:
warehouse
: ponteiro para o BigQuery, em que o Dataform cria recursos.defaultDatabase
: o ID do projeto do Google Cloud no BigQuery.defaultSchema
: o conjunto de dados do BigQuery em que O Dataform cria recursos.defaultLocation
: a região padrão do conjunto de dados do BigQuery. Para mais informações sobre locais de conjuntos de dados do BigQuery, consulte Locais dos conjuntos de dados. Nele, o Dataform processa seu código e o armazena dados executados. Essa região de processamento precisa corresponder ao local dos conjuntos de dados do BigQuery, mas não precisa a região do repositório do Dataform.assertionSchema
: o conjunto de dados do BigQuery em que O Dataform cria visualizações com resultados de declaração, chamadosdataform_assertions
por padrão.
Você pode acessar as propriedades definidas em dataform.json
no código do projeto como
propriedades do dataform.projectConfig
objeto.
Antes de começar
Funções exigidas
Para ter as permissões necessárias para definir as configurações do Dataform,
peça ao administrador para conceder a você
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 conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Configurar nomes de esquemas
Para configurar nomes de esquemas, é preciso editar defaultDataset
e
defaultAssertionSchema
propriedades em
o arquivo workflow_settings.yaml
ou o arquivo defaultSchema
e assertionSchema
no arquivo dataform.json
.
Para configurar o nome de um esquema, siga estas etapas:
workflow_settings.yaml
No espaço de trabalho de desenvolvimento, no painel Arquivos, clique em o arquivo
workflow_settings.yaml
.Edite o valor de
defaultDataset
,defaultAssertionSchema
ou ambos.
O exemplo de código a seguir mostra um nome defaultDataset
personalizado definido em
o arquivo workflow_settings.yaml
:
...
defaultDataset: mytables
...
dataform.json
No espaço de trabalho de desenvolvimento, no painel Arquivos, clique em o arquivo
dataform.json
.Edite o valor de
defaultSchema
,assertionSchema
ou ambos.
O exemplo de código a seguir mostra um nome defaultSchema
personalizado definido no
Arquivo dataform.json
:
{
...
"defaultSchema": "mytables",
...
}
Criar variáveis de compilação personalizadas
Variáveis de compilação contêm valores que podem ser modificados substituições em uma configuração de versão ou em uma solicitação da API Dataform.
Depois de definir uma variável de compilação no workflow_settings.yaml
e adicioná-la a
tabelas selecionadas, é possível usar a modificação de seu valor em uma configuração de versão ou
Substituições de compilação da API Dataform
para executar tabelas condicionalmente.
Para mais informações sobre como executar tabelas condicionalmente variáveis de compilação, consulte Introdução ao ciclo de vida do código no Dataform.
Para criar uma variável de compilação que pode ser usada em um repositório, siga estas etapas:
workflow_settings.yaml
- Acesse seu espaço de trabalho de desenvolvimento do Dataform.
- No painel Files, selecione o arquivo
workflow_settings.yaml
. Insira o seguinte snippet de código:
"vars": { "YOUR_VARIABLE":"VALUE" }
Substitua:
- YOUR_VARIABLE por um nome para a variável.
- VALUE pelo valor padrão da variável de compilação.
O exemplo de código abaixo mostra o conjunto de variáveis de compilação myVariableName
.
como myVariableValue
no arquivo workflow_settings.yaml
:
...
vars:
myVariableName: myVariableValue
...
O exemplo de código a seguir mostra o arquivo workflow_settings.yaml
com o
A variável de compilação executionSetting
foi definida como dev
:
defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
dataform.json
- Acesse seu espaço de trabalho de desenvolvimento do Dataform.
- No painel Files, selecione o arquivo
dataform.json
. Insira o seguinte snippet de código:
"vars": { "YOUR_VARIABLE":"VALUE" }
Substitua:
- YOUR_VARIABLE por um nome para a variável.
- VALUE pelo valor padrão da variável de compilação.
O exemplo de código abaixo mostra o conjunto de variáveis de compilação myVariableName
.
como myVariableValue
no arquivo dataform.json
:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
O exemplo de código a seguir mostra o arquivo dataform.json
com o
A variável de compilação executionSetting
foi definida como dev
:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Adicionar uma variável de compilação a uma tabela
Para adicionar uma variável de compilação a um arquivo de definição de tabela SQLX, siga estas etapas:
- Acesse seu espaço de trabalho de desenvolvimento do Dataform.
- No painel Arquivos, selecione um arquivo de definição de tabela SQLX.
No arquivo, insira uma cláusula
when
neste formato:${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
Substitua:
- YOUR_VARIABLE pelo nome da sua variável;
por exemplo,
executionSetting
. - SET_VALUE por um valor para a variável;
por exemplo,
staging
. - CONDITION por uma condição para execução da tabela.
- YOUR_VARIABLE pelo nome da sua variável;
por exemplo,
O exemplo de código a seguir mostra um arquivo SQLX de definição de tabela com um when
.
e a variável executionSetting
, que executa 10% dos dados na
configuração de execução do preparo:
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
O exemplo de código a seguir mostra um arquivo SQLX de definição de visualização com um when
.
e a variável myVariableName
:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Migrar as configurações do fluxo de trabalho para workflow_settings.yaml
Para garantir que seu arquivo de configurações de fluxo de trabalho seja compatível com
versões do framework principal do Dataform, migre seu fluxo de trabalho
do arquivo dataform.json
para o arquivo workflow_settings.yaml
.
O arquivo workflow_settings.yaml
substitui o arquivo dataform.json
.
Se o Dataform core for o único pacote de dependência no seu repositório,
o arquivo workflow_settings.yaml
também vai substituir o arquivo package.json
.
Para mais informações sobre como substituir package.json
por
workflow_settings.yaml
, consulte
Gerencie o pacote principal do Dataform.
A tabela a seguir mostra o mapeamento de propriedades de configurações de fluxo de trabalho de
De dataform.json
a workflow_settings.yaml
:
Propriedade em dataform.json |
Propriedade em workflow_settings.yaml |
Descrição |
---|---|---|
assertionSchema |
defaultAssertionDataset |
Obrigatório. O conjunto de dados padrão para declarações. |
defaultDatabase |
defaultProject |
Obrigatório. O nome padrão do projeto do Google Cloud. |
defaultLocation |
defaultLocation |
Obrigatório. O local padrão do BigQuery onde o Dataform vai criar tabelas. Para mais informações sobre locais do BigQuery, consulte Locais de conjuntos de dados. |
defaultSchema |
defaultDataset |
Obrigatório. O conjunto de dados padrão. |
databaseSuffix |
projectSuffix |
Opcional. O sufixo a ser anexado a todas as referências de projetos do Google Cloud. |
schemaSuffix |
datasetSuffix |
Opcional. O sufixo a ser anexado a todos os conjuntos de dados de ação. |
tablePrefix |
namePrefix |
Opcional. O prefixo que será anexado a todos os nomes de ações. |
vars |
vars |
Opcional. Variáveis definidas pelo usuário que são disponibilizadas para o código do projeto durante a compilação. Um objeto com uma lista de pares key: value . |
warehouse |
- | Obrigatório em dataform.json . Precisa ser definido como bigquery . Indisponível no seguinte país: workflow_settings.yaml . |
- | dataformCoreVersion |
Indisponível no seguinte país: dataform.json . Ignorada em workflow_settings.yaml por padrão para novos repositórios. Para mais informações, consulte Gerenciar o pacote principal do Dataform. |
Para migrar as configurações do fluxo de trabalho para workflow_settings.yaml
, siga estas etapas:
No Console do Google Cloud, acesse a página Dataform.
Selecione um repositório e depois um espaço de trabalho.
No painel Arquivos, clique em addAdd, e clique em Criar arquivo.
No campo Adicionar um caminho de arquivo, insira
workflow_settings.yaml
.Clique em Criar arquivo.
No arquivo
workflow_settings.yaml
, adicione as configurações Arquivodataform.json
, mapeado para o formato YAML.No painel Arquivos, clique no menu Mais ao lado de
dataform.json
. e clique em Excluir.Para confirmar a exclusão de
dataform.json
, clique em Excluir.
O exemplo de código a seguir mostra as configurações de fluxo de trabalho definidas em
um arquivo dataform.json
:
{
"warehouse": "bigquery",
"defaultDatabase": "dataform-demos",
"defaultLocation": "US",
"defaultSchema": "dataform",
"assertionSchema": "dataform_assertions"
"vars": {
"environmentName": "development"
}
}
O exemplo de código abaixo mostra o arquivo dataform.json
anterior.
convertido para workflow_settings.yaml
:
defaultProject: dataform-demos
defaultLocation: US
defaultDataset: dataform
defaultAssertionDataset: dataform_assertions
vars:
environmentName: "development"
A seguir
Para saber como migrar o pacote principal do Dataform para
workflow_settings.yaml
, consulte Gerencie o pacote principal do Dataform.Para saber mais sobre as configurações de projetos do Dataform, consulte Referência de
IProjectConfig
.