Azure Data Factory 内の SAP CDC コネクタまたは Azure Synapse Analytics を使用して SAP ODP ソースからデータを変換する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

この記事では、SAP CDC コネクタを使用して、SAP ODP ソースからデータを変換するためにマッピング データ フローを使用する方法について概要を説明します。 詳細については、Azure Data Factory または Azure Synapse Analytics の概要記事を参照してください。 Azure Data Factory および Azure Synapse 分析を使用したデータ変換の概要については、「マッピング データ フロー」または「マッピング データ フローのチュートリアル」をお読みください。

ヒント

SAP データ統合シナリオでの全体的なサポートについては、各 SAP コネクタの詳細な説明、比較、ガイダンスが含まれた、Azure Data Factory を使用した SAP データ統合に関するホワイトペーパーを参照してください。

サポートされる機能

この SAP CDC コネクタでは、次の機能がサポートされます。

サポートされる機能 IR
マッピング データ フロー (ソース/-) ①、②

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

この SAP CDC コネクタは、SAP ODP フレームワークを使用して SAP ソース システムからデータを抽出します。 ソリューションのアーキテクチャの概要については、SAP ナレッジ センターSAP 変更データ キャプチャ (CDC) の概要とアーキテクチャに関する記事を参照してください。

SAP ODP フレームワークは、SAP ECC、SAP S/4HANA、SAP BW、SAP BW/4HANA、SAP LT レプリケーション サーバー (SLT) など、最新のすべての SAP NetWeaver ベースのシステムに含まれています。 前提条件と最低限必要なリリースについては、「前提条件と構成」を参照してください。

SAP CDC コネクタは、基本認証、または Secure Network Communications (SNC) が構成されている場合は SNC をサポートします。

現在の制限

Data Factory での SAP CDC コネクタの現在の制限事項を次に示します。

  • Data Factory では、ODQ サブスクリプションはリセットまたは削除することはできません (この目的には、接続された SAP システムでトランザクション ODQMON を使用します)。
  • ソリューションで SAP 階層を使用することはできません。

前提条件

この SAP CDC コネクタを使用するには、「SAP CDC コネクタの前提条件と設定」を参照してください。

はじめに

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用して SAP CDC コネクタのリンクされたサービスを作成する

SAP CDC のリンクされたサービスの準備に関する記事で説明されている手順に従って、Azure portal UI で SAP CDC コネクタ用のリンクされたサービスを作成します。

データセットのプロパティ

SAP CDC データセットを準備するには、SAP CDC ソース データセットの準備に関する記事に従います。

SAP CDC コネクタを使用してデータを変換する

生の SAP ODP 変更フィードの解釈は困難であり、シンクへの正しい更新は困難な場合があります。 たとえば、各行に関連付けられている技術属性 (ODQ_CHANGEMODE など) を理解し、シンクに変更を正しく適用する必要があります。 また、ODP からの変更データの抽出には、同じキー (たとえば、同じ販売注文) に対して複数の変更が含まれる場合があります。 そのため、変更の順序を考慮すると同時に、変更を並列に処理してパフォーマンスを最適化することが重要です。 さらに、変更データ キャプチャ フィードの管理では、たとえば、エラー回復のための組み込みメカニズムを提供するために、状態を追跡する必要もあります。 Azure データ ファクトリのマッピング データ フローが、このような側面すべてを処理します。 そのため、SAP CDC 接続はマッピング データ フロー エクスペリエンスの一部です。 これにより、ユーザーはデータ抽出の技術的な詳細を気にすることなく、必要な変換ロジックに集中できます。

開始するには、マッピング データ フローを使用してパイプラインを作成します。

パイプライン内のデータ フロー アクティビティのスクリーンショット。

次に、Azure Data Lake Gen2 でステージングのリンク サービスおよびステージング フォルダーを指定します。これは、SAP から抽出されたデータの中間ストレージとして機能します。

注意

  • ステージングのリンク サービスでは、セルフホステッド統合ランタイムを使用できません。
  • ステージング フォルダーは、SAP CDC コネクタの内部ストレージと見なす必要があります。 SAP CDC ランタイムをさらに最適化するために、ステージング データに使用されるファイル形式などの実装の詳細が変更される可能性があります。 そのため、ステージング フォルダーは、他のコピー アクティビティやマッピング データ フローのソースなど、他の目的には使用しないことをお勧めします。

データ フロー アクティビティのステージング フォルダーを指定しているスクリーンショット。

チェックポイント キーは、変更データ キャプチャ プロセスに関する状態情報を格納するため、SAP CDC ランタイムで使用されます。 これにより、たとえば、SAP CDC マッピング データ フローは、エラー状況から自動的に復旧したり、特定のデータ フローの変更データ キャプチャ プロセスが既に確立されているかどうかを把握したりすることができます。 そのため、ソースごとに一意のチェックポイント キーを使用することが重要です。 それ以外の場合、あるソースの状態情報は別のソースによって上書きされます。

