Crie tabelas

As tabelas temporárias e as tabelas persistentes ajudam a simplificar as consultas, o que as torna mais fáceis de compreender e manter. Com a criação de resultados intermédios que pode reutilizar enquanto tem a opção de manter os dados temporários desagregados, pode reduzir os recursos necessários para executar consultas, o que melhora o desempenho.

As tabelas criadas estão sujeitas às mesmas verificações de privacidade, funções permitidas, e limitações de junção de campos estáticas aplicadas por todo o Ads Data Hub. As verificações de privacidade padrão aplicam-se quando os dados da declaração final SELECT são enviados para o BigQuery.

Siga a sintaxe do BigQuery para criar tabelas:

CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
 [OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;

Estas cláusulas não são suportadas:

  • IF NOT EXISTS
  • PARTITION BY
  • CLUSTER BY

Tabelas temporárias

As tabelas temporárias (ou temp) melhoram a legibilidade de consultas e permitem-lhe criar resultados intermédios que não estão sujeitos a requisitos de agregação ou diferenciais.

Tabelas temp:

  • Só existem ao nível da sessão e expiram após a execução da consulta
  • Só podem ser usadas dentro da consulta na qual foram criadas
  • Não estão sujeitas a requisitos de agregação ou de privacidade diferenciais
  • Suportam o espaço de nomes tmp opcional

Para criar uma tabela temporária, use a declaração CREATE TEMP TABLE. Este exemplo cria uma tabela temporária para armazenar os resultados de uma consulta e, em seguida, usa a tabela temporária numa subconsulta:

-- Get a list of creative IDs and store in a temporary table called creative_list:
CREATE TEMP TABLE creative_list AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);
-- Return creatives with a count of impressions greater than 100
SELECT
  creative_id,
  COUNT(*) AS imps
FROM
  creative_list -- Alternative: tmp.creative_list
WHERE
  imps > 100
GROUP BY
  creative_id;

Tabelas persistentes

Se precisar de criar uma tabela intermédia para usar noutras consultas, pode criar uma tabela persistente. A sintaxe é a mesma das tabelas temp, sem a cláusula TEMP. As tabelas persistentes são pré-filtradas, o que significa que as verificações de agregação não são aplicadas e duram 72 horas. Se já existir uma tabela com o nome selecionado, é substituída.

Tabelas persistentes:

  • Expiram após 72 horas
  • Podem ser usadas fora da consulta que as criou
  • Estão sujeitas a requisitos de agregação
  • Apenas necessitam do espaço de nomes tmp quando o acesso à tabela é feito através de uma consulta posterior

Para criar uma tabela persistente, use a declaração CREATE TABLE. Este exemplo cria uma tabela persistente para armazenar os resultados de uma consulta e, em seguida, usa a tabela persistente numa consulta posterior:

Consulta 1

-- Get a list of creative IDs and store in a persistent table called creative_list:
CREATE TABLE creative_list AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

Consulta 2

-- Return creatives which had more than 100 impressions
SELECT
  creative_id,
  COUNT(*) AS imps
FROM
  tmp.creative_list
WHERE
  imps > 100;

Aplique verificações de privacidade

O Ads Data Hub também suporta uma sintaxe SQL para criar tabelas de resultados intermédios sujeitas a verificações de privacidade.

Para criar uma tabela sujeita a verificações de privacidade, adicione a cláusula OPTIONS à sua consulta:

OPTIONS(privacy_checked_export=true)

Este exemplo cria uma tabela temporária ao nível da sessão e aplica verificações de privacidade:

-- Get a list of creative IDs and store in a temporary table called creative_list:
CREATE TEMP TABLE creative_list OPTIONS(privacy_checked_export=true) AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

Este exemplo cria uma tabela persistente, aplica verificações de privacidade e exporta-a para o seu projeto do Google Cloud:

-- Get a list of creative IDs and store in a persistent table called creative_list:
CREATE TABLE `myproject.mydataset.creative_list` OPTIONS(privacy_checked_export=true) AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

Exporte várias tabelas com uma única consulta

O Ads Data Hub suporta uma sintaxe SQL flexível para exportar tabelas de resultados visíveis nos casos em que uma tabela por consulta não é suficiente. Estas tabelas estão sujeitas às mesmas verificações de privacidade aplicadas ao Ads Data Hub.

A sintaxe para exportar uma tabela juntamente com a expressão SQL principal é:


CREATE TABLE <project_name.dataset_name.table_name>
  OPTIONS(privacy_checked_export=true) AS query_statement;

Por exemplo, para exportar uma tabela para o destino do BigQuery myproject.mydataset.mytable que contém uma quantidade de linhas para cada ID da campanha da tabela adh.google_ads_impressions:


CREATE TABLE `myproject.mydataset.mytable` OPTIONS(privacy_checked_export=true) AS
  SELECT campaign_id, COUNT(*) AS ct
  FROM adh.google_ads_impressions
  GROUP BY campaign_id;

As tabelas também podem ser referenciadas na mesma consulta na qual foram criadas. Por exemplo, a consulta:


CREATE TABLE `myproject.mydataset.mytable` OPTIONS(privacy_checked_export=true) AS
  SELECT campaign_id, COUNT(*) AS ct
  FROM adh.google_ads_impressions
  GROUP BY campaign_id;
SELECT ct FROM `myproject.mydataset.mytable`;

tem como resultado duas tabelas:

  • Uma em myproject.mydataset.mytable, com as colunas campaign_id e ct
  • Uma na localização especificada no campo Tabela de destino dos argumentos da tarefa, com a coluna ct

Também pode adicionar um resumo das linhas filtradas a estas tabelas. Leia sobre os resumos da linha filtrada.