Mit temporären Tabellen und persistenten Tabellen können Sie Abfragen optimieren, sodass sie verständlicher und leichter zu verwalten sind. Da Zwischenergebnisse erstellt werden, die sich wiederverwenden lassen, müssen die temporären Daten nicht aggregiert werden. Dadurch sind weniger Ressourcen für das Ausführen von Abfragen erforderlich, was sich wiederum positiv auf die Leistung auswirkt.
Die erstellten Tabellen unterliegen den statischen Datenschutzprüfungen, zulässigen Funktionen und Einschränkungen für verknüpfte Felder, die generell in Ads Data Hub gelten. Wenn die Daten aus der abschließenden SELECT
-Anweisung in BigQuery ausgegeben werden, gelten die standardmäßigen Datenschutzprüfungen.
Folgen Sie der BigQuery-Syntax, um Tabellen zu erstellen:
CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
[OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;
Folgende Anweisungen werden nicht unterstützt:
IF NOT EXISTS
PARTITION BY
CLUSTER BY
Temporäre Tabellen
Temporäre Tabellen (auch Temp-Tabellen genannt) verbessern die Verständlichkeit von Abfragen und ermöglichen das Erstellen von Zwischenergebnissen, die nicht den Aggregations- oder Differential Privacy-Anforderungen unterliegen.
Temporäre Tabellen…
- existieren nur auf Sitzungsebene und werden nach dem Ausführen der Abfrage gelöscht.
- können nur in der Abfrage verwendet werden, in der sie erstellt wurden.
- unterliegen nicht den Aggregations- oder Differential Privacy-Anforderungen.
- unterstützen den optionalen
tmp
-Namespace.
Verwenden Sie die CREATE TEMP TABLE
-Anweisung, um eine temporäre Tabelle zu erstellen. Im folgenden Beispiel wird eine temporäre Tabelle erstellt, um die Ergebnisse einer Abfrage zu speichern. Dann wird die temporäre Tabelle in einer Unterabfrage verwendet.
-- 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;
Persistente Tabellen
Wenn Sie eine Zwischentabelle benötigen, um sie in anderen Abfragen zu verwenden, können Sie eine persistente Tabelle erstellen. Die Syntax entspricht der für temporäre Tabellen, allerdings ohne die TEMP
-Anweisung. Da persistente Tabellen bereits gefiltert sind, sind keine Aggregationsprüfungen erforderlich. Sie können 72 Stunden lang verwendet werden. Ist bereits eine Tabelle mit dem ausgewählten Namen vorhanden, wird sie überschrieben.
Persistente Tabellen…
- haben eine Lebensdauer von 72 Stunden.
- können außerhalb der Abfrage verwendet werden, in der sie erstellt wurden.
- unterliegen Aggregationsanforderungen.
- erfordern den
tmp
-Namespace nur dann, wenn über eine spätere Abfrage auf die Tabelle zugegriffen wird.
Verwenden Sie die CREATE TABLE
-Anweisung, um eine persistente Tabelle zu erstellen. Im folgenden Beispiel wird eine persistente Tabelle erstellt, um die Ergebnisse einer Abfrage zu speichern. Dann wird die persistente Tabelle in einer späteren Abfrage verwendet.
Abfrage 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
);
Abfrage 2
-- Return creatives which had more than 100 impressions
SELECT
creative_id,
COUNT(*) AS imps
FROM
tmp.creative_list
WHERE
imps > 100;
Datenschutzprüfungen anwenden
Ads Data Hub unterstützt auch eine SQL-Syntax zum Erstellen von Zwischenergebnistabellen, die Datenschutzprüfungen unterliegen.
Um eine Tabelle, die Datenschutzprüfungen unterliegt, zu erstellen, fügen Sie die OPTIONS
-Anweisung in Ihre Abfrage ein:
OPTIONS(privacy_checked_export=true)
In diesem Beispiel wird eine temporäre Tabelle auf Sitzungsebene erstellt, auf die Datenschutzprüfungen angewendet werden:
-- 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
);
In diesem Beispiel wird eine persistente Tabelle erstellt, auf die Datenschutzprüfungen angewendet werden und die dann in Ihr Google Cloud-Projekt exportiert wird:
-- 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
);
Mehrere Tabellen mit einer einzigen Abfrage exportieren
Ads Data Hub unterstützt eine flexible SQL-Syntax zum Exportieren sichtbarer Ergebnistabellen für Fälle, in denen eine Tabelle pro Abfrage nicht ausreicht. Diese Tabellen unterliegen den Datenschutzprüfungen, die generell in Ads Data Hub gelten.
Die Syntax für den Export einer Tabelle neben dem SQL-Hauptausdruck lautet:
CREATE TABLE <project_name.dataset_name.table_name>
OPTIONS(privacy_checked_export=true) AS query_statement;
So exportieren Sie beispielsweise eine Tabelle in das BigQuery-Ziel myproject.mydataset.mytable
, das die Anzahl der Zeilen für jede Kampagnen-ID aus der Tabelle adh.google_ads_impressions
enthält:
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;
Auf Tabellen kann auch in der Abfrage verwiesen werden, in der sie erstellt wurden. Hier ein Beispiel:
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`;
Bei dieser Abfrage werden zwei Tabellen ausgegeben:
- eine mit den Spalten
campaign_id
undct
untermyproject.mydataset.mytable
und - eine mit der Spalte
ct
an dem Ort, der im Feld Zieltabelle der Jobargumente angegeben ist
Sie können diesen Tabellen auch eine Zusammenfassung herausgefilterter Zeilen hinzufügen. Weitere Informationen