Definir outras configurações da tabela

Neste documento, mostramos como definir outras configurações em um arquivo de definição de tabela. Com o Dataform Core, você pode definir pre_operations e post_operations para executar uma instrução SQL antes ou depois da criação da tabela. Você também pode substituir as configurações da tabela, como database ou schema, e desativar a criação de tabelas.

Antes de começar

  1. No Console do Google Cloud, acesse a página Dataform.

    Acessar o Dataform

  2. Selecione ou crie um repositório.

  3. Selecione ou crie um espaço de trabalho de desenvolvimento.

  4. Criar uma tabela.

Funções exigidas

Para receber as permissões necessárias para definir outras configurações de tabela, peça ao administrador para conceder a você o papel do IAM de Editor do Dataform (roles/dataform.editor) nos espaços de trabalho. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Substituir 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 o esquema e a configuração do banco de dados definidos 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:

  1. Acesse seu espaço de trabalho de desenvolvimento.

  2. No painel Files, expanda definitions/.

  3. Abra um arquivo de definição da tabela SQLX.

  4. 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 tabela.

    • OVERRIDDEN_NAME: o nome da tabela, diferente do nome de arquivo de definição da tabela SQLX.

  5. Opcional: clique em Formatar.

Referenciar uma tabela com um nome de tabela substituído

  • Para fazer referência a uma tabela com um nome de tabela substituído, na função ref, insira o nome modificado definido em name: "".

O exemplo de código a seguir faz referência a uma tabela com nome substituído por overridden_name:

  SELECT * FROM ${ref("overridden_name")}

Defina uma instrução SQL a ser executada antes da criação da tabela

Configure 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:

  1. Acesse seu espaço de trabalho de desenvolvimento.

  2. No painel Files, expanda definitions/.

  3. Abra um arquivo de definição da tabela SQLX.

  4. Fora do bloco config, digite pre_operations { ... }.

  5. Em pre_operations { ... }, adicione sua instrução SQL.

  6. Opcional: para adicionar várias instruções, separe-as com ---.

  7. Opcional: clique em Formatar.

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 SELECT:

  pre_operations {
    CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
      RETURNS FLOAT64
      AS ((x + 4) / y);
  }

Defina uma instrução SQL a ser executada após a criação da tabela

Configure 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 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 criar uma tabela específica, siga estas etapas:

  1. Acesse seu espaço de trabalho de desenvolvimento.

  2. No painel Files, expanda definitions/.

  3. Abra um arquivo de definição da tabela SQLX.

  4. Fora do bloco config, digite post_operations { ... }.

  5. Em post_operations { ... }, adicione sua instrução SQL.

  6. Opcional: clique em Formatar.

O exemplo de código a seguir mostra instruções post_operations que concedem a grupos acesso à 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 essa tabela no arquivo SQLX de definição de tabela. 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 você corrige o problema.

Para desativar uma tabela, siga estas etapas:

  1. Acesse seu espaço de trabalho de desenvolvimento.

  2. No painel Files, expanda definitions/.

  3. Selecione um arquivo de definição da tabela SQLX.

  4. No bloco config do arquivo, digite disabled: true.

  5. Opcional: clique em Formatar.

O exemplo de código a seguir mostra uma tabela desativada:

  config {
    type: "table",
    disabled: true
  }

  select * from ${ref("source_data")}

A seguir