ตารางชั่วคราวและตารางถาวรช่วยให้คุณเพิ่มประสิทธิภาพ คำค้นหา ทำให้เข้าใจและบำรุงรักษาได้ง่ายขึ้น การสร้างผลลัพธ์ ระดับกลางที่นำกลับมาใช้ใหม่ได้ พร้อมทั้งให้ตัวเลือกในการเก็บข้อมูล ชั่วคราวแบบไม่รวมกลุ่มจะช่วยลดทรัพยากรที่จำเป็นในการเรียกใช้การค้นหา ซึ่งจะช่วยปรับปรุงประสิทธิภาพ
ตารางที่สร้างขึ้นจะอยู่ภายใต้การตรวจสอบความเป็นส่วนตัว
ฟังก์ชันที่อนุญาต
และ
ข้อจำกัดในการรวมฟิลด์
แบบคงที่เดียวกันซึ่งบังคับใช้ทั่วทั้ง 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 EXISTSPARTITION BYCLUSTER BY
ตารางชั่วคราว
ตารางชั่วคราว (หรือ temp) ช่วยปรับปรุงความสามารถในการอ่านคําค้นหา และช่วยให้คุณสร้างผลลัพธ์ระดับกลางซึ่งอาจรวมถึงข้อมูลที่ไม่ได้รวบรวม
ตารางชั่วคราว:
- มีเฉพาะในระดับเซสชันและจะหมดอายุหลังจากเรียกใช้คำค้นหา
- ใช้ได้เฉพาะภายในคําค้นหาที่สร้างขึ้น
- อาจจัดเก็บข้อมูลที่ยังไม่ได้รวบรวมซึ่งยังไม่ได้ใช้การตรวจสอบความเป็นส่วนตัว
- อ้างอิงตามชื่อโดยไม่ต้องระบุเนมสเปซ
หากต้องการสร้างตารางชั่วคราว ให้ใช้คำสั่ง 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
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
);
-- Return the total count of impressions in the table
SELECT
COUNT(*) AS imps
FROM
tmp.creative_list -- Alternative: creative_list
คำค้นหา 2
-- Return creatives which had more than 100 impressions
SELECT
creative_id,
COUNT(*) AS imps
FROM
tmp.creative_list
WHERE
imps > 100
GROUP BY
creative_id;
ใช้การตรวจสอบความเป็นส่วนตัว
นอกจากนี้ 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 project_name.dataset_name.creative_list` OPTIONS(privacy_checked_export=true) AS (
SELECT
adgroup_id,
advertiser_id,
creative_id
FROM
adh.dv360_youtube_impressions
);
ส่งออกหลายตารางโดยใช้การค้นหาเดียว
ฮับข้อมูลโฆษณารองรับไวยากรณ์ SQL ที่ยืดหยุ่นเพื่อส่งออกตารางผลลัพธ์ที่มองเห็นได้ ในกรณีที่ตาราง 1 ตารางต่อการค้นหาไม่เพียงพอ ตารางเหล่านี้ต้องผ่านการตรวจสอบความเป็นส่วนตัว เดียวกันซึ่งบังคับใช้ทั่วทั้งฮับข้อมูลโฆษณา
ไวยากรณ์สำหรับการส่งออกตารางควบคู่ไปกับนิพจน์ SQL หลักมีดังนี้
CREATE TABLE PROJECT_NAME.DATASET.TABLE_NAME
OPTIONS(privacy_checked_export=true) AS query_statement;
เช่น หากต้องการส่งออกตารางไปยังปลายทาง BigQuery
PROJECT_NAME.DATASET.TABLE_NAME ซึ่งมีจำนวนแถวของแต่ละแคมเปญ
ID จากตาราง adh.google_ads_impressions ให้ทำดังนี้
CREATE TABLE PROJECT_NAME.DATASET.TABLE_NAME
OPTIONS(privacy_checked_export=true) AS
SELECT campaign_id, COUNT(*) AS ct
FROM adh.google_ads_impressions
GROUP BY campaign_id;
ตัวอย่างต่อไปนี้จะขยายแนวคิดนี้และใช้การค้นหาเดียวกันเพื่อส่งออก 2 ตารางไปยัง BigQuery
CREATE TABLE PROJECT_NAME.DATASET.TABLE_NAME
OPTIONS(privacy_checked_export=true) AS
SELECT campaign_id, COUNT(*) AS ct
FROM adh.google_ads_impressions
GROUP BY campaign_id;
CREATE TABLE PROJECT_NAME.DATASET.TABLE_NAME_2
OPTIONS(privacy_checked_export=true) AS
SELECT advertiser_id, COUNT(*) AS ct
FROM adh.google_ads_impressions
GROUP BY advertiser_id;
นอกจากนี้ คุณยังอ้างอิงตารางในคำค้นหาเดียวกันกับที่สร้างตารางได้ด้วย ตัวอย่างเช่น การค้นหาต่อไปนี้จะแสดงตาราง 2 ตาราง
CREATE TABLE PROJECT_NAME.DATASET.TABLE_NAME
OPTIONS(privacy_checked_export=true) AS
SELECT campaign_id, COUNT(*) AS ct
FROM adh.google_ads_impressions
GROUP BY campaign_id;
SELECT ct FROM PROJECT_NAME.DATASET.TABLE_NAME;
- ระบบจะสร้างตารางแรกที่
PROJECT_NAME.DATASET.TABLE_NAMEโดยมีคอลัมน์campaign_idและct - ตารางที่ 2 จะสร้างขึ้นในตำแหน่งที่ระบุในฟิลด์ตารางปลายทางของอาร์กิวเมนต์ของงาน
โดยมีคอลัมน์
ct
การเพิ่มข้อมูลสรุปแถวที่กรอง
นอกจากนี้ คุณยังเพิ่มสรุปแถวที่กรองแล้วลงในตารางเหล่านี้ได้ด้วย อ่านเกี่ยวกับ ข้อมูลสรุปของแถวที่กรองแล้ว
การตั้งชื่อหลายตารางที่รันไทม์
เมื่อสร้างตารางหลายรายการในคำค้นหา คุณจะตั้งชื่อตารางได้ 2 วิธีดังนี้
- ตั้งชื่อตารางอย่างชัดเจนใน SQL โดยใช้รูปแบบ
PROJECT_NAME.DATASET.TABLE_NAME - ใช้พารามิเตอร์เป็นตัวยึดตำแหน่งใน SQL แล้วตั้งชื่อตารางที่รันไทม์
สร้างและอัปเดตตาราง BigQuery
ฮับข้อมูลโฆษณารองรับการใช้คำสั่ง BigQuery บางอย่างในสคริปต์โดยตรง
จึงทำให้แทรกแถวลงในตารางผลลัพธ์ที่มีอยู่ได้แทนที่จะ
สร้างตารางใหม่สำหรับทุกงาน คำสั่งเหล่านี้ต้องอ้างอิงเส้นทางตารางโดยตรงในโปรเจ็กต์ BigQuery และไม่สามารถเข้าถึงตารางหรือตัวเลือก Ads Data Hub ได้โดยตรง (เช่น privacy_checked_export)
ข้อความที่รองรับ
ตัวอย่างคำค้นหา
-- Compute new data for the current job. This table can be used with MERGE.
CREATE TEMP TABLE new_data OPTIONS(privacy_checked_export=TRUE) AS
SELECT
DATE(event_time, @time_zone) AS event_date,
<more grouping keys>,
COUNT(*) AS impressions,
<more metrics>
FROM ...
GROUP BY ALL;
-- Initialize a result table on the first run of the query, which may include
-- date partitioning and/or clustering for efficiency.
CREATE TABLE IF NOT EXISTS PROJECT_NAME.DATASET.TABLE_NAME (<columns>)
PARTITION BY event_date CLUSTER BY ...
OPTIONS(partition_expiration_days=365);
-- Atomically insert new results or update existing ones.
MERGE PROJECT_NAME.DATASET.TABLE_NAME a
USING new_data b ON a.data_date = b.data_date AND <more grouping keys>
WHEN MATCHED THEN
UPDATE SET a.impressions = b.impressions, <more metrics>
WHEN NOT MATCHED THEN
INSERT (<all columns>) VALUES(<all columns>);
โปรดทราบว่าคำสั่ง MERGE ไม่รองรับการแก้ไขสคีมาของตาราง หากต้องการเพิ่มหรือเปลี่ยนคอลัมน์ในตารางรายงานที่มีอยู่ คุณสามารถอัปเดตสคีมาตารางใน BigQuery ก่อนที่จะเรียกใช้ชื่องานในฮับข้อมูลโฆษณา หรือเรียกใช้ชื่องานฮับข้อมูลโฆษณาเพื่อคัดลอกตารางที่มีสคีมาและตัวเลือกที่อัปเดตแล้ว เช่น
CREATE OR REPLACE TABLE PROJECT_NAME.DATASET.TABLE_NAME
PARTITION BY event_date CLUSTER BY ... OPTIONS(...) AS
SELECT
<new columns>
FROM PROJECT_NAME.DATASET.TABLE_NAME;