جداول موقت و جداول دائمی به شما کمک می کنند تا پرس و جوها را ساده کنید و درک و نگهداری آنها را آسان تر می کند. با ایجاد نتایج میانی که می توانید مجدداً از آنها استفاده کنید، در حالی که به شما امکان می دهد داده های موقت را جمع آوری نکنید، می توانید منابع مورد نیاز برای اجرای پرس و جوها را کاهش دهید و عملکرد را بهبود بخشید.
جداول ایجاد شده مشمول همان بررسیهای حریم خصوصی ثابت، توابع مجاز و محدودیتهای پیوستن به فیلد هستند که در سرتاسر 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
استفاده کنید. این مثال یک جدول موقت برای ذخیره نتایج یک پرس و جو ایجاد می کند، سپس از جدول 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 -- 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
);
چندین جدول را با استفاده از یک پرس و جو صادر کنید
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
همچنین امکان افزودن خلاصه ردیف فیلتر شده به این جداول وجود دارد. درباره خلاصههای ردیف فیلتر شده بخوانید .