إنشاء الجداول

تساعدك الجداول المؤقتة والجداول الثابتة في تبسيط طلبات البحث، ما يسهّل فهمها وصيانتها. من خلال إنشاء نتائج 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

من الممكن أيضًا إضافة ملخّص للصفوف التي تمّت فلترتها إلى هذه الجداول. اطّلِع على مزيد من المعلومات حول ملخّصات الصفوف التي تمّت فلترتها.