Azure Data Factory と Azure Synapse Analytics の変更データ キャプチャ

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

この記事では、Azure Data Factory の変更データ キャプチャ (CDC) について説明します。

詳細については、Azure Data Factory の概要または Azure Synapse の概要に関するページを参照してください。

概要

クラウドでデータ統合と ETL プロセスを実行する場合、実行のたびに常にデータセット全体に対してクエリを実行するのではなく、パイプラインが最後に実行されてから変更されたソース データのみを読み取ると、ジョブのパフォーマンスが向上し、より効果的になります。 ADF では、最後の実行からの差分データのみを簡単に取得するための複数の異なる方法が用意されています。

変更データ キャプチャのファクトリ リソース

CDC を使用してデータ ファクトリで最も簡単かつ迅速に作業を開始するには、ファクトリ レベルの変更データ キャプチャ リソースを使用します。 メインのパイプライン デザイナーで、[ファクトリ リソース] の下で [新規] をクリックして、新しい変更データ キャプチャを作成します。 CDC ファクトリ リソースで提供される構成のウォークスルー エクスペリエンスでは、変換元と変換先を選択し、オプションの変換を適用してから、[開始] をクリックしてデータ キャプチャを開始できます。 CDC リソースでは、パイプラインやデータ フロー アクティビティを設計する必要はありません。 また、データの処理中には、General Purpose データ フローの 4 つのコアに対してのみ課金されます。 ADF がウェイクアップして変更されたデータを検索するために使用する待機時間を設定できます。 課金されるのはこのときだけです。 最上位の CDC リソースは、プロセスを継続的に実行する ADF メソッドでもあります。 ADF のパイプラインはバッチのみですが、CDC リソースは継続的に実行できます。

マッピング データ フローでのネイティブ変更データ キャプチャ

挿入、更新、削除された行を含む変更されたデータは、ADF マッピング データ フローによってソース データベースから自動的に検出および抽出できます。 データベースのネイティブ変更データ キャプチャ テクノロジが使用されるため、変更を特定するためのタイムスタンプや ID 列は必要ありません。 マッピング データ フローでソース変換とシンク変換参照をデータベース データセットにチェーンするだけで、ターゲット データベースに自動的に適用されるソース データベースで行われた変更を確認できるため、2 つのテーブル間でデータを簡単に同期させることができます。 また、任意のビジネス ロジックの間に変換を追加して、差分データを処理することもできます。 シンク データの格納先を定義するときに、行の変更変換を必要とせずに、シンクに挿入、更新、アップサート、および削除の操作を設定できます。ADF が行の作成者を自動的に検出できるためです。

サポートされているコネクタ

マッピング データ フローでの自動増分抽出

新しく更新された行または更新されたファイルは、ADF マッピング データ フローによってソース ストアから自動的に検出および抽出できます。 データベースから差分データを取得する場合は、変更を特定するために増分列が必要となります。 ストレージ ストアから新しいファイルまたは更新されたファイルのみを読み込む場合、ADF マッピング データ フローはファイルの最終変更時刻にのみ機能します。

サポートされているコネクタ

パイプラインでの顧客管理の差分データ抽出

ルックアップ アクティビティを使用して外部コントロール テーブルに格納された透かし値を取得したり、コピー アクティビティまたはマッピング データ フロー アクティビティを使用してタイムスタンプまたは ID 列に対して差分データのクエリを実行したり、SP アクティビティを使用して次の実行のために新しい透かし値を外部コントロール テーブルに書き戻したりするなど、ADF でサポートされているあらゆるデータ ストアに対して独自の差分データ抽出パイプラインを常にビルドできます。 ストレージ ストアから新しいファイルのみを読み込む場合は、コピー先にファイルが正常に移動されるたびにファイルを削除するか、時間でパーティション分割されたフォルダーまたはファイル名あるいは最終変更時刻を使用して新しいファイルを特定できます。

ベスト プラクティス

データベースからの変更データ キャプチャ

  • 変更データを取得する最も簡単な方法として、ネイティブ変更データ キャプチャを常にお勧めします。 これにより、ADF で後続の処理のために変更データが抽出される際にソース データベースの負荷も大幅に軽減されます。
  • データベース ストアがネイティブ変更データ キャプチャをサポートする ADF コネクタ リストに含まれていない場合は、変更をキャプチャするために増分列の入力のみが必要な自動増分抽出オプションを確認することをお勧めします。 差分読み込み用の動的クエリの作成や、各アクティビティ実行のチェックポイントの管理など、残りの処理は ADF が行います。
  • パイプラインでの顧客管理の差分データ抽出は ADF でサポートされているすべてのデータベースを対象としているため、すべてを自分で制御できる柔軟性が得られます。

ファイル ベースのストレージからの変更ファイル キャプチャ

  • Azure Blob Storage、Azure Data Lake Storage Gen2、または Azure Data Lake Storage Gen1 からデータを読み込む場合、マッピング データ フローを使用すると、ワンクリックで新しいファイルや更新されたファイルを取得できます。 これは、マッピング データ フローでこれらのファイル ベースのストレージから差分読み込みを実現するための最も簡単かつ推奨される方法です。
  • さらなるベスト プラクティスを得ることができます。

Checkpoint

ADF マッピング データ フローでネイティブ変更データ キャプチャまたは自動増分抽出オプションを有効にすると、ADF でチェックポイントが管理され、各アクティビティの実行で、パイプラインの最後の実行時から変更されたソース データのみが自動的に読み取られるようになります。 既定では、チェックポイントはパイプライン名とアクティビティ名の組み合わせです。 パイプライン名またはアクティビティ名を変更すると、チェックポイントがリセットされます。これにより、次回の実行時に最初から変更を開始したり、変更を取得したりすることができます。 パイプライン名またはアクティビティ名を変更しても、直近の実行の後に変更されたデータを自動的に取得するためにチェックポイントを保持する場合は、データフロー アクティビティで独自のチェックポイント キーを使用して、これを実現してください。 独自のチェックポイント キーの名前付け規則は、リンク サービス、データセット、パイプライン、データ フローと同じです。

パイプラインをデバッグすると、この機能は同じように動作します。 デバッグ実行中にブラウザーを更新すると、チェックポイントがリセットされます。 デバッグ実行のパイプライン結果に問題がなければ、パイプラインの発行とトリガーに進むことができます。 最初に発行されたパイプラインをトリガーした時点では、最初から自動的に再起動されるか、またはその後からの変更が取得されます。

[モニター] セクションでは、常にパイプラインを再実行できます。 この場合、変更されたデータは、選択したパイプライン実行の前のチェックポイントから常にキャプチャされます。

チュートリアル

Azure Data Factory および Azure Synapse Analytics で変更データ キャプチャを開始するチュートリアルを次に示します。

テンプレート

以下に、Azure Data Factory および Azure Synapse Analytics で変更データ キャプチャを使用するためのテンプレートを示します。