Azure Data Factory でファイルを移動する
適用対象: Azure Data Factory Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
ADF コピー アクティビティには、ストレージとストア間でバイナリ ファイルをコピーするときの "移動" シナリオに対するサポートが組み込まれています。 これを有効にするには、コピー アクティビティで "deleteFilesAfterCompletion" を true に設定します。 そうすることで、ジョブの完了後に、コピー アクティビティによってデータ ソース ストアからファイルが削除されます。
この記事では、ADF の柔軟な制御フローとコピー アクティビティおよび削除アクティビティを利用して同じシナリオを実現するもう 1 つの方法として、ソリューション テンプレートについて説明します。 このテンプレートを使用する一般的なシナリオの 1 つ: ファイルは、ソース ストアのランディング フォルダーに継続的にドロップされます。 スケジュール トリガーを作成することにより、ADF パイプラインでこれらのファイルをソースから移動先ストアに定期的に移動できます。 ADF パイプラインで "ファイルの移動" を実現する方法では、ランディング フォルダーからファイルを取得し、各ファイルを移動先ストアの別のフォルダーにコピーした後、ソース ストアのランディング フォルダーから同じファイルを削除します。
Note
このテンプレートは、フォルダーを移動するのではなく、ファイルを移動するように設計されていることに注意してください。 フォルダー パスのみを含むようにデータセットを変更してから、コピー アクティビティと削除アクティビティを使用して、フォルダーを表す同じデータセットを参照することにより、フォルダーを移動する場合は、十分注意する必要があります。 その理由は、コピー操作と削除操作の間にそのフォルダーに新しいファイルが到着しないようにする必要があるからです。 Copy アクティビティがコピー ジョブを完了したが、Delete アクティビティがまだ開始されていないときにフォルダーに新しいファイルが到着すると、Delete アクティビティがフォルダー全体を削除することにより、まだ宛先にコピーされていない新しく到着したファイルを削除する可能性があります。
このソリューション テンプレートについて
このテンプレートでは、ソースのファイル ベースのストアからファイルが取得されます。 次に、それぞれを移動先ストアに移動します。
このテンプレートには、5 つのアクティビティが含まれています。
- Getmetadata では、ソース ストアのフォルダーからファイルとサブフォルダーを含むオブジェクトのリストが取得されます。 オブジェクトは再帰的には取得されません。
- Filter では、GetMetadata アクティビティからのオブジェクト リストがフィルター処理されて、ファイルのみが選択されます。
- ForEach では、Filter アクティビティからファイル リストが取得されて反復処理され、各ファイルが Copy アクティビティと Delete アクティビティに渡されます。
- Copy では、ソース ストアからコピー先ストアに 1 つのファイルがコピーされます。
- Delete では、同じ 1 つのファイルがソース ストアから削除されます。
このテンプレートには、4 つのパラメーターが定義されています。
- SourceStore_Location は、ファイルの移動元となるソース ストアのフォルダー パスです。
- SourceStore_Directory は、ファイルの移動元となるソース ストアのサブフォルダー パスです。
- DestinationStore_Location は、ファイルの移動先となる移動先ストアのフォルダー パスです。
- DestinationStore_Directory は、ファイルの移動先となる移動先ストアのサブフォルダー パスです。
このソリューション テンプレートの使用方法
ファイルの移動テンプレートに移動します。 ファイル移動元のソース ファイル ストアに対する既存の接続を選択するか、新しい接続を作成します。 DataSource_Folder と DataSource_File では、ソース ファイル ストアの同じ接続が参照されていることに注意してください。
ファイル移動先の移動先ファイル ストアに対する既存の接続を選択するか、新しい接続を作成します。
[このテンプレートを使用] タブを選択します。
次の例に示すように、パイプラインが表示されます。
[デバッグ] を選択し、 [パラメーター] で入力し、 [完了] を選択します。 パラメーターは、ファイル移動元のフォルダー パスと、ファイル移動先のフォルダー パスです。
結果を確認します。