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

تساعدك الجداول المؤقتة والجداول الثابتة في تبسيط طلبات البحث، ما يسهّل فهمها وصيانتها. من خلال إنشاء نتائج وسيطة يمكنك إعادة استخدامها، مع إتاحة خيار الاحتفاظ بالبيانات المؤقتة غير مجمّعة، يمكنك تقليل الموارد المطلوبة لتنفيذ طلبات البحث، ما يؤدي إلى تحسين الأداء.

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

-- 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
  • موضع واحد في الموقع الجغرافي المحدّد في حقل جدول الوجهة الخاص بوسيطة المهمة، مع العمود ct

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