注意

  • 競合を回避するために、既定で一意の ID が チェックポイント キー として生成されます。
  • パラメーターを使用して複数のソースに同じデータ フローを活用する場合は、ソースごとに一意の値を使用してチェックポイント キーをパラメーター化してください。
  • この場合、変更データ キャプチャ プロセスが確立されないため、SAP CDC ソース内の [実行] モード[毎回の実行でフル] (次のセクション参照) に設定されている場合にチェックポイント キーは表示されません。

データ フロー アクティビティにおけるチェックポイント キー プロパティのスクリーンショット。

パラメーター化されたチェックポイント キー

変更データ キャプチャ プロセスの状態を管理するには、チェックポイント キーが必要です。 効率的な管理のために、チェックポイント キーをパラメーター化して、さまざまなソースへの接続を許可できます。 パラメーター化されたチェックポイント キーを実装する方法を次に示します。

  1. 実行全体の一貫性を確保するために、チェックポイント キーをパイプライン レベルで保存するグローバル パラメーターを作成します。

    "parameters": {
     "checkpointKey": {
         "type": "string",
         "defaultValue": "YourStaticCheckpointKey"
     }
    } 
    
  2. 実行するたびに望ましい値を使用してパイプラインを呼び出すように、プログラムでチェックポイント キーを設定します。 パラメーター化されたチェックポイント キーを使用した REST 呼び出しの例を次に示します。

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineName}?api-version=2018-06-01
    Content-Type: application/json
    {
        "properties": {
            "activities": [
                // Your activities here
            ],
            "parameters": {
                "checkpointKey": {
                    "type": "String",
                    "defaultValue": "YourStaticCheckpointKey"
                }
            }
        }
    }
    

詳細については、SAP CDC コネクタの高度なトピックを参照してください。

Mapping Data Flow のプロパティ

SAP CDC コネクタをソースとして使用してマッピング データ フローを作成するには、次の手順を実行します。

  1. ADF Studio で、[作成者] ハブの [データ フロー] セクションに移動し、[...] ボタンを選択して [Data flow actions](データ フロー アクション) メニューをドロップダウンし、[新しいパイプライン] 項目を選択します。 データ フロー キャンバスの上部バーにある [データ フローのデバッグ] ボタンを使用して、デバッグ モードを有効にします。

    マッピング データ フローの [データ フローのデバッグ] ボタンのスクリーンショット。

  2. マッピング データ フロー エディターで、[ソースの追加] を選択します。

    マッピング データ フローでのソースの追加のスクリーンショット。

  3. [ソース設定] タブで、準備した SAP CDC データセットを選択するか、[新規] ボタンを選択して新しいデータセットを作成します。 または、[ソースの種類] プロパティで [インライン] を選択し、明示的なデータセットを定義せずに続行することもできます。

    マッピング データ フロー ソースのソース設定の [データセットの選択] オプションのスクリーンショット。

  4. マッピング データ フローの実行ごとに完全なスナップショットを読み込む場合は、[ソース オプション] タブで [毎回の実行でフル] オプションを選択します。 初回のフル データ スナップショットを含め、SAP ソース システムから変更フィードをサブスクライブする場合は、[初回起動時はフル、その後は増分] を選択します。 この場合、パイプラインの最初の実行では差分初期化が実行されます。つまり、ソース システムに ODP デルタ サブスクリプションが作成され、現在の完全なデータ スナップショットが返されます。 後続のパイプライン実行では、前の実行以降の増分変更のみが返されます。 オプションの増分変更のみでは、最初の実行で最初の完全なデータ スナップショットを返さずに ODP デルタ サブスクリプションを作成します。 この場合も、後続の実行では、前回の実行以降の増分変更のみが返されます。 増分読み込みオプションでも、ODP ソース オブジェクトのキーをキー列プロパティで指定する必要があります。

    マッピング データ フロー ソースのソース オプションの実行モード プロパティのスクリーンショット。

    マッピング データ フロー ソースのソース オプションのキー列選択のスクリーンショット。

  5. [プロジェクション][最適化][検査] タブについては、マッピング データ フローに従ってください。

ソース パーティションを使用した全体読み込みまたは初期読み込みのパフォーマンスの最適化

[実行モード][毎回の実行でフル] または[初回起動時はフル、その後は増分]に設定されている場合、[最適化] タブには選択と [ソース] と呼ばれるパーティション分割が表示されます。 このオプションを使用すると、複数のパーティション (つまり、フィルター) 条件を指定して、大きなソース データ セットを複数の小さな部分に分割できます。 パーティションごとに、SAP CDC コネクタは SAP ソース システムで個別の抽出プロセスをトリガーします。

マッピング データ フロー ソースの最適化でのパーティション分割オプションのスクリーンショット。

パーティションのサイズが等しい場合、ソースのパーティション分割により、データ抽出のスループットが線形的に増加する可能性があります。 このようなパフォーマンスの向上を実現するには、SAP ソース システム、セルフホステッド統合ランタイムをホストする仮想マシン、および Azure 統合ランタイムにおいて十分なリソースが必要です。