שלב 5: הגדרת הפריסה
בדף הזה מתואר השלב החמישי בפריסה של Cortex Framework Data Foundation, הליבה של Cortex Framework. בשלב הזה, משנים את קובץ ההגדרות במאגר Data Foundation של Cortex Framework כך שיתאים לדרישות שלכם.
קובץ תצורה
ההתנהגות של הפריסה נשלטת על ידי קובץ ההגדרות config.json
ב-Cortex Framework Data Foundation. הקובץ הזה מכיל הגדרות גלובליות והגדרות ספציפיות לכל עומס עבודה.
כדי לערוך את הקובץ config.json לפי הצרכים שלכם, מבצעים את השלבים הבאים:
- פותחים את הקובץ
config.jsonמ-Cloud Shell. עורכים את קובץ
<td"> Parameter <td">Meaning <td">Default Value <td">Description </td"></td"></td"></td"><td">config.jsonבהתאם לפרמטרים הבאים:testData<td">Deploy Test Data <td">true<td">Project where the source dataset is and the build runs. הערה: פריסת נתוני בדיקה תתבצע רק אם מערך הנתונים הגולמי ריק ואין בו טבלאות. </td"></td"></td"></td"><td">deploySAP<td">פריסת SAP <td">true<td">הפעלת הפריסה עבור עומס עבודה של SAP (ECC או S/4 HANA). </td"></td"></td"></td"><td">deploySFDC<td">פריסת Salesforce <td">true<td">הפעלת הפריסה עבור עומס העבודה של Salesforce. </td"></td"></td"></td"><td">deployMarketing<td">הטמעה של שיווק <td">true<td">הפעלת ההטמעה עבור מקורות שיווקיים (Google Ads, CM360 ו-TikTok). </td"></td"></td"></td"><td">deployOracleEBS<td">פריסת Oracle EBS <td">true<td">הפעלת הפריסה עבור עומס העבודה של Oracle EBS. </td"></td"></td"></td"><td">enableTaskDependencies<td">Task dependent DAGs <td">false<td">Enable task dependent DAGs so supported SQL tables will be executed based on dependency order, within single DAGs. מידע נוסף זמין במאמר בנושא Task dependent DAGs. </td"></td"></td"></td"><td">turboMode<td">פורסים במצב טורבו. <td">true<td">מריצים את כל בניית התצוגות כשלב בתהליך Cloud Build, במקביל לפריסה מהירה יותר. אם ההגדרה היאfalse, כל תצוגת דוחות נוצרת בשלב בנייה משלה. מומלץ להגדיר את האפשרות הזו לערךtrueרק כשמשתמשים בנתוני בדיקה או אחרי שפותרים אי התאמה בין עמודות הדיווח לבין נתוני המקור. </td"></td"></td"></td"><td">projectIdSource<td">מזהה פרויקט המקור <td">- <td">הפרויקט שבו נמצא מערך נתוני המקור וההרצה מתבצעת. </td"></td"></td"></td"><td">projectIdTarget<td">מזהה פרויקט היעד <td">- <td">פרויקט היעד של מערכי נתונים שפונים למשתמשים. </td"></td"></td"></td"><td">targetBucket<td">Target Bucket to storage generated DAG scripts <td">- <td">Bucket created previously where DAGs (and Dataflow temp files) are generated. לא מומלץ להשתמש בקטגוריית Airflow בפועל. </td"></td"></td"></td"><td">location<td">מיקום או אזור <td">"US"<td">המיקום שבו נמצאים מערך הנתונים של BigQuery ודלי Cloud Storage.אפשר לעיין במגבלות שמפורטות בקטע מיקומים של מערכי נתונים ב-BigQuery.
</td"></td"></td"></td"><td">testDataProject<td">מקור של כלי לבדיקת תוכנה <td">kittycorn-public<td">מקור נתוני הבדיקה להדגמות של פריסות. ההגדרה חלה כש-testDataהואtrue.אל תשנו את הערך הזה, אלא אם יש לכם מסגרת בדיקה משלכם.
</td"></td"></td"></td"><td">k9.datasets.processing<td">K9 datasets - Processing <td">"K9_PROCESSING"<td">Execute cross-workload templates (for example, date dimension) as defined in the K9 configuration file. בדרך כלל, תבניות כאלה נדרשות לעומסי עבודה במורד הזרם. </td"></td"></td"></td"><td">k9.datasets.reporting<td">K9 datasets - Reporting <td">"K9_REPORTING"<td">Execute cross-workload templates and external data sources (for example: weather) as defined in the K9 configuration file. היא מושבתת כברירת מחדל. </td"></td"></td"></td">מגדירים את עומסי העבודה הנדרשים לפי הצורך. אין צורך להגדיר אותם אם פרמטר הפריסה (לדוגמה,
deploySAPאוdeployMarketing) של עומס העבודה מוגדר ל-False. מידע נוסף זמין בקטע שלב 3: קביעת מנגנון האינטגרציה.
כדי להתאים אישית את הפריסה, אפשר לבצע את השלבים האופציונליים הבאים:
אופטימיזציה של הביצועים לתצוגות של דוחות
אפשר ליצור פריטי מידע שנוצרו בתהליך הפיתוח (Artifacts) לדיווח כתצוגות או כטבלאות שמתעדכנות באופן קבוע באמצעות DAG. מצד אחד, התצוגות מחשבות את הנתונים בכל הפעלה של שאילתה, כך שהתוצאות תמיד עדכניות. לעומת זאת, הטבלה מריצה את החישובים פעם אחת, ואפשר להריץ עליה שאילתות כמה פעמים בלי להגדיל את עלויות המחשוב ובזמן ריצה מהיר יותר. כל לקוח יוצר הגדרה משלו בהתאם לצרכים שלו.
התוצאות המגובות מתעדכנות בטבלה. אפשר לשפר את הטבלאות האלה עוד יותר על ידי הוספת חלוקה למחיצות ואשכולות.
קובצי ההגדרות של כל עומס עבודה נמצאים בנתיבים הבאים במאגר Cortex Framework Data Foundation:
<td">מקור נתונים <td">קבצי הגדרות </td"></td"><td">תפעולי – SAP <td">src/SAP/SAP_REPORTING/reporting_settings_ecc.yaml
</td"></td"><td">תפעולי – Salesforce Sales Cloud
<td">src/SFDC/config/reporting_settings.yaml
</td"></td"><td">תפעולי – Oracle EBS
<td">src/oracleEBS/config/reporting_settings.yaml
</td"></td"><td">שיווקי – Google Ads
<td">src/marketing/src/GoogleAds/config/reporting_settings.yaml
</td"></td"><td">שיווקי – CM360
<td">src/marketing/src/CM360/config/reporting_settings.yaml
</td"></td"><td">שיווקי – Meta
<td">src/marketing/src/Meta/config/reporting_settings.yaml
</td"></td"><td">שיווקי – Salesforce Marketing Cloud
<td">src/marketing/src/SFMC/config/reporting_settings.yaml
</td"></td"><td">שיווקי – TikTok
<td">src/marketing/src/TikTok/config/reporting_settings.yaml
</td"></td"><td"> שיווקי – YouTube (עם DV360)
<td">src/marketing/src/DV360/config/reporting_settings.yaml
</td"></td"><td">שיווקי – Google Analytics 4
<td">src/marketing/src/GA4/config/reporting_settings.yaml
</td"></td"><td">שיווקי – Cross Media & Product Connected Insights
<td">src/marketing/src/CrossMedia/config/reporting_settings.yaml
</td"></td">התאמה אישית של קובץ הגדרות הדיווח
קובצי reporting_settings קובעים איך אובייקטים של BigQuery (טבלאות או תצוגות) נוצרים עבור מערכי נתונים של דיווח. אפשר להתאים אישית את הקובץ באמצעות תיאורי הפרמטרים הבאים. נניח שהקובץ הזה מכיל שני קטעים:
-
bq_independent_objects: כל האובייקטים ב-BigQuery שאפשר ליצור באופן עצמאי, ללא תלות באובייקטים אחרים. כשמפעילים אתTurbo mode, אובייקטים של BigQuery נוצרים במקביל בזמן הפריסה, וכך תהליך הפריסה מתבצע מהר יותר. -
bq_dependent_objects: כל האובייקטים ב-BigQuery שצריך ליצור בסדר מסוים בגלל תלות באובייקטים אחרים ב-BigQuery.Turbo modeלא רלוונטי לקטע הזה.
הכלי לפריסה יוצר קודם את כל האובייקטים של BigQuery שמפורטים ב-bq_independent_objects, ואז את כל האובייקטים שמפורטים ב-bq_dependent_objects. מגדירים את המאפיינים הבאים לכל אובייקט:
-
sql_file: השם של קובץ ה-SQL שיוצר אובייקט נתון. -
type: סוג האובייקט ב-BigQuery. ערכים אפשריים:-
view: אם רוצים שהאובייקט יהיה תצוגה ב-BigQuery. -
table: אם רוצים שהאובייקט יהיה טבלה ב-BigQuery. -
script: כדי ליצור סוגים אחרים של אובייקטים (לדוגמה, פונקציות של BigQuery ותהליכים מאוחסנים).
-
- אם הערך של
typeהואtable, אפשר להגדיר את המאפיינים האופציונליים הבאים:-
load_frequency: התדירות שבה DAG של Composer מופעל כדי לרענן את הטבלה הזו. פרטים על הערכים האפשריים מופיעים בתיעוד של Airflow. partition_details: איך הטבלה צריכה להיות מחולקת למחיצות. הערך הזה הוא אופציונלי. מידע נוסף זמין בקטע חלוקת טבלה למחיצות.-
cluster_details: איך הטבלה צריכה להיות מקובצת. הערך הזה הוא אופציונלי. מידע נוסף זמין בקטע הגדרות של אשכול.
-
מחיצה בטבלה
קבצים מסוימים של הגדרות מאפשרים להגדיר טבלאות מגובות עם אפשרויות מותאמות אישית של אשכולות ומחיצות. האפשרות הזו יכולה לשפר משמעותית את הביצועים של שאילתות בקבוצות גדולות של נתונים. האפשרות הזו חלה רק על קבצים מסוג SAP cdc_settings.yaml ועל כל הקבצים מסוג reporting_settings.yaml.
כדי להפעיל את האפשרות 'חלוקת טבלה', צריך לציין את הפרטים הבאיםpartition_details:
- base_table: vbap
load_frequency: "@daily"
partition_details: {
column: "erdat", partition_type: "time", time_grain: "day" }
כדי לשלוט בפרטי החלוקה של טבלה מסוימת, אפשר להשתמש בפרמטרים הבאים:
<td">Property <td">Description <td">Value </td"></td"></td"><td">column
<td">Column by which the CDC table is partitioned.
<td">שם העמודה.
</td"></td"></td"><td">partition_type
<td">סוג המחיצה.
<td">"time" לחלוקה לפי זמן. מידע נוסף זמין במאמר בנושא טבלאות עם חלוקה למחיצות לפי חותמת זמן.
"integer_range" למחיצה שמבוססת על מספרים שלמים. מידע נוסף זמין במאמר בנושא טווח מספרים שלמים.
</td"></td"></td"><td">time_grain
<td">Time part to partition with
Required when partition_type = "time".
<td">"hour", "day", "month" או "year".
</td"></td"></td"><td">integer_range_bucket
<td">טווח הדלי
חובה כשpartition_type = "integer_range"
<td">"start" = ערך התחלתי,
"end" = ערך סופי ו"interval" = מרווח הטווח.
</td"></td"></td">מידע נוסף על האפשרויות והמגבלות הקשורות זמין במאמר בנושא חלוקת טבלאות ב-BigQuery.
הגדרות האשכול
כדי להפעיל את האפשרות 'קיבוץ טבלאות', מציינים את cluster_details:
- base_table: vbak
load_frequency: "@daily"
cluster_details: {columns: ["vkorg"]}
אפשר להשתמש בפרמטרים הבאים כדי לשלוט בפרטי האשכול של טבלה מסוימת:
<td">Property <td">Description <td">Value </td"></td"></td"><td">columns
<td">העמודות שלפיהן הטבלה מקובצת.
<td">רשימה של שמות עמודות. לדוגמה,
"mjahr" ו-"matnr".
</td"></td"></td">מידע נוסף על האפשרויות והמגבלות שקשורות אליהן זמין במאמרי העזרה בנושא אשכולות של טבלאות.
השלבים הבאים
אחרי שמסיימים את השלב הזה, עוברים לשלב הפריסה הבא:
- הגדרת עומסי עבודה.
- שכפול המאגר.
- קובעים את מנגנון השילוב.
- הגדרת רכיבים
- הגדרת הפריסה (הדף הזה).
- הפעלת הפריסה.