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_centersprofit_centersbillingdeliveries など)を共有しているため、これにより、名前空間のシャドーイングと物理テーブルの競合を防ぐことができます。

専用の 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_data

  • sap_cortex_v6_compatibility_accounts_payable

  • sap_cortex_v6_compatibility_finance

  • sap_cortex_v6_compatibility_inventory

  • sap_cortex_v6_compatibility_purchasing

  • sap_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_snapshotsstock_monthly_snapshots)を増分テーブルとして構成して実行する必要があります。Cortex Framework v6 では、在庫スナップショットで在庫数量と値の累積合計が計算されます。

  1. 初回実行: テーブルは移動トランザクションの履歴全体を処理して、開始時の在庫レベルを確立します。
  2. 後続の実行: Dataform は、前回のスナップショット実行以降に投稿された移動のみを処理し、前回の期間の累計に追加します。

これらのテーブルをフル更新(増分以外)モードで実行すると、実行のたびに移動履歴全体がゼロから再計算されます。この方法は非常に非効率的でコストがかかり、ソーステーブルに日付のギャップが含まれている場合は、累積計算が正しく行われない可能性があります。これらのテーブルのマテリアライズ タイプは、増分(デフォルトの構成)に設定したままにします。

互換性コンテンツをビルドしてデプロイする

互換性コンテンツをビルドしてデプロイするには、デプロイデプロイ後の手順のドキュメントの手順に沿って操作します。