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 dễ hiểu và dễ duy trì hơn. Bằng cách tạo kết quả trung gian mà bạn có thể sử dụng lại, đồng thời cho phép bạn giữ dữ liệu tạm thời không được tổng hợp, bạn có thể giảm tài nguyên cần thiết để thực thi truy vấn, cải thiện hiệu suất.
Các bảng đã tạo phải tuân theo cùng một quy trình kiểm tra quyền riêng tư, các hàm được phép và các giới hạn về việc kết hợp trường tĩnh được thực thi trên toàn bộ Ads Data Hub. Các quy trình kiểm tra quyền riêng tư tiêu chuẩn sẽ á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 không tuân theo các yêu cầu về tổng hợp hoặc chênh lệch.
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ể sử dụng bên trong truy vấn đã tạo
- Không phải tuân thủ các yêu cầu về tổng hợp hoặc quyền riêng tư biệt lập
- Hỗ trợ không gian tên
tmp
không bắt buộc
Để tạo bảng tạm thời, hãy sử 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 -- Alternative: tmp.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 cố định. Cú pháp này giống với cú pháp của bảng tạm thời, ngoại trừ mệnh đề TEMP
. Các bảng cố định được lọc trước, nghĩa là không áp dụng các bước kiểm tra tổng hợp và kéo dài trong 72 giờ. Nếu một bảng có tên đã chọn đã tồn tại, bảng đó sẽ bị ghi đè.
Bảng cố định:
- Hết hạn sau 72 giờ
- Có thể được sử dụng bên ngoài truy vấn đã tạo nó
- Phải tuân thủ các yêu cầu về tổng hợp
- Chỉ yêu cầu không gian tên
tmp
khi truy cập vào bảng từ một truy vấn sau
Để tạo một bảng ổn đị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:
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
);
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;
Á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 bảng kết quả trung gian phải tuân theo các quy trình kiểm tra quyền riêng tư.
Để tạo một bảng phải tuân thủ quy trình kiểm tra quyền riêng tư, hãy thêm mệnh đề OPTIONS
vào truy vấ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 bước 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 cố định, áp dụng các bước kiểm tra quyền riêng tư và xuất bảng đó sang dự án 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
);
Xuất nhiều bảng bằng một truy vấn
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 trên 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 BigQuery myproject.mydataset.mytable
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 đến các bảng trong cùng một truy vấn mà bạn đã tạo các bảng đó. 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 ra hai bảng:
- Một ở
myproject.mydataset.mytable
, với các cộtcampaign_id
vàct
- Một ở vị trí được chỉ định trong trường Bảng đích của đố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 theo hàng đã lọc vào các bảng này. Đọc về thông tin tóm tắt hàng đã lọc.