สร้างตาราง

ตารางชั่วคราวและตารางถาวรช่วยปรับปรุงประสิทธิภาพการค้นหา ซึ่งช่วยให้เข้าใจและดูแลรักษาได้ง่ายขึ้น การสร้างผลลัพธ์กลางที่คุณสามารถนํากลับมาใช้ซ้ำได้ ในขณะเดียวกันก็ให้ตัวเลือกในการเก็บข้อมูลชั่วคราวที่ไม่มีการสรุปรวม เพื่อช่วยลดทรัพยากรที่ต้องใช้ในการดำเนินการค้นหา ซึ่งจะปรับปรุงประสิทธิภาพได้

ตารางที่สร้างขึ้นอยู่ภายใต้การตรวจสอบความเป็นส่วนตัวแบบคงที่ ฟังก์ชันที่อนุญาต และข้อจํากัดการผนวกช่องเดียวกันที่บังคับใช้ทั่วทั้ง Ads Data Hub การตรวจสอบความเป็นส่วนตัวแบบมาตรฐานจะมีผลเมื่อข้อมูลจากคำสั่ง SELECT สุดท้ายส่งออกไปยัง BigQuery

หากต้องการสร้างตาราง ให้ทำตามไวยากรณ์ BigQuery ดังนี้

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

ระบบจะไม่รองรับข้อความต่อไปนี้

  • IF NOT EXISTS
  • PARTITION BY
  • CLUSTER BY

ตารางชั่วคราว

ตารางชั่วคราว (หรือชั่วคราว) จะช่วยให้อ่านคำค้นหาได้ง่ายขึ้น และช่วยให้คุณสร้างผลลัพธ์ขั้นกลางที่ไม่ขึ้นอยู่กับข้อกำหนดการรวมหรือความแตกต่าง

ตารางอุณหภูมิ:

  • มีอยู่ที่ระดับเซสชันเท่านั้น และจะหมดอายุหลังจากดำเนินการค้นหา
  • สามารถใช้ภายในการค้นหาที่สร้างข้อความค้นหานั้นเท่านั้น
  • ไม่อยู่ภายใต้ข้อกําหนดของการรวมหรือ Differential Privacy
  • รองรับเนมสเปซ tmp ที่ไม่บังคับ

หากต้องการสร้างตารางชั่วคราว ให้ใช้คำสั่ง CREATE TEMP TABLE ตัวอย่างนี้จะสร้างตารางชั่วคราวเพื่อเก็บผลลัพธ์ของคำค้นหา จากนั้นใช้ตารางชั่วคราวในคำค้นหาย่อย

-- 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;

ตารางถาวร

หากต้องการสร้างตารางข้อมูลชั่วคราวเพื่อใช้ในคำค้นหาอื่นๆ ให้สร้างตารางถาวร ไวยากรณ์จะเหมือนกับตารางชั่วคราว โดยไม่มีอนุประโยค TEMP ตารางถาวรจะมีการกรองไว้ล่วงหน้า ซึ่งหมายความว่าจะไม่มีการใช้การตรวจสอบการรวมและจะใช้เวลา 72 ชั่วโมง หากมีตารางที่มีชื่อที่เลือกไว้อยู่แล้ว ตารางจะถูกเขียนทับ

ตารางถาวร:

  • หมดอายุหลังจากผ่านไป 72 ชั่วโมง
  • ใช้นอกการค้นหาที่สร้างการค้นหาได้
  • อยู่ภายใต้ข้อกําหนดในการรวม
  • ต้องใช้เนมสเปซ tmp เมื่อเข้าถึงตารางจากคำค้นหาในภายหลังเท่านั้น

หากต้องการสร้างตารางถาวร ให้ใช้คำสั่ง CREATE TABLE ตัวอย่างนี้จะสร้างตารางถาวรเพื่อเก็บผลลัพธ์ของคำค้นหา จากนั้นจึงใช้ตารางถาวรในการค้นหาในภายหลัง

คำค้นหา 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
);

คำค้นหา 2

-- Return creatives which had more than 100 impressions
SELECT
  creative_id,
  COUNT(*) AS imps
FROM
  tmp.creative_list
WHERE
  imps > 100;

ใช้การตรวจสอบด้านความเป็นส่วนตัว

นอกจากนี้ Ads Data Hub ยังรองรับไวยากรณ์ SQL เพื่อสร้างตารางผลลัพธ์ระดับกลางที่ต้องมีการตรวจสอบความเป็นส่วนตัว

หากต้องการสร้างตารางที่ต้องมีการตรวจสอบความเป็นส่วนตัว ให้เพิ่มอนุประโยค OPTIONS ลงในการค้นหา ดังนี้

OPTIONS(privacy_checked_export=true)

ตัวอย่างนี้สร้างตารางชั่วคราวระดับเซสชันและใช้การตรวจสอบด้านความเป็นส่วนตัว

-- 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
);

ตัวอย่างนี้สร้างตารางถาวร ใช้การตรวจสอบความเป็นส่วนตัว และส่งออกตารางไปยังโปรเจ็กต์ 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
);

ส่งออกหลายตารางโดยใช้การค้นหาเดียว

Ads Data Hub รองรับไวยากรณ์ SQL ที่ยืดหยุ่นเพื่อส่งออกตารางผลลัพธ์ที่ดูได้ในกรณีที่ 1 ตารางต่อการค้นหานั้นไม่เพียงพอ ตารางเหล่านี้อยู่ภายใต้การตรวจสอบด้านความเป็นส่วนตัวเดียวกันที่บังคับใช้ทั่วทั้ง Ads Data Hub

ไวยากรณ์สำหรับการส่งออกตารางควบคู่ไปกับนิพจน์ SQL หลักคือ


CREATE TABLE <project_name.dataset_name.table_name>
  OPTIONS(privacy_checked_export=true) AS query_statement;

เช่น หากต้องการส่งออกตารางไปยังปลายทาง BigQuery myproject.mydataset.mytable ซึ่งประกอบด้วยจำนวนแถวสำหรับรหัสแคมเปญแต่ละรายการจากตาราง 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;

และอาจมีการอ้างอิงตารางในคำค้นหาเดียวกันกับที่สร้างตารางเหล่านั้นด้วย ตัวอย่างเช่น ข้อความค้นหา


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`;

จะเอาต์พุตสองตาราง:

  • ครั้งที่ myproject.mydataset.mytable พร้อมคอลัมน์ campaign_id และ ct
  • ตำแหน่งหนึ่งในตำแหน่งที่ระบุในช่องตารางปลายทางของอาร์กิวเมนต์งาน พร้อมด้วยคอลัมน์ ct

คุณสามารถเพิ่มสรุปแถวที่กรองในตารางเหล่านี้ได้ด้วย อ่านเกี่ยวกับสรุปแถวที่กรอง