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