Share via


SAP CDC を介して SAP から複数のオブジェクトをレプリケートする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、キー パーティションを使用して、SAP CDC コネクタを介して Azure Data Lake Gen2 に Delta 形式で複数の ODP オブジェクトをレプリケートするために使用できるソリューション テンプレートについて説明します。

このソリューション テンプレートについて

このテンプレートでは、ストレージ ストア上の json 形式の外部コントロール ファイルを読み取ります。ファイルには、SAP ODP コンテキスト、SAP ODP オブジェクト、SAP ソース システムのキー列、および Azure Data Lake Gen2 保存先ストアのコンテナー、フォルダー、パーティションが記載されています。 その後、各 SAP ODP オブジェクトを SAP システムから Azure Data Lake Gen2 に Delta 形式でコピーします。

このテンプレートには、3 つのアクティビティが含まれています。

  • Lookup では、読み込まれる SAP ODP オブジェクトの一覧と、Azure Data Lake Gen2 ストア上の外部コントロール ファイルから保存先ストアのパスを取得します。
  • ForEach では、Lookup アクティビティから SAP ODP オブジェクトの一覧を取得し、各オブジェクトをマッピング データフロー アクティビティに対して反復処理します。
  • マッピング データフローでは、各 SAP ODP オブジェクトを SAP システムから Azure Data Lake Gen2 に Delta 形式でコピーします。 最初の実行では初期の完全読み込みが行われ、後続の実行では自動的に増分読み込みが実行されます。 これによって Azure Data Lake Gen2 への変更が、Delta 形式でマージされます。

このテンプレートには、json 形式の外部コントロール ファイルが必要です。 コントロール ファイルのスキーマは以下のとおりです。

  • checkPointKey は、ADF で変更されたデータ キャプチャのチェックポイントを管理するためのカスタム キーです。 詳細については、こちらを参照してください。
  • sapContext は、ソース SAP システムからの SAP ODP コンテキストです。 詳細については、こちらを参照してください。
  • sapObjectName は、SAP システムから読み込まれる SAP ODP オブジェクトの名前です。 詳細については、こちらを参照してください。
  • sapRunMode は、SAP オブジェクトの読み込み方法を決定するものです。 fullLoad、incrementalLoad、fullAndIncrementalLoad を指定できます。
  • sapKeyColumns は、マッピング データフローで重複除去を実行するために使用される、SAP ODP オブジェクトのキー列名です。
  • sapPartitions は、接続された SAP システムで個別の抽出プロセスを実行するためのパーティション条件の一覧です。
  • deltaContainer は、保存先ストアとしての Azure Data Lake Gen2 内のコンテナー名です。
  • deltaFolder は、保存先ストアとしての Azure Data Lake Gen2 内のフォルダー名です。
  • deltaKeyColumns は、行を更新または削除する際に、ソースの行がシンクの行と一致するかどうかを判断するために使用される列です。
  • deltaPartition は、マッピング データフローで使用される Spark クラスターを介して Azure Data Lake Gen2 に Delta 形式でデータを書き込む目的で、このような列の一意の値ごとにパーティションを作成するために使用される列です。 詳細については、こちらを参照してください

サンプルのコントロール ファイルは次のとおりです。

[
  {
    "checkPointKey":"CheckPointFor_ZPERFCDPOS$F",
    "sapContext": "ABAP_CDS",
    "sapObjectName": "ZPERFCDPOS$F",
    "sapRunMode": "fullAndIncrementalLoad",
    "sapKeyColumns": [
      "TABKEY"
    ],
    "sapPartitions": [
	[{
        "fieldName": "TEXTCASE",
        "sign": "I",
        "option": "EQ",
        "low": "1"
       },
       {
        "fieldName": "TEXTCASE",
        "sign": "I",
        "option": "EQ",
        "low": "X"
      }]
    ],
    "deltaContainer":"delta",
    "deltaFolder":"ZPERFCDPOS",
    "deltaKeyColumns":["TABKEY"],
    "deltaPartition":"TEXTCASE",
    "stagingStorageFolder":"stagingcontainer/stagingfolder"
  },
  {
    "checkPointKey":"CheckPointFor_Z0131",
    "sapContext": "SAPI",
    "sapObjectName": "Z0131",
    "sapRunMode": "incrementalLoad",
    "sapKeyColumns": [
      "ID"
    ],
    "sapPartitions": [],
    "deltaContainer":"delta",
    "deltaFolder":"Z0131",
    "deltaKeyColumns":["ID"],
    "deltaPartition":"COMPANY",
    "stagingStorageFolder":"stagingcontainer/stagingfolder"
  }
]

このソリューション テンプレートの使用方法

  1. コントロール ファイルを作成して、保存先ストアとしての Azure Data Lake Gen2 に json 形式でアップロードします。 コントロール ファイルを格納する既定のコンテナーは demo で、既定のコントロール ファイル名は SapToDeltaParameters.json です。

  2. テンプレートの [SAP ODP から Azure Data Lake Storage Gen2 に複数のテーブルをレプリケートする] に移動し、それをクリックします。

    Screenshot of SAP CDC search template.

  3. [続行] をクリックし、ソースとしての SAP システムに接続されているリンク サービスと、保存先としての Azure Data Lake Gen2 に接続されるリンク サービスを入力します。 SAP CDC のリンク サービスの詳細については、こちらを参照してください。 外部コントロール ファイルは、Azure Data Lake Gen2 の同一アカウントにアップロードする必要があることに注意してください。

    Screenshot of SAP CDC use template.

  4. [このテンプレートを使用する] をクリックすると、パイプラインを使用する準備ができたことがわかります。

    Screenshot of SAP CDC pipeline.