Cortex Framework v6 の互換性
v6 互換性コンテンツは、Cortex Framework v7 アーキテクチャ内の Cortex Framework v6 ワークロードにスキーマ互換レイヤを提供します。これにより、Looker ダッシュボードや LookML セマンティック モデルなどの既存の分析アセットを壊すことなく、Cortex Framework v7 に移行できます。
サポートされるデータソース
このフレームワークは、SAP ECC と SAP S/4HANA のデータソース用の v6 互換性コンテンツを提供します。
仕組み
v6 互換性コンテンツは、v7 データモデルと以前のレポート アセット間のアダプタとして機能します。
- スキーマ互換ビュー: Cortex Framework(v6)に表示されていたレポートビューの名前、列、大文字と小文字の区別をそのまま公開します。
- ターゲットの分離: 互換性ビューをコア Cortex Framework テーブルから分離します。これを行うには、互換性ビューを別の Namespace(
cortex_v6_compatibility)と専用の BigQuery ターゲット データセット内にデプロイします。
互換性コンテンツをデプロイする
Cortex Framework v6 互換性コンテンツをデプロイする手順は次のとおりです。
- 専用の BigQuery ターゲット データセットを構成します。
config.yamlファイルで v6 互換性モジュールを有効にします。- Google Cloud Cortex Framework のビルドとデプロイ スクリプトを実行します。
- Dataform パイプラインを実行します。
専用のターゲット データセット
v6 互換性コンテンツは、別の BigQuery データセットにデプロイする必要があります。互換性コンテンツで使用される多くのテーブルは、Cortex Framework v7 のコアテーブルと同じ物理名(cost_centers、profit_centers、billing、deliveries など)を共有しているため、これにより、名前空間のシャドーイングと物理テーブルの競合を防ぐことができます。
専用の BigQuery データセットを作成するには、config.yaml ファイルに cortex_v6_compatibility_target を追加します。
data:
datasets:
- id: product_target
projectId: YOUR_TARGET_PROJECT_ID
datasetId: prod_sap_dataproducts # Core v7 tables
- id: cortex_v6_compatibility_target
projectId: YOUR_TARGET_PROJECT_ID
datasetId: prod_sap_cortex6 # Compatibility v6 tables
Cortex Framework を構成する
config.yaml ファイルで互換性レイヤを登録して有効にするには、次のタスクを完了する必要があります。
- 専用のターゲット データセットを設定します。
- 互換性 Namespace を登録します。
次の Cortex Framework v6 互換性モジュールの enabled 属性を
trueに設定します。sap_cortex_v6_compatibility_master_datasap_cortex_v6_compatibility_accounts_payablesap_cortex_v6_compatibility_financesap_cortex_v6_compatibility_inventorysap_cortex_v6_compatibility_purchasingsap_cortex_v6_compatibility_sales
次の例は、sap_cortex_v6_compatibility_inventory を有効にするために必要な構成の変更を示しています。
data:
datasets:
- id: cortex_v6_compatibility_target
projectId: YOUR_TARGET_PROJECT_ID
datasetId: prod_sap_cortex6
namespaces:
- name: cortex_v6_compatibility
path: ../src/data_modules/cortex_v6_compatibility
modules:
products:
- moduleId: sap_cortex_v6_compatibility_inventory
modulePath: cortex_v6_compatibility.sap.products.inventory
enabled: true # If using configuration file based on config.yaml.example, ensure the `enabled` flag is set to `true`
syncToKc: false
dependencyBindings:
sapModule: erp
sapMasterData: sap_cortex_v6_compatibility_master_data
sapSales: sap_cortex_v6_compatibility_sales
dataTargetId: cortex_v6_compatibility_target
moduleSettings:
targetCurrencies: ['USD']
rateType: 'M'
languages: ['E']
# You must ensure the `enabled` flag is set to `true` for all of the listed dependent modules. In this example:
# `sap_cortex_v6_compatibility_master_data`
# `sap_cortex_v6_compatibility_sales`
運用上の要件
Cortex Framework v6 の互換性モジュールはすべて同時に有効にすることを強くおすすめします。互換性コンテンツには、モジュール間の依存関係が含まれています(たとえば、請求ビューはマスター データテーブルに依存し、在庫スナップショット ビューはカレンダー ディメンションに依存します)。両方を有効にすると、Dataform で依存関係エラーが発生しなくなります。
在庫のスナップショット
インベントリ スナップショット テーブル(stock_weekly_snapshots と stock_monthly_snapshots)を増分テーブルとして構成して実行する必要があります。Cortex Framework v6 では、在庫スナップショットで在庫数量と値の累積合計が計算されます。
- 初回実行: テーブルは移動トランザクションの履歴全体を処理して、開始時の在庫レベルを確立します。
- 後続の実行: Dataform は、前回のスナップショット実行以降に投稿された移動のみを処理し、前回の期間の累計に追加します。
これらのテーブルをフル更新(増分以外)モードで実行すると、実行のたびに移動履歴全体がゼロから再計算されます。この方法は非常に非効率的でコストがかかり、ソーステーブルに日付のギャップが含まれている場合は、累積計算が正しく行われない可能性があります。これらのテーブルのマテリアライズ タイプは、増分(デフォルトの構成)に設定したままにします。