Este documento mostra como definir configurações de tabela adicionais em um arquivo de definição de tabela. Com o núcleo do Dataform, você pode definir pre_operations
e post_operations
para executar uma instrução SQL antes ou depois da criação da tabela. Também é possível modificar 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 do Dataform.
Selecione ou crie um repositório.
Selecione ou crie um espaço de trabalho de desenvolvimento.
Funções exigidas
Para conseguir as permissões necessárias para definir outras configurações da tabela,
peça ao administrador que conceda a você o papel de
Editor do Dataform (roles/dataform.editor
) nos espaços de trabalho.
Para obter mais informações sobre como conceder papéis, consulte
Gerenciar o acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Modificar as configurações da tabela
É possível modificar 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 dataform.json
. O nome de uma tabela é igual ao nome do arquivo SQLX de definição de tabela.
Para modificar o esquema e o nome de uma tabela selecionada, siga estas etapas:
Acesse seu espaço de trabalho de desenvolvimento.
No painel Files, expanda
definitions/
.Abra um arquivo de definição de tabela do SQLX.
No bloco
config
, insira o snippet de código a seguir:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Substitua
OVERRIDDEN_SCHEMA
pelo conjunto de dados do BigQuery em que você quer criar a tabela.Substitua
OVERRIDDEN_DATABASE
pelo ID do projeto do BigQuery em que você quer criar a tabela.Substitua
OVERRIDDEN_NAME
pelo nome da tabela, diferente do nome de arquivo de definição de tabela do SQLX.
Fazer referência a uma tabela com um nome modificado
- Para fazer referência a uma tabela com um nome modificado, na função
ref
, insira o nome definido emname: ""
.
A exemplo de código a seguir faz referência a uma tabela com nome substituído por overridden_name
:
SELECT * FROM ${ref("overridden_name")}
Definir uma instrução SQL a 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 sua instrução ao bloco pre_operations
no arquivo SQLX de definição de 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, expanda
definitions/
.Abra um arquivo de definição de tabela do SQLX.
Fora do bloco
config
, digitepre_operations { ... }
.Dentro de
pre_operations { ... }
, adicione sua instrução SQL.Opcional: para adicionar várias instruções, separe-as com
---
.
O exemplo de código a seguir mostra uma instrução pre_operations
que cria uma
função temporária que pode ser usada na instrução de seleção:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
Definir uma instrução SQL a 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 após o Dataform criar uma tabela selecionada, adicione sua 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, expanda
definitions/
.Abra um arquivo de definição de tabela do SQLX.
Fora do bloco
config
, digitepost_operations { ... }
.Dentro de
post_operations { ... }
, adicione sua instrução SQL.
A exemplo de código a seguir mostra instruções post_operations
que concedem acesso a grupos à tabela criada:
post_operations {
GRANT SELECT ON ${self()} TO GROUP "allusers@example.com";
GRANT SELECT ON ${self()} TO GROUP "otherusers@example.com";
}
Desativar a criação de tabelas
Para impedir que o Dataform crie uma tabela selecionada no BigQuery, desative-a no arquivo de definição de tabela SQLX. O Dataform mantém uma tabela desativada no gráfico de dependências, mas não a compila nem 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, expanda
definitions/
.Selecione um arquivo de definição de tabela SQLX.
No bloco
config
do arquivo, digitedisabled: true
.
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
dataform.json
, consulte Definir as configurações do Dataform.Para saber como validar dados de tabelas com declarações, consulte Validar tabelas com declarações.
Para saber como reutilizar o código com inclusões, consulte Reutilizar variáveis e funções com inclusões.
Para saber como acionar execuções manualmente, consulte Acionar execução.