Bảng tạm thời và bảng cố định giúp bạn đơn giản hoá các truy vấn, giúp bạn dễ hiểu và dễ duy trì hơn. Bằng cách tạo các kết quả trung gian mà bạn có thể sử dụng lại, đồng thời có thể giữ dữ liệu tạm thời không được tổng hợp, bạn có thể giảm số lượng tài nguyên cần thiết để thực thi các truy vấn, từ đó cải thiện hiệu suất.
Các bảng được tạo phải tuân thủ các quy trình kiểm tra quyền riêng tư, các hàm được phép và giới hạn kết hợp trường tĩnh tương tự được thực thi trong toàn bộ Ads Data Hub. Các quy trình kiểm tra quyền riêng tư tiêu chuẩn sẽ được áp dụng khi dữ liệu từ câu lệnh SELECT
cuối cùng được xuất sang BigQuery.
Để tạo bảng, hãy làm theo cú pháp BigQuery:
CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
[OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;
Các mệnh đề sau đây không được hỗ trợ:
IF NOT EXISTS
PARTITION BY
CLUSTER BY
Bảng tạm thời
Bảng tạm thời (hoặc temp) giúp cải thiện khả năng đọc truy vấn và cho phép bạn tạo kết quả trung gian có thể bao gồm dữ liệu chưa được tổng hợp.
Bảng tạm thời:
- Chỉ tồn tại ở cấp phiên và hết hạn sau khi thực thi truy vấn
- Chỉ có thể dùng trong truy vấn mà bạn đã tạo
- Có thể lưu trữ dữ liệu chưa được tổng hợp và chưa áp dụng các quy trình kiểm tra quyền riêng tư
- Được tham chiếu theo tên mà không cần không gian tên bắt buộc
Để tạo một bảng tạm thời, hãy dùng câu lệnh CREATE TEMP TABLE
. Ví dụ này tạo một bảng tạm thời để lưu trữ kết quả của một truy vấn, sau đó sử dụng bảng tạm thời trong một truy vấn con:
-- 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;
Bảng cố định
Nếu cần tạo một bảng trung gian để sử dụng trong các truy vấn khác, bạn có thể tạo một bảng liên tục. Cú pháp này giống như cú pháp của bảng tạm thời, không có mệnh đề TEMP
. Các bảng này sẽ tồn tại trong 72 giờ. Nếu đã tồn tại một bảng có tên đã chọn, thì bảng đó sẽ bị ghi đè.
Các bảng cố định có thể lưu trữ dữ liệu chưa được tổng hợp, nhưng nội dung của bảng sẽ không hiển thị trừ phi thông qua kết quả truy vấn đã được kiểm tra quyền riêng tư.
Bảng cố định:
- Hết hạn sau 72 giờ
- Có thể được dùng bên ngoài truy vấn đã tạo ra nó
- Có thể lưu trữ dữ liệu chưa được tổng hợp và chưa áp dụng các quy trình kiểm tra quyền riêng tư
- Được tham chiếu thông qua không gian tên
tmp
, nhưng cũng có thể được tham chiếu theo tên trong cùng một truy vấn
Để tạo một bảng cố định, hãy sử dụng câu lệnh CREATE TABLE
. Ví dụ này tạo một bảng cố định để lưu trữ kết quả của một truy vấn, sau đó sử dụng bảng cố định đó trong một truy vấn sau này:
Truy vấn 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
Truy vấn 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;
Áp dụng quy trình kiểm tra quyền riêng tư
Ads Data Hub cũng hỗ trợ cú pháp SQL để tạo các bảng kết quả trung gian phải tuân thủ các tiêu chí kiểm tra để đảm bảo quyền riêng tư.
Để tạo một bảng phải tuân theo các quy trình kiểm tra quyền riêng tư, hãy thêm mệnh đề OPTIONS
vào truy vấn của bạn:
OPTIONS(privacy_checked_export=true)
Ví dụ này tạo một bảng tạm thời ở cấp phiên và áp dụng các tiêu chí kiểm tra quyền riêng tư:
-- 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
);
Ví dụ này tạo một bảng liên tục, áp dụng các quy trình kiểm tra quyền riêng tư và xuất bảng đó sang dự án Google Cloud của bạn:
-- 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
);
Xuất nhiều bảng bằng một truy vấn duy nhất
Ads Data Hub hỗ trợ cú pháp SQL linh hoạt để xuất các bảng kết quả có thể xem trong trường hợp một bảng cho mỗi truy vấn là không đủ. Các bảng này phải tuân thủ cùng một quy trình kiểm tra quyền riêng tư được thực thi trong toàn bộ Ads Data Hub.
Cú pháp để xuất một bảng cùng với biểu thức SQL chính là:
CREATE TABLE <project_name.dataset_name.table_name>
OPTIONS(privacy_checked_export=true) AS query_statement;
Ví dụ: để xuất một bảng sang đích đến BigQuery myproject.mydataset.mytable
có chứa số lượng hàng cho mỗi mã chiến dịch từ bảng 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;
Bạn cũng có thể tham chiếu các bảng trong cùng một truy vấn mà bạn đã tạo. Ví dụ: truy vấn:
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`;
xuất 2 bảng:
- Một ở
myproject.mydataset.mytable
, với các cộtcampaign_id
vàct
- Một tại vị trí được chỉ định trong trường Bảng đích đến của các đối số công việc, với cột
ct
Bạn cũng có thể thêm bản tóm tắt hàng được lọc vào các bảng này. Đọc về thông tin tóm tắt hàng được lọc.