次の方法で共有


Azure Data Factoryを使用してファイルを移動する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

ADF コピー アクティビティには、ストレージとストア間でバイナリ ファイルをコピーするときの "移動" シナリオに対するサポートが組み込まれています。 これを有効にするには、コピー アクティビティで "deleteFilesAfterCompletion" を true に設定します。 そうすることで、ジョブの完了後に、コピー アクティビティによってデータ ソース ストアからファイルが削除されます。

この記事では、ADF の柔軟な制御フローとコピー アクティビティおよび削除アクティビティを利用して同じシナリオを実現するもう 1 つの方法として、ソリューション テンプレートについて説明します。 このテンプレートを使用する一般的なシナリオの 1 つ: ファイルは、ソース ストアのランディング フォルダーに継続的にドロップされます。 スケジュール トリガーを作成することにより、ADF パイプラインでこれらのファイルをソースから移動先ストアに定期的に移動できます。 ADF パイプラインで "ファイルの移動" を実現する方法では、ランディング フォルダーからファイルを取得し、各ファイルを移動先ストアの別のフォルダーにコピーした後、ソース ストアのランディング フォルダーから同じファイルを削除します。

注意

このテンプレートは、フォルダーを移動するのではなく、ファイルを移動するように設計されていることに注意してください。 フォルダー パスのみを含むようにデータセットを変更してから、コピー アクティビティと削除アクティビティを使用して、フォルダーを表す同じデータセットを参照することにより、フォルダーを移動する場合は、十分注意する必要があります。 その理由は、コピー操作と削除操作の間にそのフォルダーに新しいファイルが到着しないようにする必要があるからです。 Copy アクティビティがコピー ジョブを完了したが、Delete アクティビティがまだ開始されていないときにフォルダーに新しいファイルが到着すると、Delete アクティビティがフォルダー全体を削除することにより、まだ宛先にコピーされていない新しく到着したファイルを削除する可能性があります。

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

このテンプレートでは、ソースのファイル ベースのストアからファイルが取得されます。 次に、それらをそれぞれ移動先ストアに移動します。

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

  • Getmetadata では、ソース ストアのフォルダーからファイルとサブフォルダーを含むオブジェクトのリストが取得されます。 オブジェクトは再帰的には取得されません。
  • Filter では、GetMetadata アクティビティからのオブジェクト リストがフィルター処理されて、ファイルのみが選択されます。
  • ForEach は、Filter アクティビティからファイル リストを取得し、一覧を反復処理して、各ファイルを Copy アクティビティ および Delete アクティビティに渡します。
  • Copy では、ソース ストアからコピー先ストアに 1 つのファイルがコピーされます。
  • Delete では、同じ 1 つのファイルがソース ストアから削除されます。

このテンプレートには、4 つのパラメーターが定義されています。

  • SourceStore_Location は、ファイルの移動元となるソース ストアのフォルダー パスです。
  • SourceStore_Directory は、ファイルの移動元となるソース ストアのサブフォルダー パスです。
  • DestinationStore_Location は、ファイルの移動先となる移動先ストアのフォルダー パスです。
  • DestinationStore_Directory は、ファイルの移動先となる移動先ストアのサブフォルダー パスです。

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

  1. ファイルの移動テンプレートに移動します。 ファイル移動元のソース ファイル ストアに対する既存の接続を選択するか、新しい接続を作成します。 DataSource_FolderDataSource_File では、ソース ファイル ストアの同じ接続が参照されていることに注意してください。

    ソースへの新しい接続の作成を示すスクリーンショット。

  2. ファイル移動先の移動先ファイル ストアに対する既存の接続を選択するか、新しい接続を作成します。

    同期先への新しい接続の作成を示すスクリーンショット。

  3. [このテンプレートを使用] タブを選択します。

  4. 次の例に示すように、パイプラインが表示されます。

    パイプラインを示すスクリーンショット。

  5. [デバッグ] を選択し、 [パラメーター] で入力し、 [完了] を選択します。 パラメーターは、ファイル移動元のフォルダー パスと、ファイル移動先のフォルダー パスです。

    パイプラインを実行する場所を示すスクリーンショット。

  6. 結果を確認します。

    パイプラインの実行結果を示すスクリーンショット。