Tạo bảng

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épcá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ột campaign_idct
  • 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.