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 colunascampaign_id
ect
- 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.