בדף הזה מוסבר איך לטעון נתונים מ-sObjects של Salesforce אל Google Cloudבאמצעות Cloud Data Fusion. תוסף המקור של Salesforce batch קורא sObjects מ-Salesforce. אובייקטים מסוג sObject הם טבלאות Salesforce שאתם מתכננים לשלוף מהן נתונים. דוגמאות ל-sObjects: הזדמנויות עסקיות, אנשי קשר, חשבונות, לידים ואובייקטים מותאמים אישית.
התוסף של מקור נתונים מסוג Salesforce batch תומך בקריאת נתונים באמצעות שאילתות של Salesforce Object Query Language (SOQL) ומסננים מצטברים או מסננים של טווח תאריכים.
לפני שמתחילים
- מקור האצווה של Salesforce ב-Cloud Data Fusion משתמש ב-Salesforce Bulk API V1.
- צריך להגדיר את Salesforce לפני שמפעילים את הפלאגין של Cloud Data Fusion ל-Salesforce ומשתמשים בו. מידע נוסף זמין במאמר יצירת אפליקציה מקושרת של Salesforce ל-Cloud Data Fusion.
הגדרת הפלאגין
- עוברים לממשק האינטרנט של Cloud Data Fusion ולוחצים על Studio.
- מוודאים שהאפשרות Data Pipeline - Batch (צינור נתונים – אצווה) נבחרה (ולא Realtime (זמן אמת)).
- בתפריט מקור, לוחצים על Salesforce. צומת Salesforce מופיע בצינור. אם מקור הנתונים של Salesforce לא מופיע בדף Studio, צריך לפרוס את הפלאגינים של Salesforce מ-Cloud Data Fusion Hub.
- כדי להגדיר את המקור, עוברים לצומת Salesforce ולוחצים על Properties (מאפיינים).
מזינים את המאפיינים הבאים. רשימה מלאה זמינה במאמר בנושא מאפיינים.
- מזינים תווית לצומת Salesforce – לדוגמה,
Salesforce tables. - מזינים שם הפניה למקור Salesforce עבור שושלת נתונים – לדוגמה,
Salesforce tables. מזינים את פרטי החיבור. אתם יכולים להגדיר חיבור חדש וחד-פעמי או חיבור קיים שאפשר להשתמש בו שוב.
חיבור חדש
כדי להוסיף חיבור חד-פעמי ל-Salesforce, פועלים לפי השלבים הבאים:
- משאירים את ההגדרה שימוש בחיבור מושבתת.
בקטע Connection (חיבור), מזינים את הפרטים הבאים מחשבון Salesforce בשדות האלה:
- שם משתמש
- סיסמה
- טוקן אבטחה
- טוקן צרכן
- סוד צרכן
כדי לקבל את פרטי הכניסה מ-Salesforce, אפשר לעיין במאמר בנושא קבלת מאפיינים מ-Salesforce.
חיבור לשימוש חוזר
כדי לעשות שימוש חוזר בחיבור קיים, פועלים לפי השלבים הבאים:
- מפעילים את האפשרות שימוש בחיבור.
- לוחצים על Browse connections (עיון בחיבורים).
לוחצים על שם החיבור.
אופציונלי: אם לא קיים חיבור ואתם רוצים ליצור חיבור חדש לשימוש חוזר, לוחצים על Add connection (הוספת חיבור) ופועלים לפי השלבים בכרטיסייה New connection (חיבור חדש).
מזינים את שם אובייקט S כדי לטעון את כל העמודות מהאובייקט.
אופציונלי: אם בוחרים את שם ה-sObject, אפשר לסנן את הנתונים באמצעות השדות הבאים:
- השינוי האחרון אחרי: כולל רק רשומות שהשינוי האחרון בהן בוצע אחרי זמן מסוים.
- השינוי האחרון בוצע לפני: כולל רק רשומות שהשינוי האחרון בהן בוצע לפני זמן מסוים.
- משך: כולל רק רשומות שהשינוי האחרון בהן בוצע בתוך חלון זמן בגודל שצוין.
- Offset: כולל רק רשומות שבהן התאריך של השינוי האחרון מוקדם יותר מזמן ההתחלה הלוגי של הצינור, פחות ההיסט שצוין.
אופציונלי: כדי לשפר את הביצועים של צינור, מפעילים את האפשרות הפעלת חלוקה למקטעים של מפתח ראשי עבור אובייקטים נתמכים של Salesforce (sObject). מידע נוסף זמין במאמר שיפור הביצועים באמצעות חלוקה לקטעים של מפתח ראשי.
אופציונלי: במקום לציין את שם ה-sObject, אפשר להזין שאילתת SOQL, כמו
SELECT LastName from Contact. מידע נוסף זמין במאמר בנושא שאילתות SOQL למקור Salesforce.כדי לבדוק את הקישוריות, לוחצים על קבל סכימה. Cloud Data Fusion מתחבר ל-Salesforce ושולף את הסכימה של הטבלה שמופיעה ברשימה (מבחינה טכנית, sObject).
- מזינים תווית לצומת Salesforce – לדוגמה,
מאפיינים
| מאפיין (property) | יכולות מאקרו | מאפיין חובה | תיאור |
|---|---|---|---|
| שם לצורך סימוכין | לא | כן | השדה הזה משמש לזיהוי ייחודי של המקור הזה במשימות כמו מעקב אחר מקורות נתונים, הערות למטא נתונים. |
| שימוש בחיבור | לא | לא | שימוש בחיבור קיים. אם נעשה שימוש בחיבור, לא צריך לספק את פרטי הכניסה. |
| עיון בחיבורים | כן | לא | השם של החיבור שבו רוצים להשתמש. |
| שם משתמש | כן | כן | שם המשתמש ב-Salesforce. |
| סיסמה | כן | כן | הסיסמה ל-Salesforce. |
| טוקן אבטחה | כן | לא | טוקן אבטחה של Salesforce. אם הסיסמה לא מכילה את אסימון האבטחה, אפליקציית Cloud Data Fusion מוסיפה את האסימון לפני האימות ב-Salesforce. |
| טוקן צרכן | כן | כן | טוקן צרכן של האפליקציה. הוא נקרא גם מזהה לקוח ב-OAuth. כדי לקבל טוקן צרכן, צריך ליצור אפליקציה מקושרת ב-Salesforce. |
| סוד צרכן | כן | כן | סוד הצרכן של האפליקציה. הוא נקרא גם סוד של לקוח OAuth. כדי לקבל סוד לקוח, צריך ליצור אפליקציה מקושרת ב-Salesforce. |
| כתובת URL להתחברות | כן | כן | כתובת ה-URL להתחברות ל-Salesforce OAuth2. ברירת המחדל היא https://login.salesforce.com/services/oauth2/token |
| תם הזמן הקצוב לחיבור | כן | לא | משך הזמן המרבי, באלפיות השנייה, להמתנה לאתחול החיבור לפני שחלף הזמן הקצוב לתפוגה. ברירת המחדל היא 30,000 אלפיות השנייה. |
| כתובת אתר של proxy | כן | לא | כתובת URL של שרת proxy, שכוללת פרוטוקול, כתובת ויציאה. |
| SOQL | כן | לא | שאילתת SOQL לאחזור נתונים למקור. דוגמאות:
|
| שם ה-SObject | כן | לא | שם אובייקט Salesforce לקריאה. אם מספקים ערך, המחבר מקבל את כל השדות של האובייקט הזה מ-Salesforce ויוצר שאילתת SOQL, כמו select FIELD_1, FIELD_2 from
${sObjectName}. המערכת מתעלמת מהמאפיין הזה אם צוינה שאילתת SOQL.יש גם אובייקטים מסוג sObject שלא נתמכים ב-Salesforce Bulk API. יצירת עבודה עם אובייקט שלא נתמך גורמת לשגיאה הבאה: Entity is not supported by the Bulk
API. בנוסף, אי אפשר להשתמש באובייקטים האלה ב-Einstein Analytics, שמשתמש ב-Bulk API לשליחת שאילתות לגבי נתונים.מקרים שבהם לא נעשה שימוש ב-BULK API: כשמשתמשים באורך שאילתה כדי לשלוח את השאילתה ל-Salesforce ולקבל את מערך פרטי החבילה, לא נעשה שימוש ב-Bulk API במקרה אחד. אם השאילתה נמצאת במסגרת המגבלה, המערכת מריצה את השאילתה המקורית. אחרת, המערכת עוברת ללוגיקה של אובייקט רחב. לדוגמה, המערכת יוצרת שאילתת מזהה שמאחזרת רק מידע על חבילות למזהים שישמשו בהמשך לאחזור נתונים באמצעות SOAP API. |
| השינוי האחרון נעשה אחרי | כן | לא | סינון הנתונים כך שיכללו רק רשומות שבהן השדה של המערכת,
LastModifiedDate, גדול או שווה לתאריך שצוין. צריך להשתמש בפורמט התאריך של Salesforce (דוגמאות מפורטות כאן). אם לא מציינים ערך,
לא מוחל תאריך מינימלי. |
| השינוי האחרון בוצע לפני | כן | לא | מסננים את הנתונים כך שיכללו רק רשומות שבהן שדה המערכת,
LastModifiedDate, קטן מהתאריך שצוין. משתמשים בפורמט התאריך של Salesforce (דוגמאות). אם מציינים את הערך הזה באמצעות המאפיין Last modified after, אפשר לקרוא נתונים שהשתנו בפרק זמן מסוים. אם לא מציינים ערך, לא מוגדר תאריך עליון. |
| משך | כן | לא | סינון הנתונים כך שיוצגו רק רשומות שהעדכון האחרון שלהן בוצע בטווח זמן בגודל שצוין. לדוגמה, אם משך הזמן הוא
6 hours והצינור פועל בשעה 9:00, הוא יקרא נתונים
שעודכנו לאחרונה בין השעה 3:00 (כולל) ל-9:00 (לא כולל).
מציינים את משך הזמן באמצעות מספרים ויחידות הזמן הבאות:
2 days, 1 hours, 30 minutes. אם כבר צוין ערך עבור Last modified after או Last modified before, המערכת מתעלמת מהמשך. |
| טווח זמן | כן | לא | מסננים את הנתונים כך שייקראו רק רשומות שבהן שדה המערכת,
LastModifiedDate, קטן מזמן ההתחלה הלוגי של צינור העיבוד, פחות ההיסט שצוין. לדוגמה, אם משך הזמן הוא
6 hours, ההיסט הוא 1 hours, והצינור
פועל בשעה 9:00, המערכת קוראת נתונים שהשינוי האחרון בהם בוצע בין השעות 2:00 (כולל) ל-8:00 (לא כולל).מציינים את משך הזמן באמצעות מספרים ויחידות הזמן הבאות:
2 days, 1 hours, 30 minutes. אם כבר צוין ערך עבור תאריך שינוי אחרון אחרי או תאריך שינוי אחרון לפני, המערכת מתעלמת מההיסט. |
| סוג פעולת SOQL | לא | לא | מציינים את פעולת השאילתה שרוצים להריץ על הטבלה. אם נבחרה שאילתה,
יוחזרו רק רשומות עדכניות. בחירה באפשרות queryAll
מחזירה את כל הרשומות הנוכחיות והרשומות שנמחקו.פעולת ברירת המחדל היא query. |
| הפעלת חלוקה למקטעים של מפתח ראשי | כן | לא | פיצול לפי מפתח ראשי (PK) מפצל שאילתה בטבלאות גדולות לחלקים, או למקטעים, על סמך מזהי הרשומות, או המפתחות הראשיים, של הרשומות שנכללות בשאילתה. ב-Salesforce מומלץ להפעיל את האפשרות PK chunking כששולחים שאילתות לטבלאות עם יותר מ-10 מיליון רשומות, או כששאילתת Bulk נכשלת כל הזמן בגלל חריגה מזמן קצוב לתפוגה. מידע נוסף זמין במאמר בנושא חלוקת מפתח ראשי (PK) לחלקים. השיטה PK chunking פועלת רק עם שאילתות שלא כוללות משפטי SELECT או תנאים אחרים מלבד WHERE.
החלוקה לחלקים נתמכת באובייקטים בהתאמה אישית ובכל טבלאות השיתוף וההיסטוריה שתומכות באובייקטים רגילים. |
| גודל המקטע | כן | לא | מציינים את גודל החלק. הגודל המקסימלי הוא 250,000. גודל ברירת המחדל הוא 100,000. |
| שם האב של SObject | כן | לא | אובייקט האב של אובייקט Salesforce. ההגדרה הזו משמשת להפעלת חלוקה לחלקים של טבלאות היסטוריה או אובייקטים משותפים. |
דוגמאות לפורמטים של תאריכים ב-Salesforce
| תחביר העיצוב | דוגמה |
|---|---|
YYYY-MM-DDThh:mm:ss+hh:mm |
1999-01-01T23:01:01+01:00 |
YYYY-MM-DDThh:mm:ss-hh:mm |
1999-01-01T23:01:01-08:00 |
YYYY-MM-DDThh:mm:ssZ |
1999-01-01T23:01:01Z |
מיפוי של סוגי נתונים
בטבלה הבאה מפורטים סוגי הנתונים ב-Salesforce עם הסוגים התואמים ב-CDAP.
| סוג הנתונים ב-Salesforce | סוג נתונים של סכימה ב-CDAP |
|---|---|
_bool |
boolean |
_int |
int |
_long |
long |
_double, currency, percent,
geolocation (קו רוחב), geolocation
(קו אורך) |
double |
date |
date |
datetime |
timestamp (מיקרו-שניות) |
time |
time (מיקרו-שניות) |
picklist |
string |
multipicklist |
string |
combobox |
string |
reference |
string |
base64 |
string |
textarea |
string |
phone |
string |
id |
string |
url |
string |
email |
string |
encryptedstring |
string |
datacategorygroupreference |
string |
location |
string |
address |
string |
anyType |
string |
json |
string |
complexvalue |
string |
תרחישים לדוגמה
בהמשך מפורטים תרחישי שימוש במקור אצווה של Salesforce:
דרישות מוקדמות לשדרוג לגרסה 1.7.0 של הפלאגין Salesforce
גרסה 1.7.0 של הפלאגין Salesforce זמינה ב-Cloud Data Fusion בגרסה 6.8.0 ואילך. הגרסה הזו כוללת שדרוג של Salesforce Bulk API V1 מגרסה 62.0 לגרסה 64.0.
חברת Salesforce הוציאה משימוש שדות מסוימים בגרסה 64.0 של ה-API. שדרוג לגרסה 1.7.0 של הפלאגין Salesforce עלול לגרום לכשל בצינורות (pipelines) שמשתמשים בשדות האלה. כדי לוודא שצינורות העיבוד ימשיכו לפעול, צריך לעדכן ידנית את סכימת צינור העיבוד כדי לטעון סכימה חדשה או להסיר את השדות שהוצאו משימוש.
שדות שיצאו משימוש ב-Salesforce API גרסה 64.0
Salesforce הוציאה משימוש את השדות הבאים בגרסה 64.0 של ה-API:
| שם האובייקט | שמות השדות |
|---|---|
| MobSecurityCertPinConfig | EffectiveDate |
| פרופיל | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
| PermissionSet | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
| PermissionSetLicense | MaximumPermissionsAllowObjectDetectionTraining MaximumPermissionsAllowObjectDetection |
| UserPermissionAccess | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
| MutingPermissionSet | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
| דומיין | OptionsHstsHeaders |
| משתמש | UserPreferencesHideInvoicesRedirectConfirmation UserPreferencesHideStatementsRedirectConfirmation |
| UserChangeEvent | UserPreferencesHideInvoicesRedirectConfirmation UserPreferencesHideStatementsRedirectConfirmation |
עדכון סכימת צינור עיבוד הנתונים
אם בצינור שלכם נעשה שימוש בשדות שיצאו משימוש, צריך לעדכן את סכימת הצינור. אפשר לעשות זאת על ידי טעינת סכימה חדשה או על ידי הסרת השדות שיצאו משימוש:
עוברים לממשק האינטרנט של Cloud Data Fusion ולוחצים על רשימה.
כדי לראות את צינורות הנתונים שנפרסו, לוחצים על הכרטיסייה Deployed (נפרסו).
בצינור שרוצים לעדכן, לוחצים על > עריכה.
בתצוגה Studio, מעבירים את מצביע העכבר מעל תוסף המקור של Salesforce ולוחצים על Properties (מאפיינים).
חלון ההגדרה של הפלאגין Salesforce ייפתח.
כדי לטעון סכימה חדשה, פועלים לפי השלבים הבאים:
בכרטיסייה Output schema (סכימת פלט), לוחצים על > Clear (ניקוי) ואז על Validate (אימות). הפעולה הזו טוענת את הסכימה העדכנית מ-Salesforce.
אחרי שהסכימה נטענת, בכרטיסייה Output schema (סכימת פלט), לוחצים על > Propagate (הפצה).
הפעולה הזו מעדכנת אוטומטית את הסכימה של כל התוספים הבאים בצינור, ויכולה לדרוס שינויים בסכימה שבוצעו באופן ידני בתוספים כמו Wrangler.
כדי להסיר ידנית את השדות שיצאו משימוש, מבצעים את השלב הבא:
- בכרטיסייה Output schema (סכימת פלט), לוחצים על הסמל ליד כל אחד מהשדות שהוצאו משימוש. הפעולה הזו תסיר את השדות מכל השלבים הבאים.
שיטות מומלצות
מידע נוסף על שיפור הביצועים במקור אצווה של Salesforce זמין במאמר בנושא שיטות מומלצות.
נתוני גרסה
המאמרים הבאים
- אפשר להיעזר במדריך לתוסף Salesforce.