Dočasné a trvalé tabulky pomáhají zjednodušovat dotazy a usnadňují jejich pochopení a aktuálnost. Vytvořením průběžných výsledků, které se dají opakovaně využít a zároveň umožňují ponechat dočasná data neagregovaná, můžete ušetřit prostředky potřebné k provádění dotazů a zlepšit výkon.
Na vytvořené tabulky se vztahují stejné statické
kontroly ochrany soukromí,
povolené funkce
a omezení spojování polí,
která se používají všude v Ads Data Hub. Standardní kontroly ochrany soukromí se provádějí, když údaje
ze závěrečného SELECT
příkazu vystupují do BigQuery.
Při vytváření tabulek se řiďte syntaxí BigQuery:
CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
[OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;
Tyto klauzule nejsou podporovány:
IF NOT EXISTS
PARTITION BY
CLUSTER BY
Dočasné tabulky
Dočasné tabulky zlepšují čitelnost dotazu a umožňují vytvářet průběžné výsledky, které nepodléhají požadavkům na agregaci nebo rozdíly.
Dočasné tabulky:
- Vyskytují se pouze na úrovni relace a jejich platnost vyprší po spuštění dotazu.
- Dají se využít pouze v dotazu, ve kterém byly vytvořeny.
- Nepodléhají požadavkům na agregaci nebo diferenční ochranu soukromí.
- Podporují nepovinný jmenný prostor
tmp
.
Dočasnou tabulku vytvoříte příkazem CREATE TEMP TABLE
. Na tomto příkladu vidíte, jak se vytvoří dočasná tabulka pro uložení výsledků dotazu a jak se potom využije u dílčího dotazu:
-- 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;
Trvalé tabulky
Pokud potřebujete vytvořit pomocnou tabulku, kterou byste mohli použít v dalších dotazech, můžete vytvořit trvalou tabulku. Syntaxe je stejná jako u dočasných tabulek bez klauzule TEMP
. Trvalé tabulky jsou předběžně filtrované, takže nejsou potřeba agregační kontroly, a vydrží 72 hodin. Pokud už tabulka s vybraným názvem existuje, bude přepsána.
Trvalé tabulky:
- Mají platnost 72 hodin.
- Dají se použít mimo dotaz, který vedl k jejich vytvoření.
- Podléhají požadavkům na agregaci.
- Požadují jmenný prostor
tmp
pouze při přístupu k tabulce z pozdějšího dotazu.
Trvalou tabulku vytvoříte příkazem CREATE TABLE
. Na tomto příkladu vidíte, jak se vytvoří trvalá tabulka pro uložení výsledků dotazu a jak se potom využije u pozdějšího dotazu:
Dotaz 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
);
Dotaz 2
-- Return creatives which had more than 100 impressions
SELECT
creative_id,
COUNT(*) AS imps
FROM
tmp.creative_list
WHERE
imps > 100;
Kontrolovat ochranu soukromí
Ads Data Hub také podporuje syntaxi SQL pro vytváření dočasných tabulek výsledků, které podléhají kontrolám ochrany soukromí.
Když chcete vytvořit tabulku podléhající kontrolám ochrany soukromí, přidejte do dotazu klauzuli OPTIONS
:
OPTIONS(privacy_checked_export=true)
Na tomto příkladu vidíte, jak se vytvoří dočasná tabulka na úrovni relace a zapne se kontrola ochrany soukromí:
-- 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
);
Na tomto příkladu vidíte, jak se vytvoří trvalá tabulka, zapne se kontrola ochrany soukromí a tabulka se exportuje do cloudového projektu Google.
-- 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
);
Export více tabulek pomocí jednoho dotazu
Pro případ, že nestačí jedna tabulka na dotaz, podporuje služba Ads Data Hub flexibilní syntaxi jazyka SQL umožňující exportovat tabulky výsledků, které je možno prohlížet. Na tyto tabulky se vztahují stejné kontroly ochrany soukromí, jaké se uplatňují všude ve službě Ads Data Hub.
K exportu tabulky vedle hlavního výrazu jazyka SQL se používá tato syntaxe:
CREATE TABLE <project_name.dataset_name.table_name>
OPTIONS(privacy_checked_export=true) AS query_statement;
Níže je uveden příklad příkazu, kterým do umístění myproject.mydataset.mytable
v BigQuery exportujete tabulku obsahující počet řádků pro jednotlivá ID kampaní v tabulce 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;
Na tabulky se lze odkazovat i ve stejném dotazu, v němž jsou vytvořeny. Například výstupem dotazu:
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`;
vzniknou dvě tabulky:
- Jedna v
myproject.mydataset.mytable
se sloupcicampaign_id
act
- Druhá obsahující sloupec
ct
, v umístění uvedeném v poli Cílová tabulka zadaném v argumentech úlohy
Do těchto tabulek je také možno přidat souhrn odfiltrovaných řádků. Přečtěte si o souhrnech filtrovaných řádků.