Membuat tabel

Tabel sementara dan tabel persisten membantu Anda menyederhanakan kueri, sehingga lebih mudah dipahami dan dikelola. Dengan membuat perantara hasil penelusuran yang dapat digunakan kembali, sekaligus memberi Anda opsi untuk menyimpan data terpisah, Anda dapat mengurangi sumber daya yang diperlukan untuk mengeksekusi kueri, peningkatan performa.

Tabel yang dibuat tunduk pada pemeriksaan privasi, fungsi yang diizinkan, dan batasan bergabung kolom diberlakukan di seluruh Ads Data Hub. Pemeriksaan privasi standar berlaku saat data dari pernyataan SELECT akhir adalah output ke BigQuery.

Untuk membuat tabel, ikuti {i>syntax<i} BigQuery:

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

Klausa ini tidak didukung:

  • IF NOT EXISTS
  • PARTITION BY
  • CLUSTER BY

Tabel sementara

Tabel sementara (atau temp) meningkatkan keterbacaan kueri, dan memungkinkan untuk membuat hasil menengah yang tidak mengalami agregasi atau perbedaan lainnya.

{i>Temp tables<i} (Tabel {i>temp<i}):

  • Hanya ada di tingkat sesi, dan berakhir setelah kueri dieksekusi
  • Hanya dapat digunakan di dalam kueri tempat kueri dibuat
  • Tidak tunduk kepada persyaratan privasi agregasi atau diferensial
  • Mendukung namespace tmp opsional

Untuk membuat tabel sementara, gunakan pernyataan CREATE TEMP TABLE. Contoh ini membuat tabel {i>temp<i} untuk menyimpan hasil kueri, lalu menggunakan tabel {i>temp<i} dalam sub kueri:

-- 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 Anda perlu membuat tabel perantara untuk digunakan dalam kueri lain, Anda bisa membuat tabel persisten. Sintaksnya sama seperti untuk tabel {i>temp<i}, tanpa klausa TEMP. Tabel persisten telah difilter sebelumnya, yang berarti agregasi pemeriksaan tidak diterapkan, dan berlangsung selama 72 jam. Jika tabel dengan nama yang dipilih sudah ada, akan ditimpa.

{i>Persistent tables<i} (Tabel persisten):

  • Berakhir setelah 72 jam
  • Dapat digunakan di luar kueri yang membuatnya
  • Tunduk kepada persyaratan agregasi
  • Perlu namespace tmp hanya saat mengakses tabel dari kueri berikutnya

Untuk membuat tabel persisten, gunakan pernyataan CREATE TABLE. Contoh ini membuat tabel persisten untuk menyimpan hasil kueri, lalu menggunakan metode 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 menengah yang tunduk kepada 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 hasil terlihat tabel dalam kasus di mana satu tabel per kueri tidak cukup. Tabel ini tunduk pada pemeriksaan privasi yang sama diberlakukan di seluruh Ads Data Hub.

Sintaksis untuk mengekspor tabel bersama 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 kampanye ID 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 di mana tabel itu 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 di myproject.mydataset.mytable, dengan kolom campaign_id dan ct
  • Satu di lokasi yang ditentukan di kolom Tabel tujuan tugas argumen, dengan kolom ct

Anda juga dapat menambahkan ringkasan baris yang difilter ke tabel ini. Baca tentang ringkasan baris yang difilter.