טעינת נתונים מ-Salesforce ל-BigQuery
כדי לתזמן העברות נתונים חוזרות מ-Salesforce Sales Cloud ל-BigQuery, צריך ליצור הגדרת העברה כדי לציין אילו אובייקטים של נתונים להעביר, ובאיזו תדירות לתזמן את העברת הנתונים. אפשר ליצור הגדרת העברה באמצעות Google Cloud המסוף, bqכלי שורת הפקודה או BigQuery Data Transfer Service API. אחרי שמגדירים את העברת הנתונים, שירות העברת הנתונים ל-BigQuery מעביר את הנתונים העדכניים לטבלת BigQuery לפי התזמון שצוין.
מגבלות
העברות נתונים מ-Salesforce כפופות למגבלות הבאות:
- מחבר Salesforce תומך רק בהעברות מ-Salesforce Sales Cloud.
- מחבר Salesforce תומך רק בשדות שכלולים ב-Salesforce Bulk API V1 גרסה 64.0. יכול להיות שחלק מהשדות שנכללו בגרסאות קודמות של Salesforce Bulk API לא נתמכים. מידע נוסף על השינויים האלה בחיבור ל-Salesforce זמין במאמר בנושא Salesforce Bulk API.
מחבר Salesforce משתמש ב-Salesforce Bulk API V1 כדי להתחבר לנקודת הקצה של Salesforce Sales Cloud ולאחזר נתונים.
- המחבר של Salesforce תומך רק ב-Salesforce Bulk API V1 כדי להתחבר למופע Salesforce, ותומך רק בהעברת ישויות שנתמכות על ידי Salesforce Bulk API. מידע נוסף על ישויות נתמכות זמין במאמר הישות לא נתמכת על ידי Bulk API.
מחבר Salesforce לא תומך בהעברה של האובייקטים הבאים שיש להם שדות בינאריים.
AttachmentContentVersionDocumentStaticResourceScontrolEmailCaptureMailMergeTemplate
מרווח הזמן המינימלי בין העברות נתונים חוזרות הוא 15 דקות. מרווח ברירת המחדל להעברה חוזרת הוא 24 שעות.
בגלל מגבלות העיבוד של Salesforce, תזמון של יותר מדי העברות נתונים בו-זמנית עלול לגרום לעיכובים או לכשלים. מומלץ להגביל את העברת הנתונים ב-Salesforce לנתונים הבאים:
- אפשר לכלול עד 10 נכסים בכל הגדרת העברה.
- בכל ההגדרות השונות של ההעברה, לא יכולות להיות יותר מ-10 העברות בו-זמניות בכל פעם.
כל הגדרה של העברת נתונים יכולה לתמוך רק בהרצה אחת של העברת נתונים בכל זמן נתון. אם מתוכננת העברת נתונים שנייה לפני שההעברה הראשונה מסתיימת, רק ההעברה הראשונה תושלם. כל העברת נתונים אחרת שחופפת להעברה הראשונה תדלג.
- כדי להימנע מדילוג על העברות במסגרת הגדרת העברה אחת, מומלץ להגדיר את תדירות החזרה כדי להגדיל את משך הזמן בין העברות של נתונים גדולים.
אם אתם משתמשים בצירופי רשת להעברת הנתונים, אתם צריכים להגדיר תרגום כתובות רשת (NAT) ציבורי עם כתובת IP סטטית. מידע נוסף זמין במאמר בנושא הגדרת רשימת כתובות IP להעברות ב-Salesforce.
אם המכונה הווירטואלית (VM) והחיבור לרשת שהגדרתם נמצאים באזורים שונים, יכול להיות שתהיה תנועה של נתונים בין אזורים כשמעבירים נתונים מ-Salesforce.
מגבלות על העברות מצטברות
העברות מצטברות מ-Salesforce כפופות למגבלות הבאות:- אפשר לבחור רק
TIMESTAMPעמודות כעמודות של סימן מים. - הטמעה מצטברת נתמכת רק בנכסים עם עמודות סימן מים תקינות.
- הערכים בעמודת סימן המים חייבים להיות בסדר עולה.
- העברות מצטברות לא יכולות לסנכרן פעולות מחיקה בטבלת המקור.
- הגדרת העברה אחת יכולה לתמוך רק בהעברה מצטברת או בהעברה מלאה.
- אחרי ההפעלה הראשונה של ההעלאה המצטברת, אי אפשר לעדכן אובייקטים ברשימה
asset. - אי אפשר לשנות את מצב הכתיבה בהגדרת העברה אחרי ההפעלה הראשונה של הטמעה מצטברת.
- אי אפשר לשנות את העמודה של סימן המים או את המפתח הראשי אחרי ההפעלה הראשונה של הטמעת נתונים מצטברת.
- הטבלה ב-BigQuery שמוגדרת כיעד מקובצת באמצעות המפתח הראשי שצוין, והיא כפופה למגבלות של טבלאות מקובצות.
- כשמעדכנים בפעם הראשונה הגדרת העברה קיימת למצב של העברה מצטברת, בהעברת הנתונים הראשונה אחרי העדכון מועברים כל הנתונים הזמינים ממקור הנתונים. כל העברה מצטברת של נתונים שתתבצע לאחר מכן תעביר רק את השורות החדשות והמעודכנות ממקור הנתונים.
מידע נוסף על העברות מצטברות זמין במאמר העברות מלאות או מצטברות.
לפני שמתחילים
בקטעים הבאים מתוארים השלבים שצריך לבצע לפני שיוצרים העברת נתונים של Salesforce.
יצירת אפליקציה מקושרת של Salesforce
צריך ליצור אפליקציה מקושרת ב-Salesforce עם ההגדרות הנדרשות הבאות:
- מגדירים את הפרטים הבסיסיים באפליקציה המקושרת. השדות Connected App Name ו-Contact Email נדרשים להעברה ב-Salesforce.
- מפעילים את הגדרות OAuth עם ההגדרות הבאות:
- מסמנים את התיבה Enable OAuth Settings (הפעלת הגדרות OAuth).
- בשדה כתובת URL לקריאה חוזרת (callback), מזינים את הערך הבא:
- לסביבת ייצור, מזינים
https://login.salesforce.com/services/oauth2/token. - בסביבת ארגז חול, מזינים
https://test.salesforce.com/services/oauth2/token.
- לסביבת ייצור, מזינים
- מוודאים שתיבת הסימון הנפקת אסימוני גישה מבוססי JWT (JSON Web Token) למשתמשים עם שם לא מסומנת.
- בקטע Selected OAuth Scopes (היקפי הרשאות נבחרים של OAuth), בוחרים באפשרות Manage user data via APIs (api) (ניהול נתוני משתמשים באמצעות ממשקי API).
- מבטלים את הסימון של התיבה Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows.
- בוחרים באפשרות הפעלת תהליך של פרטי כניסה ללקוח ולוחצים על אישור בהודעה שמופיעה.
אחרי שמגדירים את האפליקציה המקושרת עם ההגדרות הנדרשות, לוחצים על שמירה. תועברו לדף הפרטים של האפליקציה המקושרת החדשה שיצרתם.
אחרי שיוצרים את האפליקציה המקושרת, צריך גם להגדיר את תהליך העבודה של פרטי הכניסה של הלקוח. לשם כך:
- לוחצים על הגדרה.
- בסרגל החיפוש, מחפשים את אפליקציות מקושרות.
- לוחצים על ניהול אפליקציות > אפליקציות מקושרות. אם אתם משתמשים ב-Salesforce Lightning Experience, לוחצים על ניהול האפליקציות המקושרות.
- באפליקציה המקושרת שיצרתם, לוחצים על עריכה.
- יופיע הדף App details (פרטי האפליקציה). בקטע Client Credentials Flow (תהליך אימות פרטי לקוח), מזינים את שם המשתמש בשדה Run As (הרצה כ). אפשר להשתמש בכלי החיפוש בשדה הזה כדי לוודא שבחרתם את המשתמש הנכון.
- לוחצים על Save.
הפרטים הנדרשים ב-Salesforce
כשיוצרים העברת נתונים מ-Salesforce, צריך לציין את הפרטים הבאים של Salesforce:
| שם הפרמטר | תיאור |
|---|---|
myDomain |
הדומיין שלי ב-Salesforce. |
clientId |
מפתח הצרכן של האפליקציה המקושרת של Salesforce. |
clientSecret |
סוד הלקוח ב-OAuth או סוד הצרכן של האפליקציה המקושרת ב-Salesforce. |
כדי לקבל את הערכים של myDomain, clientID ו-clientSecret, בוחרים באחת מהאפשרויות הבאות:
Salesforce Classic
אחזור הפרטים של myDomain
כדי למצוא את myDomain, מבצעים את הפעולות הבאות:
- נכנסים לפלטפורמת Salesforce.
- לוחצים על הגדרה.
- בסרגל החיפוש, מחפשים את הדומיין שלי.
- בתוצאות החיפוש, לוחצים על ניהול דומיין > הדומיין שלי.
בקטע פרטי הדומיין שלי, הקידומת myDomain מופיעה בכתובת ה-URL הנוכחית של הדומיין שלי. לדוגמה, אם כתובת ה-URL של הדומיין שלי היא example.my.salesforce.com, הערך של myDomain הוא example.
אחזור פרטים של ClientId ושל ClientSecret
כדי למצוא את הערכים של ClientId ו-ClientSecret, מבצעים את הפעולות הבאות:
- נכנסים לפלטפורמת Salesforce.
- לוחצים על הגדרה.
- בסרגל החיפוש, מחפשים את האפליקציות.
- בקטע Build (יצירה) בתוצאות החיפוש, לוחצים על Create (יצירה) > Apps (אפליקציות).
- לוחצים על שם האפליקציה המקושרת.
- בדף הפרטים של אפליקציות מקושרות, לוחצים על ניהול פרטי הצרכן.
- מאמתים את הזהות באחת מהשיטות הרשומות. אפשר לצפות בדף הפרטים של הצרכן למשך חמש דקות לכל היותר לפני שתתבקשו לאמת שוב את הזהות שלכם.
- בדף Consumer Details (פרטי צרכן), Consumer Key (טוקן צרכן) הוא הערך
ClientIdשלכם. הערך של Customer Secret הואClientSecret.
Salesforce Lightning Experience
אחזור הפרטים של myDomain
כדי למצוא את myDomain, מבצעים את הפעולות הבאות:
- נכנסים לפלטפורמת Salesforce.
לוחצים על הגדרה.
בסרגל החיפוש, מחפשים את הדומיין שלי.
בתוצאות החיפוש, לוחצים על הגדרות החברה > הדומיין שלי.
בקטע פרטי הדומיין שלי, הקידומת myDomain מופיעה בכתובת ה-URL הנוכחית של הדומיין שלי. לדוגמה, אם כתובת ה-URL של הדומיין שלי היא example.my.salesforce.com, הערך של myDomain הוא example.
אחזור פרטים של ClientId ושל ClientSecret
- נכנסים לפלטפורמת Salesforce.
- לוחצים על הגדרה.
- בסרגל החיפוש, מחפשים את האפליקציות.
- בתוצאות החיפוש, לוחצים על אפליקציות > המרכז לניהול אפליקציות.
- מחפשים אפליקציה מקושרת ולוחצים על הצגה.
- לוחצים על ניהול פרטי הצרכן.
- מאמתים את הזהות באחת מהשיטות הרשומות. אפשר לראות את דף הפרטים של הצרכן למשך חמש דקות לכל היותר לפני שתתבקשו לאמת שוב את הזהות שלכם.
- בדף Consumer Details (פרטי צרכן), Consumer Key (טוקן צרכן) הוא הערך
ClientIdשלכם. הערך של Customer Secret הואClientSecret.
הגדרת רשימת היתרים של כתובות IP להעברות ב-Salesforce
כדי להעביר נתונים, צריך להגדיר את Google Cloud הסביבה ואת חשבון Salesforce ולהוסיף כתובות IP ספציפיות לרשימת ההיתרים. כך מוודאים ש-Salesforce מקבלת רק חיבורים מכתובת IP סטטית ומהימנה. השלב הזה נדרש אם אתם משתמשים בקבצים מצורפים לרשת בהעברות הנתונים.
כדי לעשות את זה, קודם צריך להגדיר את רשת Google Cloud כך שתשתמש בכתובת IP סטטית:
- הגדרה של תרגום כתובות רשת (NAT) ציבורי עם כתובת IP סטטית ברשת הענן הווירטואלי הפרטי (VPC). צריך להגדיר את CloudNAT באותו אזור שבו נמצא מערך הנתונים של היעד להעברת הנתונים הזו.
- הגדרת חיבור רשת באותה רשת VPC. המשאב הזה משמש את שירות העברת הנתונים ל-BigQuery כדי לגשת לשירותים פרטיים.
בשלב הבא, צריך להגדיר את טווחי כתובות ה-IP המהימנים ב-Salesforce. כשמוסיפים את טווח כתובות ה-IP, משתמשים בכתובת ה-IP הסטטית מ-Google Cloud NAT ציבורי גם לכתובת ה-IP ההתחלתית וגם לכתובת ה-IP הסופית של טווח כתובות ה-IP.
אחרי שמגדירים את טווחי כתובות ה-IP, אפשר לציין את כתובת ה-IP הסטטית כשמגדירים את ההגדרות של ההעברה. לשם כך, בוחרים את חיבור הרשת בשדה חיבור רשת.
דרישות מוקדמות ל-BigQuery
- מוודאים שביצעתם את כל הפעולות שנדרשות כדי להפעיל את שירות העברת נתונים ל-BigQuery.
- יוצרים מערך נתונים ב-BigQuery לאחסון הנתונים.
- אם אתם מתכוונים להגדיר התראות על הפעלת העברה ב-Pub/Sub, ודאו שיש לכם הרשאה לניהול זהויות והרשאות גישה (IAM)
pubsub.topics.setIamPolicy. אם מגדירים רק התראות באימייל, לא צריך הרשאות Pub/Sub. מידע נוסף זמין במאמר בנושא התראות על הפעלת שירות העברת נתונים ל-BigQuery.
התפקידים הנדרשים ב-BigQuery
כדי לקבל את ההרשאות שנדרשות ליצירת העברת נתונים באמצעות BigQuery Data Transfer Service, צריך לבקש מהאדמין להקצות לכם את תפקיד BigQuery Admin (roles/bigquery.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות ליצירת העברת נתונים בשירות העברת נתונים ל-BigQuery. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור העברת נתונים באמצעות שירות העברת הנתונים ל-BigQuery, נדרשות ההרשאות הבאות:
-
הרשאות של שירות העברת נתונים ל-BigQuery:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
הרשאות ב-BigQuery:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מידע נוסף מופיע במאמר בנושא מתן גישה ל-bigquery.admin.
הגדרת העברת נתונים מ-Salesforce
כדי להוסיף נתונים מ-Salesforce ל-BigQuery, צריך להגדיר העברה באמצעות אחת מהאפשרויות הבאות:
המסוף
עוברים לדף 'העברות נתונים' במסוף Google Cloud .
לוחצים על Create transfer (יצירת העברה).
בקטע סוג המקור, בשדה מקור, בוחרים באפשרות Salesforce.
בקטע Data source details (פרטים של מקור הנתונים), מבצעים את הפעולות הבאות:
- בקטע Network attachment (צירוף לרשת), בוחרים צירוף לרשת מהרשימה. כדי להשתמש בחיבור לרשת להעברת הנתונים, צריך להגדיר את ה-NAT הציבורי וליצור רשימת היתרים של כתובות IP.
- בקטע הדומיין שלי, מזינים את הדומיין שלי ב-Salesforce.
- בשדה מזהה לקוח, מזינים את מפתח הצרכן של האפליקציה המקושרת של Salesforce.
- בקטע סוד לקוח, מזינים את סוד הלקוח של אפליקציית Salesforce המקושרת.
- בקטע סוג ההעברה, בוחרים באפשרות מלאה או מצטברת.
- אם בוחרים באפשרות מצטבר במצב כתיבה, בוחרים באפשרות הוספה או עדכון והוספה. מידע נוסף על מצבי הכתיבה השונים זמין במאמר העברות מלאות או מצטברות.
- כדי להעביר אובייקטים ב-Salesforce, לוחצים על עיון:
- בוחרים את האובייקטים שרוצים להעביר למערך הנתונים של היעד ב-BigQuery. אפשר גם להזין באופן ידני את כל האובייקטים שרוצים לכלול בהעברת הנתונים בשדה הזה.
- אם בחרתם באפשרות הוספה כמצב הכתיבה המצטבר, אתם חייבים לבחור עמודה כעמודת סימן המים.
- אם בחרתם באפשרות Upsert (עדכון והוספה) כמצב הכתיבה המצטבר, אתם צריכים לבחור עמודה כעמודת סימן המים, ואז לבחור עמודה אחת או יותר כמפתח הראשי.
בקטע הגדרות יעד, בשדה מערך נתונים, בוחרים את מערך הנתונים שיצרתם לאחסון הנתונים.
בקטע Transfer config name (שם הגדרת ההעברה), בשדה Display name (שם מוצג), מזינים שם להעברת הנתונים.
בקטע אפשרויות תזמון:
- ברשימה תדירות החזרה, בוחרים אפשרות כדי לציין באיזו תדירות יתבצע העברת הנתונים. כדי לציין תדירות חזרה מותאמת אישית, בוחרים באפשרות בהתאמה אישית. אם בוחרים באפשרות על פי דרישה, ההעברה הזו תתבצע כשמפעילים אותה באופן ידני.
- אם רלוונטי, בוחרים באפשרות התחלה מיידית או התחלה בשעה שנקבעה, ומזינים תאריך התחלה ומשך הפעלה.
אופציונלי: בקטע אפשרויות התראות, מבצעים את הפעולות הבאות:
- כדי להפעיל התראות באימייל, לוחצים על המתג התראות באימייל. כשמפעילים את האפשרות הזו, האדמין של ההעברה מקבל הודעה באימייל אם ההעברה נכשלת.
- כדי להפעיל התראות על הפעלת העברה ב-Pub/Sub להעברה הזו, לוחצים על המתג Pub/Sub notifications. אפשר לבחור את שם הנושא או ללחוץ על יצירת נושא כדי ליצור נושא.
לוחצים על Save.
BQ
מזינים את הפקודה bq mk ומספקים את הדגל ליצירת העברה --transfer_config:
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=NAME --target_dataset=DATASET --params='PARAMETERS'
כאשר:
- PROJECT_ID (אופציונלי): מזהה הפרויקט ב- Google Cloud .
אם לא מציינים את
--project_idכדי לציין פרויקט מסוים, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. - DATA_SOURCE: מקור הנתונים –
salesforce. - NAME: השם המוצג של הגדרות העברת הנתונים. שם ההעברה יכול להיות כל ערך שיעזור לכם לזהות את ההעברה אם תצטרכו לשנות אותה בהמשך.
- DATASET: מערך הנתונים של היעד בתצורת ההעברה.
PARAMETERS: הפרמטרים של הגדרות ההעברה שנוצרו בפורמט JSON. לדוגמה:
--params='{"param":"param_value"}'. אלה הפרמטרים להעברת נתונים מ-Salesforce:-
connector.authentication.oauth.clientId: מפתח הצרכן של האפליקציה המקושרת של Salesforce. -
connector.authentication.oauth.clientSecret: הסוד של לקוח OAuth או הסוד של הלקוח של האפליקציה המחוברת ב-Salesforce. -
connector.authentication.oauth.myDomain: הדומיין שלי ב-Salesforce. לדוגמה, אם כתובת ה-URL של הדומיין היאexample.my.salesforce.com, אז הערך הואexample. -
ingestionType: מצייניםfullאוincremental. מידע נוסף זמין במאמר בנושא העברות מלאות או מצטברות. -
writeMode: מצייניםWRITE_MODE_APPENDאוWRITE_MODE_UPSERT. -
watermarkColumns: מציינים עמודות בטבלה כעמודות של סימן מים. חובה למלא את השדה הזה כדי לבצע העברות מצטברות. -
primaryKeys: ציון עמודות בטבלה כמפתחות ראשיים. חובה למלא את השדה הזה כדי לבצע העברות מצטברות. -
assets: הנתיב לאובייקטים של Salesforce שיועברו אל BigQuery.
-
כשמציינים כמה נכסים במהלך העברה מצטברת, הערכים בשדות watermarkColumns ו-primaryKeys תואמים למיקום הערכים בשדה assets. בדוגמה הבאה, Id מתאים לטבלה Account, ואילו master_label ו-type מתאימים לטבלה CaseHistory.
"primaryKeys":[['Id'], ['master_label','type']], "assets":["Account","CaseHistory"],
הפקודה הבאה יוצרת העברת נתונים מצטברת מ-Salesforce בפרויקט שמוגדר כברירת מחדל, ומשתמשת במצב הכתיבה APPEND.
bq mk --transfer_config --target_dataset=mydataset --data_source=salesforce --display_name='My Transfer' --params='{"assets": ["Account", "CaseHistory"] "connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345", "connector.authentication.oauth.myDomain":"MyDomainName", "connector.authentication.username":"user1@force.com", "connector.authentication.password":"abcdef1234", "ingestionType":"incremental", "writeMode":"WRITE_MODE_UPSERT", "watermarkColumns":["SystemModstamp","CreatedDate"] "primaryKeys":[['Id'], ['master_label','type']]}'
API
משתמשים בשיטה projects.locations.transferConfigs.create ומספקים מופע של המשאב TransferConfig.
כדי להפעיל העברת נתונים ידנית מחוץ ללוח הזמנים הרגיל, אפשר להתחיל הפעלה של מילוי חוסרים.
פתרון בעיות בהגדרת ההעברה
אם נתקלתם בבעיות בהגדרת העברת הנתונים, כדאי לעיין במאמר בעיות בהעברה מ-Salesforce.
המאמרים הבאים
- סקירה כללית של שירות העברת הנתונים ל-BigQuery זמינה במאמר מבוא לשירות העברת נתונים ל-BigQuery.
- מידע על שימוש בהעברות, כולל קבלת מידע על הגדרת העברה, הצגת רשימה של הגדרות העברה וצפייה בהיסטוריית ההרצה של העברה, זמין במאמר עבודה עם העברות.
- איך טוענים נתונים באמצעות פעולות BigQuery Omni