יצירת טבלאות

בעזרת טבלאות זמניות וטבלאות קבועות תוכלו לייעל שאילתות, ולהבין אותן ולתחזק אותן בקלות. יצירת תוצאות ביניים לשימוש חוזר ואפשרות לא לצבור נתונים זמניים, וכך לצמצם את המשאבים הנדרשים לביצוע שאילתות ולשפר את הביצועים.

הטבלאות שנוצרו כפופות לאותן בדיקות פרטיות סטטיות, פונקציות מותרות ומגבלות על צירוף שדות שנאכפות ב-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. הדוגמה הזו יוצרת טבלה זמנית כדי לאחסן את התוצאות של שאילתה, ולאחר מכן משתמשת בטבלה הזמנית בשאילתת משנה:

-- 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
  • אחת במיקום שצוין בשדה Destination table בארגומנטים של המשימות, עם העמודה ct

אפשר גם להוסיף לטבלאות האלה סיכום של שורות מסוננות. מידע נוסף על סיכומי שורות מסוננות