יצירת צינור ELT לנתוני ניתוח שיווקי
במדריך הזה נסביר איך להגדיר תהליך עבודה של ELT שמחלץ, טוען ומשנה נתוני ניתוח שיווקי ב-BigQuery.
בתהליך עבודה טיפוסי של ELT, נתונים חדשים של לקוחות מחולצים ממקור הנתונים שלכם ונטענים ל-BigQuery. לאחר מכן, הנתונים הלא מובנים עוברים עיבוד והופכים למדדים בעלי משמעות. במדריך הזה תיצרו תהליך עבודה של ELT על ידי הגדרת העברת נתונים של ניתוח שיווקי באמצעות שירות העברת הנתונים ל-BigQuery. לאחר מכן, מתזמנים את Dataform להפעלת טרנספורמציות תקופתיות על הנתונים.
במדריך הזה משתמשים ב-Google Ads כמקור נתונים, אבל אפשר להשתמש בכל אחד ממקורות הנתונים שנתמכים על ידי שירות העברת הנתונים ל-BigQuery.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין של BigQuery (
roles/bigquery.admin) - אדמין ב-Dataform (
roles/dataform.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
תזמון העברות נתונים חוזרות
כדי שנתוני השיווק העדכניים ממקור הנתונים שלכם יהיו זמינים ב-BigQuery, אתם יכולים להגדיר העברות נתונים חוזרות באמצעות שירות העברת הנתונים ל-BigQuery. כך תוכלו לחלץ ולטעון נתונים לפי לוח זמנים.
במדריך הזה, Google Ads משמש כמקור הנתונים לדוגמה. רשימה מלאה של מקורות הנתונים שנתמכים על ידי שירות העברת הנתונים ל-BigQuery זמינה במאמר מקורות נתונים נתמכים.
עוברים לדף 'העברות נתונים' במסוף Google Cloud .
לוחצים על Create transfer (יצירת העברה).
בקטע Source type (סוג המקור), בוחרים באפשרות Google Ads בשדה Source (מקור).
בקטע פרטי מקור הנתונים:
- בשדה מספר לקוח, מזינים את מספר הלקוח ב-Google Ads.
- בקטע סוג הדוח, בוחרים באפשרות רגיל. הדוח הרגיל כולל את קבוצת הדוחות והשדות הרגילה, כפי שמפורט במאמר בנושא טרנספורמציה של דוחות Google Ads.
- בשדה חלון רענון, מזינים
5.
- בשדה חלון רענון, מזינים
בקטע הגדרות יעד, בשדה מערך נתונים, בוחרים את מערך הנתונים שיצרתם לאחסון הנתונים.
בקטע Transfer config name, בשדה Display name, מזינים
Marketing tutorial.בקטע אפשרויות תזמון:
- בקטע תדירות חזרה, בוחרים באפשרות ימים.
- בשדה At (בשעה), מזינים
08:00.
לוחצים על Save.
אחרי ששומרים את ההגדרה, שירות העברת הנתונים ל-BigQuery מתחיל את העברת הנתונים. בהתאם להגדרות בהגדרת ההעברה, העברת הנתונים מתבצעת פעם ביום בשעה 8:00 (שעון UTC) ומחלצת נתונים מ-Google Ads מ-5 הימים האחרונים.
אתם יכולים לעקוב אחרי משימות העברה שמתבצעות כדי לבדוק את הסטטוס של כל העברת נתונים.
שאילתות על נתונים בטבלה
כשהנתונים מועברים ל-BigQuery, הם נכתבים בטבלאות עם חלוקה למחיצות לפי זמן ההטמעה. מידע נוסף זמין במאמר מבוא לטבלאות עם מחיצות.
אם אתם שולחים שאילתות ישירות לטבלאות במקום להשתמש בתצוגות שנוצרו אוטומטית, אתם צריכים להשתמש בעמודה הווירטואלית _PARTITIONTIME בשאילתה. מידע נוסף זמין במאמר בנושא שליחת שאילתות לטבלאות מחולקות.
בקטעים הבאים מוצגות דוגמאות לשאילתות שאפשר להשתמש בהן כדי לבדוק את הנתונים שהועברו.
ביצועים ברמת הקמפיין
השאילתה לדוגמה הבאה מנתחת את ביצועי הקמפיין ב-Google Ads ב-30 הימים האחרונים.
המסוף
SELECT c.customer_id, c.campaign_name, c.campaign_status, SUM(cs.metrics_impressions) AS Impressions, SUM(cs.metrics_interactions) AS Interactions, (SUM(cs.metrics_cost_micros) / 1000000) AS Cost FROM `DATASET.ads_Campaign_CUSTOMER_ID` c LEFT JOIN `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs ON (c.campaign_id = cs.campaign_id AND cs._DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) WHERE c._DATA_DATE = c._LATEST_DATE GROUP BY 1, 2, 3 ORDER BY Impressions DESC
BQ
bq query --use_legacy_sql=false ' SELECT c.customer_id, c.campaign_name, c.campaign_status, SUM(cs.metrics_impressions) AS Impressions, SUM(cs.metrics_interactions) AS Interactions, (SUM(cs.metrics_cost_micros) / 1000000) AS Cost FROM `DATASET.ads_Campaign_CUSTOMER_ID` c LEFT JOIN `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs ON (c.campaign_id = cs.campaign_id AND cs._DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) WHERE c._DATA_DATE = c._LATEST_DATE GROUP BY 1, 2, 3 ORDER BY Impressions DESC'
מחליפים את מה שכתוב בשדות הבאים:
-
DATASET: השם של מערך הנתונים שיצרתם כדי לאחסן את הטבלה שהועברה -
CUSTOMER_ID: מספר הלקוח שלכם ב-Google Ads.
מספר מילות המפתח
השאילתה לדוגמה הבאה מנתחת מילות מפתח לפי קמפיין, קבוצת מודעות וסטטוס של מילת מפתח. השאילתה הזו משתמשת בפונקציה KeywordMatchType. סוגי ההתאמה למילות מפתח עוזרים לכם לקבוע אילו חיפושים יכולים להקפיץ את המודעה שלכם. מידע נוסף על אפשרויות התאמה למילות מפתח זמין במאמר מידע על אפשרויות התאמה למילות מפתח.
המסוף
SELECT c.campaign_status AS CampaignStatus, a.ad_group_status AS AdGroupStatus, k.ad_group_criterion_status AS KeywordStatus, k.ad_group_criterion_keyword_match_type AS KeywordMatchType, COUNT(*) AS count FROM `DATASET.ads_Keyword_CUSTOMER_ID` k JOIN `DATASET.ads_Campaign_CUSTOMER_ID` c ON (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE) JOIN `DATASET.ads_AdGroup_CUSTOMER_ID` a ON (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE) WHERE k._DATA_DATE = k._LATEST_DATE GROUP BY 1, 2, 3, 4
BQ
bq query --use_legacy_sql=false ' SELECT c.campaign_status AS CampaignStatus, a.ad_group_status AS AdGroupStatus, k.ad_group_criterion_status AS KeywordStatus, k.ad_group_criterion_keyword_match_type AS KeywordMatchType, COUNT(*) AS count FROM `DATASET.ads_Keyword_CUSTOMER_ID` k JOIN `DATASET.ads_Campaign_CUSTOMER_ID` c ON (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE) JOIN `DATASET.ads_AdGroup_CUSTOMER_ID` a ON (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE) WHERE k._DATA_DATE = k._LATEST_DATE GROUP BY 1, 2, 3, 4'
מחליפים את מה שכתוב בשדות הבאים:
-
DATASET: השם של מערך הנתונים שיצרתם כדי לאחסן את הטבלה שהועברה -
CUSTOMER_ID: מספר הלקוח שלכם ב-Google Ads.
יצירת מאגר Dataform
אחרי שיוצרים את ההגדרה של העברת הנתונים כדי להעביר את הנתונים העדכניים מ-Google Ads, מגדירים את Dataform כך שיבצע באופן קבוע טרנספורמציה של נתוני ניתוח השיווק. בעזרת Dataform אפשר לתזמן טרנספורמציות קבועות של נתונים, ולהגדיר את הטרנספורמציות האלה באמצעות SQL, תוך שיתוף פעולה עם אנליסטים אחרים של נתונים.
יוצרים מאגר Dataform לאחסון שאילתות SQLX שמרכיבות את קוד הטרנספורמציה.
נכנסים לדף Dataform במסוף Google Cloud .
לוחצים על Create repository (יצירת מאגר).
בדף Create repository, מבצעים את הפעולות הבאות:
- בשדה Repository ID (מזהה המאגר), מזינים
marketing-tutorial-repository. - ברשימה Region, בוחרים אזור.
- לוחצים על יצירה.
- בשדה Repository ID (מזהה המאגר), מזינים
מאגר marketing-tutorial-repository המידע יופיע עכשיו ברשימת מאגרי המידע של Dataform.
מידע נוסף על מאגרי Dataform זמין במאמר מידע על מאגרי Dataform.
יצירה ואתחול של סביבת פיתוח ב-Dataform
יוצרים סביבת עבודה לפיתוח ב-Dataform כדי שתוכלו לעבוד על קוד השינוי במאגר לפני שתבצעו commit ותדחפו את השינויים למאגר.
נכנסים לדף Dataform במסוף Google Cloud .
לחץ על
marketing-tutorial-repository.לוחצים על יצירת סביבת עבודה לפיתוח.
בחלון Create development workspace (יצירת סביבת עבודה לפיתוח):
- בשדה מזהה Workspace, מזינים את הערך
marketing-tutorial-workspace. - לוחצים על יצירה.
מופיע הדף של סביבת הפיתוח.
- בשדה מזהה Workspace, מזינים את הערך
לוחצים על Initialize workspace (הפעלת סביבת העבודה).
סביבת העבודה לפיתוח marketing-tutorial-workspace מופיעה עכשיו במאגר marketing-tutorial-repository בכרטיסייה Development Workspaces (סביבות עבודה לפיתוח), יחד עם שני קבצים לדוגמה בספרייה definitions שנקראים *first_view.sqlx ו-*second_view.sqlx.
מידע נוסף על סביבות פיתוח ב-Dataform זמין במאמר סקירה כללית של סביבות פיתוח.
הצהרה על הטבלה ב-Google Ads כמקור לטבלה
כדי לקשר את הטבלה החדשה שהועברה מ-Google Ads אל Dataform, צריך להגדיר אותה כמקור נתונים. לשם כך, פועלים לפי השלבים הבאים:
יצירת קובץ SQLX להצהרה על מקור נתונים
ב-Dataform, כדי להגדיר יעד למקור נתונים, יוצרים קובץ SQLX בספרייה definitions/:
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים באפשרות
marketing-tutorial-repository.בוחרים באפשרות
marketing-tutorial-workspace.בחלונית קבצים, לצד
definitions/, לוחצים על תפריט האפשרויות הנוספות.לוחצים על יצירת קובץ.
בחלונית Create new file:
- בשדה הוספת נתיב קובץ, אחרי
definitions/, מזינים את השםdefinitions/googleads-declaration.sqlx. - לוחצים על יצירת קובץ.
- בשדה הוספת נתיב קובץ, אחרי
הצהרה על מקור נתונים
עורכים את definitions/googleads-declaration.sqlx כדי להצהיר על טבלת Google Ads שהועברה כמקור נתונים. בדוגמה הזו, הטבלה ads_Campaign מוגדרת כמקור נתונים:
- בסביבת העבודה לפיתוח, בחלונית Files, לוחצים על קובץ ה-SQLX להצהרה על מקור הנתונים.
מזינים את קטע הקוד הבא בקובץ:
config { type: "declaration", database: "PROJECT_ID", schema: "DATASET", name: "ads_Campaign_CUSTOMER_ID", }
הגדרת הטרנספורמציה
מגדירים את טרנספורמציות הנתונים על ידי יצירת קובץ SQLX בספרייה definitions/. במדריך הזה יוצרים טרנספורמציה יומית שמצטברת מדדים כמו קליקים, חשיפות, עלויות והמרות באמצעות קובץ בשם daily_performance.sqlx.
יצירת קובץ SQLX של טרנספורמציה
- בחלונית קבצים, לצד
definitions/, לוחצים על התפריט עוד ואז בוחרים באפשרות יצירת קובץ. - בשדה Add a file path (הוספת נתיב קובץ), מזינים את הערך
definitions/daily_performance.sqlx. - לוחצים על יצירת קובץ.
הגדרת קובץ הטרנספורמציה SQLX
- בחלונית Files, מרחיבים את הספרייה
definitions/. בוחרים באפשרות
daily_performance.sqlxומזינים את השאילתה הבאה:config { type: "table", schema: "reporting", tags: ["daily", "google_ads"] } SELECT date, campaign_id, campaign_name, SUM(clicks) AS total_clicks FROM `ads_Campaign_CUSTOMER_ID` GROUP BY date, campaign_id, campaign_name ORDER BY date DESC
שומרים ודוחפים את השינויים
אחרי שמבצעים שינויים בסביבת הפיתוח, אפשר לבצע commit ולדחוף את השינויים האלה למאגר. כך עושים את זה:
- בסביבת העבודה
marketing-tutorial-workspace, לוחצים על Commit 1 change (ביצוע של שינוי אחד). - בחלונית New commit (קובץ חדש לביצוע), מזינים תיאור של קובץ לביצוע בשדה Add a commit message (הוספת הודעה על קובץ לביצוע).
- לוחצים על אישור כל השינויים.
- בסביבת העבודה
marketing-tutorial-workspace, לוחצים על Push to default branch (העברה לענף ברירת המחדל).
אחרי שהשינויים יועברו בהצלחה למאגר, תוצג ההודעה Workspace is up to date (השינויים ב-Workspace עודכנו).
תזמון של טרנספורמציית הנתונים
אחרי שמגדירים את קובץ טרנספורמציית הנתונים, מתזמנים את טרנספורמציות הנתונים.
יצירת גרסה לסביבת ייצור
כשמבצעים פריסה לייצור ב-Dataform, מוודאים שהסביבה מתעדכנת באופן עקבי עם התוצאות של טרנספורמציות הנתונים. בשלבים הבאים מוסבר איך לציין את main הענף של מאגר marketing-tutorial-repository לאחסון של טרנספורמציות הנתונים:
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים באפשרות
marketing-tutorial-repository.לוחצים על הכרטיסייה גרסאות ותזמון.
לוחצים על יצירת גרסה לסביבת ייצור.
בחלונית Create release configuration, קובעים את ההגדרות הבאות:
- בשדה Release ID (מזהה פריט תוכן), מזינים את הערך
transformations. - בשדה Git commitish, משאירים את ערך ברירת המחדל
main. - בקטע תדירות התזמון, בוחרים באפשרות לפי דרישה.
- בשדה Release ID (מזהה פריט תוכן), מזינים את הערך
לוחצים על יצירה.
יצירת הגדרה של תהליך עבודה
אחרי שיוצרים גרסת ייצור, אפשר ליצור הגדרת תהליך עבודה שמריצה את טרנספורמציות הנתונים לפי לוח זמנים שצוין במאגר. בשלבים הבאים מוסבר איך לתזמן טרנספורמציות יומיות מקובץ transformations:
נכנסים לדף Dataform במסוף Google Cloud .
בוחרים באפשרות
marketing-tutorial-repository.לוחצים על הכרטיסייה גרסאות ותזמון.
בקטע הגדרות של תהליכי עבודה, לוחצים על יצירה.
בחלונית Create workflow configuration (יצירת הגדרת תהליך עבודה), בשדה Configuration ID (מזהה הגדרה), מזינים
transformations.בתפריט Release configuration (הגדרות הפצה), בוחרים באפשרות
transformations.בקטע אימות, בוחרים באפשרות הפעלה באמצעות פרטי כניסה של משתמש.
בקטע Schedule frequency:
1. Select **Repeat**. 1. For **Repeats**, select `Daily`. 1. For **At time**, enter `10:00 AM`. 1. For **Timezone**, select `Coordinated Universal Time (UTC)`.לוחצים על בחירת תגים.
בשדה Select tags to execute (בחירת תגים להפעלה), בוחרים באפשרות Daily (יומי).
לוחצים על יצירה.
הגדרת תהליך העבודה שיצרתם מריצה את כל תוצאות הקומפילציה העדכניות שנוצרו על ידי הגדרת ההפצה transformations.
הסרת המשאבים
כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים.
מחיקת מערך הנתונים שנוצר ב-BigQuery
כדי להימנע מחיובים על נכסי BigQuery, צריך למחוק את מערך הנתונים שנקרא dataform.
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית Explorer מרחיבים את הפרויקט ובוחרים באפשרות
dataform.לוחצים על התפריט פעולות ואז על מחיקה.
בתיבת הדו-שיח מחיקת מערך נתונים, מזינים
deleteבשדה ולוחצים על מחיקה.
מחיקת סביבת הפיתוח וההגדרות ב-Dataform
יצירת סביבת פיתוח ב-Dataform לא כרוכה בעלויות, אבל כדי למחוק את סביבת הפיתוח אפשר לבצע את הפעולות הבאות:
נכנסים לדף Dataform במסוף Google Cloud .
לחץ על
quickstart-repository.לוחצים על הכרטיסייה פרסום ותזמון.
בקטע הגדרות הפצה, לוחצים על סמל התפריט אפשרויות נוספות לצד ההגדרה
productionואז על מחיקה.בקטע הגדרות של תהליכי עבודה, לוחצים על התפריט אפשרויות נוספות לצד ההגדרה
transformationsואז על מחיקה.בכרטיסייה סביבות עבודה לפיתוח, לוחצים על תפריט אפשרויות נוספות לצד
quickstart-workspaceואז בוחרים באפשרות מחיקה.כדי לאשר, לוחצים על מחיקה.
מחיקת מאגר Dataform
יצירת מאגר Dataform לא כרוכה בעלויות, אבל כדי למחוק את המאגר אפשר לפעול לפי השלבים הבאים:
נכנסים לדף Dataform במסוף Google Cloud .
ליד
quickstart-repository, לוחצים על תפריט האפשרויות הנוספות ואז בוחרים באפשרות מחיקה.בחלון Delete repository (מחיקת מאגר), מזינים את שם המאגר כדי לאשר את המחיקה.
כדי לאשר, לוחצים על מחיקה.