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