ตารางชั่วคราวและตารางถาวรช่วยคุณปรับปรุงการค้นหาให้เข้าใจและดูแลรักษาได้ง่ายขึ้น การสร้างผลลัพธ์ขั้นกลางที่คุณนํามาใช้ซ้ำได้ พร้อมกับให้ตัวเลือกในการไม่รวมข้อมูลชั่วคราวไว้ จะช่วยให้คุณลดทรัพยากรที่จําเป็นในการแสดงคําค้นหาได้ ซึ่งจะปรับปรุงประสิทธิภาพ
ตารางที่สร้างจะขึ้นอยู่กับการตรวจสอบความเป็นส่วนตัวแบบคงที่ ฟังก์ชันที่อนุญาต และข้อจํากัดการรวมช่องแบบคงที่เดียวกันซึ่งบังคับใช้ทั่วทั้ง 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
ตารางชั่วคราว
ตารางชั่วคราว (หรือชั่วคราว) ช่วยปรับปรุงความอ่านง่ายของข้อความค้นหา และช่วยให้คุณสร้างผลลัพธ์ขั้นกลางที่ไม่อยู่ภายใต้ข้อกำหนดการรวมหรือความแตกต่าง
ตารางชั่วคราว
- มีอยู่ในระดับเซสชันเท่านั้นและจะหมดอายุหลังจากการเรียกใช้การค้นหา
- ใช้ได้เฉพาะภายในคําค้นหาที่สร้าง
- ไม่ได้อยู่ภายใต้ข้อกําหนดการรวมข้อมูลหรือความเป็นส่วนตัวแบบมีความแตกต่าง
- รองรับเนมสเปซ
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
);
ส่งออกหลายตารางโดยใช้การค้นหารายการเดียว
ฮับข้อมูลในบริบทโฆษณารองรับไวยากรณ์ 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`;
แสดงผล 2 ตาราง ดังนี้
- รายการที่ 1 ที่
myproject.mydataset.mytable
ซึ่งมีคอลัมน์campaign_id
และct
- 1 รายการที่ตำแหน่งที่ระบุในช่องตารางปลายทางของอาร์กิวเมนต์งาน โดยมีคอลัมน์
ct
นอกจากนี้ คุณยังเพิ่มข้อมูลสรุปแถวที่กรองแล้วลงในตารางเหล่านี้ได้ด้วย อ่านเกี่ยวกับสรุปแถวที่กรอง