ایجاد جداول، ایجاد جداول، ایجاد جداول، ایجاد جداول

جداول موقت و جداول دائمی به شما کمک می کنند تا پرس و جوها را ساده کنید و درک و نگهداری آنها را آسان تر می کند. با ایجاد نتایج میانی که می توانید مجدداً از آنها استفاده کنید، در حالی که به شما امکان می دهد داده های موقت را جمع آوری نکنید، می توانید منابع مورد نیاز برای اجرای پرس و جوها را کاهش دهید و عملکرد را بهبود بخشید.

جداول ایجاد شده مشمول همان بررسی‌های حریم خصوصی ثابت، توابع مجاز و محدودیت‌های پیوستن به فیلد هستند که در سرتاسر 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

میزهای موقت

جداول موقت (یا موقت ) خوانایی پرس و جو را بهبود می بخشد و به شما امکان می دهد نتایج میانی ایجاد کنید که ممکن است شامل داده های تجمیع نشده باشد.

جداول دما:

  • فقط در سطح جلسه وجود دارد و پس از اجرای پرس و جو منقضی می شود
  • فقط می تواند در داخل پرس و جوی که در آن ایجاد شده است استفاده شود
  • ممکن است داده های تجمیع نشده ای را که هنوز بررسی های حریم خصوصی اعمال نکرده اند ذخیره کند
  • با نام و بدون فضای نام مورد نیاز ارجاع می شوند

برای ایجاد جدول موقت، از عبارت CREATE TEMP TABLE استفاده کنید. این مثال یک جدول موقت برای ذخیره نتایج یک پرس و جو ایجاد می کند، سپس از جدول temp در یک جستجوی فرعی استفاده می کند:

-- 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 `myproject.mydataset.creative_list` OPTIONS(privacy_checked_export=true) AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

چندین جدول را با استفاده از یک پرس و جو صادر کنید

Ads Data Hub از یک دستور SQL انعطاف پذیر برای صادر کردن جداول نتایج قابل مشاهده در مواردی که یک جدول در هر پرس و جو کافی نیست، پشتیبانی می کند. این جداول مشمول همان بررسی‌های حریم خصوصی هستند که در سرتاسر 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`;

خروجی دو جدول:

  • یکی در myproject.mydataset.mytable ، با ستون های campaign_id و ct
  • یکی در محل مشخص شده در قسمت جدول مقصد آرگومان های job، با ستون ct

همچنین امکان افزودن خلاصه ردیف فیلتر شده به این جداول وجود دارد. درباره خلاصه‌های ردیف فیلتر شده بخوانید .