تساعدك الجداول المؤقتة والجداول الثابتة في تبسيط طلبات البحث، ما يسهّل فهمها وصيانتها. من خلال إنشاء نتائج intermediate يمكنك إعادة استخدامها، مع منحك خيار إبقاء البيانات المؤقتة غير مجمّعة، يمكنك تقليل الموارد المطلوبة لتنفيذ طلبات البحث، وبالتالي تحسين الأداء.
تخضع الجداول التي تم إنشاؤها لفحوصات الخصوصية والدوالّ المسموح بها وقيود دمج الحقول الثابتة نفسها التي يتم فرضها في 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
الجداول المؤقتة
تعمل الجداول المؤقتة (أو temp) على تحسين سهولة قراءة طلبات البحث، وتتيح لك إنشاء نتائج وسيطة لا تخضع لمتطلبات التجميع أو الفرق.
الجداول المؤقتة:
- لا تظهر إلا على مستوى الجلسة، وتنتهي صلاحيتها بعد تنفيذ طلب البحث
- لا يمكن استخدامه إلا داخل طلب البحث الذي تم إنشاؤه فيه
- لا تخضع لمتطلبات التجميع أو الخصوصية التفاضلية
- إتاحة مساحة الاسم الاختيارية
tmp
لإنشاء جدول مؤقت، استخدِم عبارة CREATE TEMP TABLE
. ينشئ هذا المثال جدولاً مؤقتًا لتخزين نتائج طلب بحث، ثم يستخدم الجدول المؤقت في طلب بحث فرعي:
-- 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
- واحد في الموقع المحدّد في حقل جدول الوجهة لوسيطات الحملة، باستخدام العمود
ct
من الممكن أيضًا إضافة ملخّص للصفوف التي تمّت فلترتها إلى هذه الجداول. اطّلِع على مزيد من المعلومات حول ملخّصات الصفوف التي تمّت فلترتها.