Azure Data Factory で LastModifiedDate に基づいて新規および変更済みのファイルをコピーする
適用対象: Azure Data Factory Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
この記事では、LastModifiedDate 基づいて新規および変更済みのファイルのみをファイル ベースのストアからコピー先ストアにコピーするために使用できるソリューション テンプレートについて説明します。
このソリューション テンプレートについて
このテンプレートは、最初に LastModifiedDate 属性に基づいて新規および変更済みのファイルのみを選択してから、選択したファイルをソース データ ストアからコピー先データ ストアにコピーします。
このテンプレートには、以下の 1 つのアクティビティが含まれています。
- コピー。LastModifiedDate に基づいて新規および変更済みのファイルのみをファイル ストアからコピー先ストアにコピーします。
このテンプレートでは、次の 6 つのパラメーターが定義されます。
- FolderPath_Source は、ソース ストアからファイルを読み込むために使用するフォルダー パスです。 既定値を目的のフォルダー パスに置き換える必要があります。
- Directory_Source は、ソース ストアからファイルを読み取ることができるサブフォルダー パスです。 既定値を独自のサブフォルダー パスに置き換える必要があります。
- FolderPath_Destination は、コピー先ストアにファイルをコピーするために使用するフォルダー パスです。 既定値を目的のフォルダー パスに置き換える必要があります。
- Directory_Destination は、ファイルを宛先ストアにコピーできるサブフォルダー パスです。 既定値を独自のサブフォルダー パスに置き換える必要があります。
- LastModified_From は、LastModifiedDate 属性がこの datetime 値と同じかそれ以降であるファイルを選択するために使用します。 前回コピーされなかった新しいファイルのみを選択するには、この datetime 値を前回パイプラインがトリガーされた時刻に設定します。 既定値の '2019-02-01T00:00:00Z' を UTC タイムゾーンの予想される LastModifiedDate に置き換えることができます。
- LastModified_To は、LastModifiedDate 属性がこの datetime 値より前であるファイルを選択するために使用します。 前の実行ではコピーされなかった新しいファイルのみを選択するには、この datetime 値を現在の時刻に設定します。 既定値の '2019-02-01T00:00:00Z' を UTC タイムゾーンの予想される LastModifiedDate に置き換えることができます。
このソリューション テンプレートの使用方法
Azure Data Factory の [作成者] タブから [テンプレート ギャラリー] に移動し、+ ボタンを選択し、[パイプライン] を選択し、最後に [テンプレート ギャラリー] を選択します。
テンプレート Copy new files only by LastModifiedDate を見つけて選択し、[続行] を選択します。
コピー先ストアへの [新規] 接続を作成します。 コピー先ストアは、ファイルのコピー先となる場所です。
ソース ストレージ ストアへの [新規] 接続を作成します。 ソース ストレージ ストアは、コピーするファイルが存在する場所です。
[このテンプレートを使用] を選択します。
次の例に示すように、使用可能なパイプラインがパネルに表示されます。
[デバッグ] を選択して [パラメーター] の値を書き込み、[完了] を選択します。 続く画像では、パラメーターを次のように設定しています。
- FolderPath_Source = sourcefolder
- Directory_Source = subfolder
- FolderPath_Destination = destinationfolder
- Directory_Destination = subfolder
- LastModified_From = 2019-02-01T00:00:00Z
- LastModified_To = 2019-03-01T00:00:00Z
この例は、ある期間 (2019-02-01T00:00:00Z から 2019-03-01T00:00:00Z まで) の間に最終変更されたファイルがソース パス sourcefolder/subfolder から宛先パス destinationfolder/subfolder にコピーされることを示しています。 期間やフォルダーは、独自のパラメーターに置き換えることができます。
結果を確認します。 構成された期間中に最終変更されたファイルのみがコピー先ストアにコピーされることがわかります。
タンブリング ウィンドウ トリガーを追加してこのパイプラインを自動化すると、パイプラインで常に LastModifiedDate に基づいて新規および変更済みのファイルのみを定期的にコピーできます。 [トリガーの追加] 、 [新規/編集] の順に選択します。
[Add Triggers](トリガーの追加) ウィンドウで [+ 新規] を選択します。
トリガーの種類として [タンブリング ウィンドウ] を選択し、繰り返しとして [15 分ごと] を設定します (任意の間隔時間に変更できます)。 [アクティブ化済み] ボックスで [はい] を選択してから、 [OK] を選択します。
[トリガー実行のパラメーター] の値を次のように設定し、 [完了] を選択します。
- FolderPath_Source = sourcefolder。 ソース データ ストアのフォルダーに置き換えることができます。
- Directory_Source = subfolder。 ソース データ ストア内のサブフォルダーに置き換えることができます。
- FolderPath_Destination = destinationfolder。 コピー先データ ストアのフォルダーに置き換えることができます。
- Directory_Destination = subfolder。 宛先データ ストア内のサブフォルダーに置き換えることができます。
- LastModified_From = @trigger().outputs.windowStartTime. これは、パイプラインが最後にトリガーされた時間を特定するトリガーのシステム変数です。
- LastModified_To = @trigger().outputs.windowEndTime. これは、今回パイプラインがトリガーされる時間を特定するトリガーのシステム変数です。
[すべて公開] を選択します。
ソース データ ストアのソース フォルダーに新しいファイルを作成します。 パイプラインが自動的にトリガーされるまで待機します。新しいファイルのみがコピー先ストアにコピーされます。
左側のナビゲーション パネルの [監視] タブを選択し、トリガーの繰り返しが 15 分ごとに設定された場合は約 15 分待ちます。
結果を確認します。 パイプラインが 15 分ごとに自動的にトリガーされ、パイプラインが実行されるたびにソース ストアの新規または変更済みのファイルのみがコピー先ストアにコピーされます。