Este documento mostra como configurar outras configurações de tabela em um arquivo de definição de tabela. Com o núcleo do Dataform, é possível definir pre_operations
e post_operations
para executar uma instrução SQL antes ou depois da criação da tabela. Também é possível substituir as configurações da tabela, como database
ou schema
, e desativar a criação de tabelas.
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.
Funções exigidas
Para receber as permissões necessárias para configurar outras configurações de tabela,
peça ao administrador que conceda a você o papel do IAM
Editor de formulário de dados (roles/dataform.editor
) nos espaços de trabalho.
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 por meio de papéis personalizados ou de outros papéis predefinidos.
Substituir as configurações da tabela
É possível substituir o esquema, o banco de dados e o nome de uma tabela selecionada.
Por padrão, uma tabela segue a configuração de esquema e banco de dados definida em
workflow_settings.yaml
. O nome de uma tabela é o mesmo do arquivo SQLX de definição de tabela.
Para substituir o esquema e o nome de uma tabela selecionada, siga estas etapas:
Acesse seu espaço de trabalho de desenvolvimento.
No painel Files, abra
definitions/
.Abra um arquivo de definição de tabela SQLX.
No bloco
config
, insira o seguinte snippet de código:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Substitua:
OVERRIDDEN_SCHEMA
: o conjunto de dados do BigQuery em que você quer criar a tabela.OVERRIDDEN_DATABASE
: o ID do projeto do BigQuery em que você quer criar a tabelaOVERRIDDEN_NAME
: o nome da tabela, diferente do nome do arquivo de definição da tabela SQLX
Opcional: clique em Formato.
Fazer referência a uma tabela com um nome substituído
- Para fazer referência a uma tabela com um nome substituído, na função
ref
, digite o nome da tabela substituído definido emname: ""
.
O exemplo de código a seguir faz referência a uma tabela com o nome substituído por
overridden_name
:
SELECT * FROM ${ref("overridden_name")}
Definir uma instrução SQL para ser executada antes da criação da tabela
É possível configurar o Dataform para executar uma ou mais instruções SQL
antes de criar uma tabela selecionada no BigQuery. Para executar uma instrução SQL antes que o Dataform crie uma tabela selecionada, adicione a instrução ao bloco pre_operations
no arquivo SQLX de definição da tabela.
Para criar uma instrução SQL personalizada executada antes que o Dataform crie uma tabela específica, siga estas etapas:
Acesse seu espaço de trabalho de desenvolvimento.
No painel Files, abra
definitions/
.Abra um arquivo de definição de tabela SQLX.
Fora do bloco
config
, digitepre_operations { ... }
.Em
pre_operations { ... }
, adicione sua instrução SQL.Opcional: para adicionar várias instruções, separe-as com
---
.Opcional: clique em Formato.
O exemplo de código abaixo mostra uma instrução pre_operations
que cria uma função temporária que pode ser usada na instrução SELECT:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
Definir uma instrução SQL para ser executada após a criação da tabela
É possível configurar o Dataform para executar uma ou mais instruções SQL
depois de criar uma tabela selecionada no BigQuery. Para executar uma instrução SQL
depois que o Dataform criar uma tabela selecionada, adicione a instrução ao
bloco post_operations
no arquivo SQLX de definição de tabela. É possível adicionar
várias instruções SQL ao bloco post_operations
.
Para criar uma instrução SQL personalizada executada depois que o Dataform cria uma tabela específica, siga estas etapas:
Acesse seu espaço de trabalho de desenvolvimento.
No painel Files, abra
definitions/
.Abra um arquivo de definição de tabela SQLX.
Fora do bloco
config
, digitepost_operations { ... }
.Em
post_operations { ... }
, adicione sua instrução SQL.Opcional: clique em Formato.
O exemplo de código a seguir mostra instruções post_operations
que concedem acesso
a grupos à tabela criada:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Desativar a criação de tabelas
Para impedir que o Dataform crie uma tabela selecionada no BigQuery, desative a tabela no arquivo de definição de tabela SQLX. O Dataform mantém uma tabela desativada no gráfico de dependência, mas não a compila nem a cria. Isso pode ser útil, por exemplo, se uma tabela falhar e você não quiser que todo o fluxo de trabalho falhe enquanto corrige o problema.
Para desativar uma tabela, siga estas etapas:
Acesse seu espaço de trabalho de desenvolvimento.
No painel Files, abra
definitions/
.Selecione um arquivo de definição de tabela SQLX.
No bloco
config
do arquivo, digitedisabled: true
.Opcional: clique em Formato.
O exemplo de código a seguir mostra uma tabela desativada:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
A seguir
Para saber como definir as configurações do Dataform em
workflow_settings.yaml
, consulte Configurar as configurações do Dataform.Para saber como testar dados de tabelas com declarações, consulte Testar tabelas com declarações.
Para saber como reutilizar código com inclusões, consulte Reutilizar código em um único repositório com inclusões.
Para saber como acionar execuções manualmente, consulte Acionar execução.