הגדרת התצורה של פריסה
במסמך הזה מוסבר על אפשרויות ההגדרה של הפריסה של Cortex Framework בתחומים הבאים:
- הגדרות פריסה (
config/config.yaml): הגדרת משתנים גלובליים, סביבות בנייה ומיפוי מודולים (יעדים של בסיס נתונים ומוצר נתונים). - הגדרות טבלה (
table_settings.yaml): מפרטים של ביצועים וסכימות שספציפיים למודול, שמתארים איך טבלאות בסיס נערכות ומתאימות ב-BigQuery.
במדריך הזה יש גם מדריכים עם הוראות מפורטות לתרחישים נפוצים של פריסה.
קובץ תצורה: config/config.yaml
קובץ config/config.yaml – בדרך כלל מאותחל מתבנית config/config.yaml.example – משמש כהגדרה הראשית לפריסת Cortex Framework. הוא מגדיר פרמטרים קריטיים, כולל פרויקט הביצוע של היעד Google Cloud , מערכי הנתונים של BigQuery במקור וביעד, ומפרטים של Dataform כמו שמות המאגר וסביבת העבודה.
בקטעים הבאים מפורט המבנה של config/config.yaml.
סביבת build
פרויקט סביבת הבנייה הוא הפרויקט שמחויב על פעולות בנייה, כמו משימות BigQuery (קריאה DD03L).
buildEnvironment:
buildProjectId: YOUR_BUILD_PROJECT_ID
בטבלה הבאה מפורטים הפרמטרים של סביבת הבנייה.
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
buildEnvironment.buildProjectId |
מזהה פרויקט של גרסת build | YOUR_BUILD_PROJECT_ID |
Google Cloud מזהה הפרויקט שבו מבוצעות פעולות הבנייה. |
סקירה כללית על קטע הנתונים
בקטע data: של קובץ ההגדרות מוגדרים מקורות הנתונים, יעדי הנתונים והמודולים הספציפיים של בסיס הנתונים ומוצרי הנתונים.
המבנה הכללי שלו הוא כזה:
data:
# Geographic location for BigQuery datasets (for example: US, EU, us-central1)
# For full list see: https://docs.cloud.google.com/cortex/docs/supported-locations
bigQueryLocation: US
# List of namespaces for data foundation and product modules.
namespaces:
- name: cortex
path: cortex
# List of source datasets.
sources:
- ...
# List of target datasets.
targets:
- ...
# Configuration for data foundation and product modules.
modules:
# List of foundation modules.
foundation:
- ...
# List of data product modules.
product:
- ...
נתונים: מיקום ב-BigQuery
הגדרת המיקום של מערכי הנתונים של מקור ויעד BigQuery.
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
data.bigQueryLocation |
מיקום ב-BigQuery | US |
המיקום של מערך הנתונים ב-BigQuery (לדוגמה, US, us-central1 או europe-west1).
|
נתונים: מרחב שמות של Cortex
הגדרת מרחב השמות של Cortex Framework.
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
data.namespaces.name |
שם מרחב השמות | - | שם מרחב השמות של Cortex Framework. לדוגמה, cortex. |
data.namespaces.path |
נתיב מרחב שמות | - | נתיב מרחב השמות של Cortex Framework עבור ספריות משנה שמשמשות בתיקייה src ובתיקייה config. לדוגמה, cortex. |
נתונים: מערכי נתונים של מקורות ויעדים ב-BigQuery
רשימת המקורות מגדירה מערכי נתונים ב-BigQuery שבהם הנתונים הגולמיים ממערכת המקור שוכפלו או הועברו בסטרימינג.
יעדי הייצוא מגדירים רשימה של מערכי נתונים ב-BigQuery שבהם יאוחסנו מערכי הנתונים שעברו עיבוד ב-Dataform.
כל אחד ממקורות היעד וממקורות ההפניה מוזכר במודולים באמצעות המזהה הייחודי שלו.
# Data source and target mapping
sources:
- id: sap_raw
projectId: YOUR_SOURCE_PROJECT_ID
datasetId: cortex_sap_raw
targets:
- id: sap_foundation
projectId: YOUR_TARGET_PROJECT_ID
datasetId: cortex7_sap_data_foundation
בטבלה הבאה מתוארים הפרמטרים של מיפוי מקור הנתונים והיעד.
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
data.sources.id |
מזהה מקור | - |
המאפיין מגדיר את ה-id של מערך הנתונים שממנו יתבצע שליפת הנתונים. לדוגמה, sap_raw. |
data.sources.projectId |
מזהה פרויקט המקור | YOUR_SOURCE_PROJECT_ID |
מפנה אל Google Cloud מזהה הפרויקט עם נתוני המקור. |
data.sources.datasetId |
מזהה מערך הנתונים של BigQuery במקור | - |
מפנה למזהה של מערך הנתונים ב-BigQuery עם נתוני המקור. לדוגמה, cortex_sap_raw. |
data.targets.id |
מזהה יעד | - | מגדיר את המזהה של קבוצת הנתונים של היעד. לדוגמה, sap_foundation. |
data.targets.projectId |
מזהה פרויקט היעד | YOUR_TARGET_PROJECT_ID |
מפנה אל מזהה הפרויקט ב- Google Cloud של נתוני היעד. |
data.targets.datasetId |
מזהה מערך הנתונים של BigQuery שמשמש כיעד | - |
מפנה למזהה של מערך הנתונים ב-BigQuery של נתוני היעד. לדוגמה, cortex7_sap_data_foundation. |
נתונים: מודולים
המודולים מגדירים את המבנה והרכיבים של צינורות הנתונים של Dataform.
נתונים: מודולים: בסיס
בקטע הזה מגדירים את המודולים של שכבת בסיס הנתונים שמבצעים עיבוד של נתונים מהשכבה הגולמית (זרמי CDC) לייצוג סטנדרטי של הרשומות האחרונות של נתוני המקור. אם המקור מספק תצוגה של הרשומות האחרונות ישירות, או אם המערכת המקורית מבצעת טרנספורמציות כאלה, אפשר להגדיר את המודול כמקור חיצוני של שכבת נתונים בסיסית.
modules:
# List of foundation modules.
foundation:
# Unique identifier for the module instance.
- moduleId: erp
# Type of the module (namespaced, for example, cortex.sap).
type: cortex.sap
# Reference to the source dataset ID.
dataSourceId: sap_raw
# Reference to the target dataset ID.
dataTargetId: sap_foundation
# Module-specific configuration settings.
moduleSettings:
# SAP version (for example, ecc, s4).
sapVersion: ecc
# SAP client number.
mandt: "100"
# Whether the module is enabled.
# enabled: true
# Whether the foundation is external (does not create target dataset).
# external: false
# Custom table settings file, relative to 'config/' file directory
# Recommended path: '{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml'
# Default path: '../src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml'
# tableSettings: "custom_datafoundation_table_settings.yaml"
בטבלה הבאה מפורטים הפרמטרים של מודולי בסיס הנתונים להגדרת modules.foundation.
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
moduleId |
מזהה המודול | erp |
מזהה ייחודי של מופע ספציפי של מודול טרנספורמציה של שכבת נתונים בסיסית. |
type |
סוג הלוגיקה של המודול | cortex.sap |
הגדרת הלוגיקה העסקית או התבנית שמוחלת (לדוגמה, cortex.sap). |
dataSourceId |
קישור למקור | sap_raw |
מפנה אל ה-id מהרשימה data.sources כדי לשלוף נתונים. |
dataTargetId |
קישור היעד | sap_foundation |
מפנה אל ה-id מרשימת היעדים כדי לדחוף אליו נתונים. |
moduleSettings.sapVersion |
גרסת מערכת SAP | ecc |
רלוונטי רק למקורות נתונים של SAP. ההגדרה הזו קובעת את הלוגיקה הספציפית למקור עבור מערכות ecc (ECC) או s4 (S/4HANA). |
moduleSettings.mandt |
לקוח SAP (Mandant) | 100 |
רלוונטי רק למקורות נתונים של SAP. מזהה הלקוח ב-SAP, בן 3 ספרות, שמשמש לסינון שורות נתונים. |
enabled |
הפעלת המודול | true |
קובעת אם המודול מופעל. |
external |
קרן חיצונית | false |
מציין אם השכבה הבסיסית היא חיצונית (לא יוצרת מערך נתונים של יעד). |
tableSettings |
הגדרות טבלה | src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml |
הנתיב לקובץ ההגדרה של הגדרות הטבלה בהתאמה אישית, ביחס לקובץ ההגדרה הזה. נתיב מומלץ: ביחס לספרייה config/: '{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml' נתיב ברירת מחדל: '../src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml' |
נתונים: מודולים: מוצרים
מודולים של מוצרי נתונים מגדירים את הצבירות, החישובים והצירופים שנדרשים כדי להפוך נתונים גולמיים לתובנות שמספקות מענה לתרחישי שימוש עסקיים ספציפיים.
ההגדרה של מוצרי הנתונים מאפשרת להגדיר מזהה ייחודי, להגדיר תלות וגם להפנות למודול של בסיס הנתונים ולמערך נתונים של היעד שבו התוצאות יאוחסנו.
ההגדרה המפורטת של מוצרי נתונים מסוימים מוגדרת בקבצים שמקושרים למפתח: tableSettings.
modules:
# List of data product modules.
product:
# Unique identifier for the data product instance.
- moduleId: sap_purchasing_organizational_structure
# Type of the data product (namespaced).
type: cortex.purchasing_organizational_structure
# Map of module dependencies.
dependsOn:
sapModule: erp
# Reference to the target dataset ID.
dataTargetId: product_target
# Whether the module is enabled.
# enabled: true
# Custom table settings file, relative to 'config/' file directory
# Recommended path: '{namespace}/data_product/{data_product_module_type}/table_settings.yaml'
# If omitted, defaults to '../src/data_modules/{namespace}/data_product/{data_product_module_type}/table_settings.default.yaml'
# tableSettings: "custom_dataproduct_table_settings.yaml"
בטבלה הבאה מפורטים הפרמטרים של מודולים של מוצרי נתונים להגדרת modules.product.
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
moduleId |
מזהה המודול | - | מזהה ייחודי של מופע ספציפי של מודול טרנספורמציה. |
type |
סוג הלוגיקה של המודול | - | הגדרת הלוגיקה העסקית או התבנית שחלות, שמוגדרות בתיקייה src/data_modules/{namespace}/data_product/{data_product_module_type}. |
dataTargetId |
קישור היעד | product_target |
מפנה אל ה-id מרשימת היעדים כדי לדחוף אליו נתונים. |
dependsOn |
תלות ב-Upstream | sapModule: erp |
מציין איזה מודול בסיס צריך להיות קיים לפני שאפשר לבנות את מודול המוצר. |
enabled |
הפעלת המודול | true |
קובעת אם המודול מופעל. |
tableSettings |
הגדרות טבלה | src/data_modules/{namespace}/data_product/{data_product_module_type}/table_settings.default.yaml |
הנתיב לקובץ ההגדרה של הגדרות הטבלה בהתאמה אישית, ביחס לקובץ ההגדרה הזה. נתיב מומלץ: ביחס לספרייה `config/`: '{namespace}/data_product/{data_product_module_type}/table_settings.yaml' נתיב ברירת מחדל: '../src/data_modules/{namespace}/data_product/{data_product_module_type}/table_settings.default.yaml' |
סביבת פריסה
ב-Cortex Framework נעשה שימוש ב-Dataform כדי לתזמן טרנספורמציות של SQL ב-BigQuery. הבלוק deployment:
מגדיר את התצורה של Dataform, שאחראית להרצת צינורות הנתונים, כולל פרויקט המאגר, המיקום, שם המאגר ושם סביבת העבודה של Dataform.
deployment:
targets:
- type: dataform
enabled: true
targetSettings:
repositoryProjectId: YOUR_REPO_PROJECT_ID
repositoryRegion: us-central1
repositoryName: cortex-repository
workspaceName: dev
# serviceAccount: "example@example.com"
בטבלה הבאה מפורטים פרמטרים של מיקום יעדי הפריסה (deployment.targets:).
| פרמטר | משמעות | ערך ברירת המחדל | תיאור |
|---|---|---|---|
type |
סוגי פריסה לבחירה | dataform |
סוג יעדי הפריסה. |
enabled |
מופעל/ מושבת | true |
ההגדרה קובעת אם יעד הפריסה שצוין מופעל או מושבת. |
targetSettings.repositoryProjectId |
מזהה פרויקט המאגר | YOUR_REPO_PROJECT_ID |
מזהה הפרויקט ב- Google Cloud שבו מאוחסן מאגר Dataform. |
targetSettings.repositoryRegion |
אזור המאגר | us-central1 |
ה Google Cloud אזור של מאגר Dataform (לדוגמה, us-central1 או europe-west1). |
targetSettings.repositoryName |
שם המאגר | cortex-repository |
השם הספציפי של מאגר Dataform. |
targetSettings.workspaceName |
שם החשבון ב-Workspace | dev |
סביבת העבודה הספציפית ב-Dataform שמשמשת למחזור הפריסה. |
targetSettings.serviceAccount |
כתובת האימייל של חשבון השירות | - |
כתובת האימייל בחשבון השירות שמוגדר כברירת מחדל להרצת מאגר Dataform. |
קובץ תצורה: table_settings.yaml
במדריך הזה מוסבר איך להשתמש בקובץ table_settings.yaml כדי להגדיר טבלאות של בסיס נתונים ושל מוצרי נתונים ב-Google Cloud Cortex Framework.
מודול הנתונים הספציפי table_settings.yaml קובץ שולט באופן ההתאמה של טבלאות מקור גולמיות ושל מודלים של נתונים אנליטיים ב-BigQuery. באמצעות הקובץ הזה, אפשר להגדיר תגים, אסטרטגיות של יצירת תצוגות חומריות ותכונות מתקדמות של ביצועים ב-BigQuery, כמו חלוקה למחיצות או סידור באשכולות.
פתרון דינמי של תלות
כברירת מחדל, Cortex Framework מבצע אופטימיזציה של טביעת הרגל של הפריסה ושל זמן הביצוע, על ידי פריסה והידור רק של טבלאות הבסיס שנדרשות כתלות במוצרי הנתונים המופעלים. אם בטבלה שהוגדרה ב-table_settings.yaml אין מוצרי נתונים פעילים במורד הזרם שתלויים בה, היא לא תיכלל בפריסה.
כדי לבטל את האופטימיזציה הזו ולכפות פריסה של טבלת בסיס, אפשר להגדיר את מאפיין deployAlways לערך true (ראו הפניה לפרמטרים של סגנון שכבת בסיס הנתונים).
ב-Google Cloud Cortex Framework, אפשר להקצות לכל מודול (הגדרות בסיסיות או מוצר) קובץ הגדרות טבלה ספציפי בקובץ הגדרות הפריסה: config/config.yaml באמצעות המאפיין tableSettings.
נתיבי הגדרות
- הגדרות מותאמות אישית (מומלץ): כדי להתאים אישית את התנהגויות הטבלה, מעתיקים את קובץ ברירת המחדל לספריית ההגדרות, משנים אותו ומפנים לנתיב שלו ב-
config/config.yaml. הנתיבים המומלצים לשימוש (ביחס לספרייהconfig/) הם:- מודולים של Foundation:
namespace/data_foundation/data_foundation/custom_table_settings.yaml(למשל,config/cortex/data_foundation/sap/table_settings.yaml) - מודולים של מוצרים:
namespace/data_product/data_product/custom_table_settings.yaml(לדוגמה,config/cortex/data_product/accounting_documents/table_settings.yaml)
- מודולים של Foundation:
- ברירת מחדל: אם לא מציינים את
tableSettings, המסגרת חוזרת אוטומטית ל:- מודולים של Foundation:
../src/data_modules/namespace/data_foundation/data_foundation/table_settings.default.yaml - מודולים של מוצרים:
../src/data_modules/namespace/data_product/data_product/table_settings.default.yaml
- מודולים של Foundation:
סגנונות הגדרה
יש שני סגנונות סכימה שונים ל-table_settings.yaml בהתאם לקטגוריה של המודול:
- סגנון Data Foundation: מיפוי מבוסס-רשימה שמגדיר את קשרי הגומלין בין סכימת המקור לסכימת היעד, טיפול ב-CDC (Change Data Capture) ופריסת BigQuery.
- סגנון של מוצר נתונים: מיפוי מבוסס-מפה (מילון) שמגדיר איך תצוגות או טבלאות אנליטיות ממומשות (למשל, כתצוגות, טבלאות או טבלאות מצטברות) ועוברות אופטימיזציה.
שני הסגנונות תומכים בשלושה קטעים ברמת הבסיס כדי להפריד בין ההגדרות לפי גרסת מערכת המקור (השימוש העיקרי הוא ב-SAP Data Foundation ובמוצרים שתלויים ב-SAP):
-
ecc: ההגדרות חלות רק כשפורסים מערכת מקור של SAP ECC. -
s4: ההגדרות חלות רק כשפורסים מערכת מקור של SAP S/4HANA. -
common: ההגדרות חלות ללא קשר לגרסת SAP (ההגדרה הזו משמשת להגדרות תואמות או אוניברסליות).
סגנון התשתית לנתונים
במודול Data Foundation, הקובץ table_settings.yaml בנוי כרשימה של פריטי טבלה מתחת למפתחות ecc, s4 ו-common. כל פריט ממפה טבלת מקור גולמית לטבלת יעד שעברה התאמה, ומגדיר את ההגדרות שלה ב-BigQuery.
דוגמה לתחביר YAML
common:
- source:
tableName: bkpf
isCdc: true
target:
tableName: bkpf # Optional: defaults to source tableName if omitted
tags: [sap, common, finance, hourly]
clusterDetails:
columns: [bukrs, gjahr]
partitionDetails:
column: budat
partitionType: time
timeGrain: day
deployAlways: false
הפניה לפרמטר
| פרמטר | סוג | חובה | ברירת מחדל / דוגמה | תיאור |
|---|---|---|---|---|
ecc | s4 | common |
string |
לא | [] |
גרסה או דיאלקט של מערכת המקור. |
[].deployAlways |
boolean |
לא | false |
אם true, הטבלה תמיד תופעל ותיבנה, גם אם כללי האופטימיזציה עשויים לדלג עליה. אפשר לעיין גם במאמר בנושא פתרון דינמי של תלות |
הגדרת המקורות
המאפיין מגדיר את המאפיינים של טבלת הנתונים הנכנסים הגולמיים.
| פרמטר | סוג | חובה | ברירת מחדל / דוגמה | תיאור |
|---|---|---|---|---|
tableName |
string |
כן | bkpf |
השם של טבלת המקור הגולמית ב-BigQuery (לא תלוי באותיות רישיות). |
isCdc |
boolean |
לא | true |
מציין אם טבלת המקור מכילה יומני רישום של לכידת נתונים משתנים (CDC).
• • |
הגדרות היעד
המאפיין מגדיר את פריסת הטבלה התואמת בפלט במערך הנתונים של היעד.
| פרמטר | סוג | חובה | ברירת מחדל / דוגמה | תיאור |
|---|---|---|---|---|
tableName |
string |
לא | *(כמו במקור)* | השם של טבלת היעד המותאמת שרוצים ליצור. אם לא מציינים את המסגרת, ברירת המחדל היא המקור tableName. |
tags |
array[string] |
לא | [sap, finance] |
רשימה של תגי מטא-נתונים שמצורפים לפעולה שתואמת ב-Dataform. אלה מחרוזות שרירותיות שלא צריך לרשום מראש או להגדיר בהגדרות אחרות. אפשר להשתמש בהן באופן מיידי כדי לסנן הפעלות של צינורות (למשל, באמצעות dataform run --tags ...). |
clusterDetails |
map |
לא | — | זה שינוי אופציונלי. הגדרת יצירת אשכולות ב-BigQuery. פרטים על אשכולות |
partitionDetails |
map |
לא | — | זה שינוי אופציונלי. הגדרת חלוקה למחיצות ב-BigQuery. פרטים על חלוקה למחיצות |
סגנון נתוני מוצר
במודול Data Product, קובץ table_settings.yaml בנוי כמילון (map) תחת המפתחות ecc, s4 ו-common. המפתחות של המילון מייצגים את שמות הטבלאות או התצוגות האנליטיות, והערכים מגדירים את ההגדרות של יצירת התצוגה והביצועים שלה.
דוגמה לתחביר YAML
s4:
customers:
materializationType: incremental
tags: [sap, dataproduct, masterdata]
clusterDetails:
columns: [mandt, ktokd]
הפניה לפרמטר
| פרמטר | סוג | חובה | ברירת מחדל / דוגמה | תיאור |
|---|---|---|---|---|
ecc | s4 | common |
map |
לא | {} |
מיפוי של נכסי ניתוח נתונים (טבלאות או תצוגות) להגדרות שלהם. |
[table_name].materializationType |
string |
לא | incremental |
איך נכס הניתוח נוצר ב-BigQuery.
ערכים מותרים:
|
[table_name].tags |
array[string] |
לא | [sap, dataproduct] |
תגי מטא-נתונים שמצורפים לנכס האנליטי ב-Dataform. אלה מחרוזות שרירותיות ולא צריך לרשום אותן מראש. אפשר להשתמש בהן באופן מיידי להרצת צינורות נתונים סלקטיביים. |
[table_name].clusterDetails |
map |
לא | — | זה שינוי אופציונלי. הגדרת יצירת אשכולות ב-BigQuery. פרטים על אשכולות |
[table_name].partitionDetails |
map |
לא | — | זה שינוי אופציונלי. הגדרת חלוקה למחיצות ב-BigQuery. פרטים על חלוקה למחיצות |
הגדרות מתקדמות של BigQuery
בשני הסגנונות יש אותו מבנה לאופטימיזציה של האחסון ב-BigQuery ושל ביצועי השאילתות באמצעות חלוקה למחיצות וסידור באשכולות.
פרטי האשכול
האשכולות ממקמים נתונים במשותף על סמך הערכים בעמודות ספציפיות. המערכת של BigQuery ממיינת את הנתונים בכל בלוק אחסון באמצעות העמודות האלה, מה שמאיץ באופן משמעותי את השאילתות שמסננות (WHERE) או מאחדות (JOIN) את הנתונים.
clusterDetails:
columns: [bukrs, gjahr]
הפניה לפרמטר
| פרמטר | סוג | חובה | דוגמה | תיאור |
|---|---|---|---|---|
columns |
array[string] |
כן | [bukrs, gjahr] |
רשימה מסודרת של עד ארבעה שמות עמודות שלפיהן הטבלה תאוגד.
מגבלה: העמודות חייבות להיות אלפאנומריות ולהכיל רק קווים תחתונים. הסדר של העמודות ברשימה קובע את היררכיית המיון. |
פרטי החלוקה למחיצות
חלוקה למחיצות מחלקת טבלה גדולה לפלחים פיזיים קטנים יותר על סמך הערכים של עמודה עם תאריך, חותמת זמן או מספר שלם. כך, מערכת BigQuery לא סורקת את כל הטבלה כששאילתה מבקשת רק טווח ספציפי של ימים, חודשים או מזהים.
partitionDetails:
column: budat
partitionType: time
timeGrain: day
הפניה לפרמטר
| פרמטר | סוג | חובה | דוגמה | תיאור |
|---|---|---|---|---|
column |
string |
כן | budat |
שם העמודה שמשמשת לחלוקת הטבלה למחיצות. השם חייב להיות אלפאנומרי ולהכיל קווים תחתונים בלבד. סוג העמודה צריך להיות זהה לpartitionType. |
partitionType |
string |
כן | time |
אסטרטגיית החלוקה למחיצות.
ערכים מותרים:
|
timeGrain |
string |
לא | day |
חובה אם הערך של partitionType הוא time או DATE. הגדרה של רמת הפירוט של מחיצות הזמן.
ערכים מותרים: |
rangeStart |
integer |
לא | 1 |
חובה אם הערך של partitionType הוא integer. ערך ההתחלה של המחיצה הראשונה (כולל). |
rangeEnd |
integer |
לא | 1000 |
חובה אם הערך של partitionType הוא integer. ערך הסיום של המחיצה האחרונה (לא כולל). |
rangeInterval |
integer |
לא | 10 |
חובה אם הערך של partitionType הוא integer. הרוחב של כל מרווח חלוקה. |
דוגמאות
בדוגמאות הבאות מוצגים תבניות הגדרה למודולים של בסיס נתונים ומוצר נתונים. הדוגמאות מראות איך להתאים אישית טבלאות יעד, לבצע אופטימיזציה של פריסת האחסון ב-BigQuery ולהגדיר סוגי מימוש.
1. דוגמה להגדרות של טבלת נתונים בסיסית בהתאמה אישית
בדוגמה הזו מוצג אופן ההגדרה של שכבת בסיס עם טבלאות טרנזקציות מקובצות ומחולקות (כמו bseg ו-ekbe) לצד טבלאות נתונים רגילות:
# ==============================================================================
# S/4HANA-Specific Tables
# ==============================================================================
s4:
# ACDOCA is a massive table in S/4HANA; clustering is vital
- source:
tableName: acdoca
target:
tags: [sap, s4, finance, transactional, hourly]
clusterDetails:
columns: [rclnt, rbukrs, gjahr]
# ==============================================================================
# ECC-Specific Tables
# ==============================================================================
ecc:
- source:
tableName: faglflexa
target:
tags: [sap, ecc, finance, transactional, hourly]
# ==============================================================================
# Common Tables (ECC & S/4HANA)
# ==============================================================================
common:
# Financial document header (partitioned by posting date)
- source:
tableName: bkpf
isCdc: true
target:
tags: [sap, common, finance, hourly]
clusterDetails:
columns: [bukrs, gjahr]
partitionDetails:
column: budat
partitionType: time
timeGrain: day
# Purchasing document items (partitioned by creation date)
- source:
tableName: ekpo
target:
tags: [sap, common, logistics, purchasing, hourly]
clusterDetails:
columns: [mandt, ebeln]
partitionDetails:
column: aedat
partitionType: time
timeGrain: month
# Standard master data table (no partitioning/clustering needed)
- source:
tableName: lfa1
target:
tags: [sap, common, masterdata, vendor, daily]
2. דוגמה להגדרות של טבלת נתוני מוצרים בהתאמה אישית
בדוגמה הזו מוצגות הגדרות של סוגי מימוש למוצרי נתונים אנליטיים במורד הזרם. אנחנו מגדירים את sales_documents כטבלה מצטברת כדי לשפר את ביצועי הבנייה ולחסוך בעלויות, בעוד שטבלאות נתונים לא טרנזקציוניות כמו customers נבנות כטבלאות רגילות:
# settings applied for both ECC and S/4HANA pipelines
common:
# Transactional data product - incremental build
sales_documents:
materializationType: incremental
tags: [sap, dataproduct, sales, transactional]
clusterDetails:
columns: [vkorg, vbeln]
partitionDetails:
column: audat
partitionType: time
timeGrain: day
# Master data product - full table rebuild
customers:
materializationType: table
tags: [sap, dataproduct, masterdata]
clusterDetails:
columns: [mandt, ktokd]
# Aggregated reporting view - virtual view
sales_performance_summary:
materializationType: view
tags: [sap, dataproduct, sales, reporting]
מדריכים
בקטע הזה מפורטים מדריכים שלב אחר שלב למשימות נפוצות של הגדרה ולתרחישי פריסה בהתאמה אישית.
התאמה אישית של היקף הטבלה במודול של שכבת נתונים
כדי להוסיף או להסיר טבלאות במודול קיים של שכבת נתונים בלי ליצור מודולים חדשים או להריץ מופעים נפרדים של צינורות:
- מעתיקים את הגדרות ברירת המחדל
table_settings.default.yamlלספריית ההגדרות של סביבת העבודה (לדוגמה,config/cortex/data_foundation/sap/custom_table_settings.yaml). - בקובץ החדש, מוסיפים את הטבלאות המותאמות אישית או מסירים טבלאות רגילות שלא בשימוש במפתחות
ecc,s4אוcommonלפי הצורך:
common:
- source:
tableName: custom_table_name
target:
tags: [custom_tag]
- מעדכנים את
config/config.yamlכך שיפנה לנתיב של הגדרות הטבלה המותאמת אישית במאפייןtableSettingsשל המודול:
data:
modules:
foundation:
- moduleId: erp
type: cortex.sap
# Custom table settings file, relative to configuration file directory
# Recommended path: '{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml'
tableSettings: 'cortex/data_foundation/sap/custom_table_settings.yaml'
הגדרה של כמה מופעים של מודול של פלטפורמה לניהול נתונים
כדי לפרוס שני מופעים נפרדים של צינורות או יותר מאותו סוג מודול (לדוגמה, תמיכה בכמה מופעים של SAP, כדי לפלח טבלאות, לבודד סביבות או לטרגט מערכי נתונים שונים):
לפני שמתחילים:
* מוודאים שטבלאות המקור קיימות במערך הנתונים הגולמי של המקור.
* מוודאים שסכימות מערכי הנתונים של היעד מוגדרות.
* כשעובדים עם מודולים של SAP Data Foundation, מוודאים שטבלת המטא-נתונים DD03L מכילה עמודות ופרטי תיאור של הטבלאות המותאמות אישית שרוצים להטמיע. פרטים נוספים מופיעים במאמר בנושא דרישות SAP ERP.
הוראות:
- בקובץ
config/config.yaml, מוסיפים הגדרות של יעדים בקטעdata.targetsכדי להגדיר מערכי נתונים של יעדים לכל מופע של צינור:
data:
targets:
- id: data_foundation_core
projectId: target_project_id
datasetId: data_foundation_sap_core
- id: data_foundation_custom
projectId: target_project_id
datasetId: data_foundation_sap_custom
- מגדירים כמה מופעים של המודול ברשימה
data.modules.foundation. נותנים לכל מופעmoduleIdייחודי, מזהים משלו של מערך נתונים יעד, ואפשרות להגדירtableSettings:
data:
modules:
foundation:
# Core SAP ERP foundation module instance
- moduleId: erp_core
type: cortex.sap
dataSourceId: sap_raw
dataTargetId: data_foundation_core
# If omitted, defaults to "../src/data_modules/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.default.yaml"
# tableSettings: "../src/data_modules/cortex/data_foundation/sap/table_settings.default.yaml"
# Custom tables pipeline instance
- moduleId: erp_custom
type: cortex.sap
dataSourceId: sap_raw
dataTargetId: data_foundation_custom
# Custom table settings file, relative to configuration file directory
# Recommended path: 'config/{namespace}/data_foundation/{data_foundation_module_type}/table_settings.yaml'
tableSettings: "cortex/data_foundation/sap/custom_datafoundation_table_settings.yaml"
- יוצרים את הקובץ
config/cortex/data_foundation/sap/custom_datafoundation_table_settings.yamlומציינים את ההיקף המותאם אישית. E.g.:
common:
- source:
tableName: custom_sap_table_name
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
- מריצים את סקריפט הפריסה (
uv run cortex-build-and-deploy) כדי להחיל את השינויים, ואז מבצעים את הפעולות של Dataform כמו שמתואר במאמר שלבים אחרי הפריסה.