Definir as configurações do fluxo de trabalho do Dataform

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, as configurações de fluxo de trabalho são armazenadas no arquivo workflow_settings.yaml. 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 definir as configurações do Dataform.

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 nome dataform 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, chamados dataform_assertions por padrão.

Para mais informações sobre as propriedades workflow_settings.yaml, consulte referência de configurações para as configurações do 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, que têm o nome dataform 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.
  • assertionSchema: o conjunto de dados do BigQuery em que O Dataform cria visualizações com resultados de declaração, chamados dataform_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

  1. Crie um repositório.

  2. Crie e inicialize um espaço de trabalho de desenvolvimento no seu repositório.

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

  1. No espaço de trabalho de desenvolvimento, no painel Arquivos, clique em o arquivo workflow_settings.yaml.

  2. 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

  1. No espaço de trabalho de desenvolvimento, no painel Arquivos, clique em o arquivo dataform.json.

  2. 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

  1. Acesse seu espaço de trabalho de desenvolvimento do Dataform.
  2. No painel Files, selecione o arquivo workflow_settings.yaml.
  3. 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

  1. Acesse seu espaço de trabalho de desenvolvimento do Dataform.
  2. No painel Files, selecione o arquivo dataform.json.
  3. 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:

  1. Acesse seu espaço de trabalho de desenvolvimento do Dataform.
  2. No painel Arquivos, selecione um arquivo de definição de tabela SQLX.
  3. 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.

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!"
  )}

A seguir