Tabel sementara dan tabel persisten membantu Anda merampingkan kueri, membuatnya lebih mudah dipahami dan dikelola. Dengan membuat hasil menengah yang dapat digunakan kembali, sekaligus memberi Anda opsi untuk tidak mengagregasi data sementara, Anda dapat mengurangi resource yang diperlukan untuk mengeksekusi kueri, sehingga meningkatkan performa.
Tabel yang dibuat tunduk pada pemeriksaan privasi statis, fungsi yang diizinkan, dan batasan penggabungan kolom yang sama yang diterapkan di seluruh Ads Data Hub. Pemeriksaan privasi standar berlaku saat data dari pernyataan SELECT
akhir dihasilkan ke BigQuery.
Untuk membuat tabel, ikuti sintaksis BigQuery:
CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
[OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;
Klausa berikut tidak didukung:
IF NOT EXISTS
PARTITION BY
CLUSTER BY
Tabel sementara
Tabel sementara (atau temp) meningkatkan keterbacaan kueri, dan memungkinkan Anda membuat hasil menengah yang tidak tunduk pada persyaratan agregasi atau perbedaan.
Tabel {i>temp<i}:
- Hanya ada di tingkat sesi, dan berakhir setelah eksekusi kueri
- Hanya dapat digunakan di dalam kueri tempatnya dibuat
- Tidak tunduk pada persyaratan privasi agregasi atau diferensial
- Mendukung namespace
tmp
opsional
Untuk membuat tabel sementara, gunakan pernyataan CREATE TEMP TABLE
. Contoh ini membuat tabel sementara untuk menyimpan hasil kueri, lalu menggunakan tabel sementara dalam subkueri:
-- 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;
Tabel persisten
Jika perlu membuat tabel perantara untuk digunakan dalam kueri lain, Anda dapat
membuat tabel persisten. Sintaksisnya sama seperti tabel sementara,
tanpa klausa TEMP
. Tabel persisten sudah difilter, yang berarti pemeriksaan agregasi tidak diterapkan, dan berlangsung selama 72 jam. Jika tabel dengan nama yang dipilih sudah ada, tabel tersebut akan ditimpa.
Tabel persisten:
- Berakhir setelah 72 jam
- Dapat digunakan di luar kueri yang membuatnya
- Tunduk pada persyaratan agregasi
- Wajibkan namespace
tmp
hanya saat mengakses tabel dari kueri yang lebih baru
Untuk membuat tabel persisten, gunakan pernyataan CREATE TABLE
. Contoh ini membuat tabel persisten untuk menyimpan hasil kueri, lalu menggunakan tabel persisten dalam kueri berikutnya:
Kueri 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
);
Kueri 2
-- Return creatives which had more than 100 impressions
SELECT
creative_id,
COUNT(*) AS imps
FROM
tmp.creative_list
WHERE
imps > 100;
Menerapkan pemeriksaan privasi
Ads Data Hub juga mendukung sintaksis SQL untuk membuat tabel hasil perantara yang dikenai pemeriksaan privasi.
Untuk membuat tabel yang tunduk pada pemeriksaan privasi, tambahkan klausa OPTIONS
ke kueri Anda:
OPTIONS(privacy_checked_export=true)
Contoh ini membuat tabel sementara tingkat sesi dan menerapkan pemeriksaan privasi:
-- 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
);
Contoh ini membuat tabel persisten, menerapkan pemeriksaan privasi, dan mengekspornya ke project Google Cloud Anda:
-- 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
);
Mengekspor beberapa tabel menggunakan satu kueri
Ads Data Hub mendukung sintaksis SQL yang fleksibel untuk mengekspor tabel hasil yang terlihat jika satu tabel per kueri tidak cukup. Tabel ini tunduk pada pemeriksaan privasi yang sama yang diberlakukan di seluruh Ads Data Hub.
Sintaksis untuk mengekspor tabel bersama dengan ekspresi SQL utama adalah:
CREATE TABLE <project_name.dataset_name.table_name>
OPTIONS(privacy_checked_export=true) AS query_statement;
Misalnya, untuk mengekspor tabel ke tujuan BigQuery myproject.mydataset.mytable
yang berisi jumlah baris untuk setiap ID kampanye dari tabel 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;
Tabel juga dapat dirujuk dalam kueri yang sama tempat tabel tersebut dibuat. Misalnya, kueri:
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`;
menghasilkan dua tabel:
- Satu pada
myproject.mydataset.mytable
, dengan kolomcampaign_id
danct
- Satu di lokasi yang ditentukan di kolom Tabel tujuan pada argumen
tugas, dengan kolom
ct
Anda juga dapat menambahkan ringkasan baris yang difilter ke tabel tersebut. Baca tentang ringkasan baris yang difilter.