次の方法で共有


最終変更日に基づいて、新しいファイルおよび変更されたファイルを増分コピーする

このチュートリアルでは、新しいファイルと変更されたファイルのみを Lakehouse から Lakehouse に増分コピーするデータ パイプラインを作成します。 最終更新日時でフィルター処理を使用して、コピーするファイルを決定します。

ここで説明した手順を完了すると Data Factory によってソース ストア内のすべてのファイルがスキャンされ、最終更新日時でフィルター処理によってファイル フィルターを適用し、新しいファイルまたは前回以降に更新されたファイルのみがコピー先ストアにコピーされます。

前提条件

  • レイクハウス。 レイクハウスをコピー先データ ストアとして使用します。 ない場合には、「レイクハウスの作成」で作成する手順を参照してください。 「ソース」という名前のフォルダーと「コピー先」という名前のフォルダーを作成します。

増分コピー用のデータ パイプラインを構成する

手順 1: パイプラインを作成する

  1. Power BI に移動します。

  2. 画面の左下にある Power BI アイコンを選択し、[データ ファクトリ] を選択して Data Factory のホームページを開きます。

  3. Microsoft Fabric ワークスペースに移動します。

  4. [データ パイプライン] を選択し、パイプライン名を入力して新しいパイプラインを作成します。

    新たに作成されたワークスペースの新しいデータ パイプラインのボタンを示すスクリーンショット。

    新しいパイプラインを作成する際の名前を示すスクリーンショット。

手順 2: 増分コピーの Copy アクティビティを構成する

  1. キャンバスに Copy アクティビティを追加します。

  2. [ソース] タブで、接続として Lakehouse を選択し、ルート フォルダーとして [ファイル] を選択します。 ファイル パスで、フォルダーとして [ソース] を選択します。 ファイル形式として [バイナリ] を指定します。

    ソースの構成を示すスクリーンショット。

  3. [コピー先] タブで、接続として Lakehouse を選択し、ルート フォルダーとして [ファイル] を選択します。 ファイル パスで、フォルダーとして [コピー先] を選択します。 ファイル形式として [バイナリ] を指定します。

    コピー先の構成を示すスクリーンショット。

手順 3: 増分コピーの時間間隔を設定する

ソース フォルダー内の新しいファイルまたは変更されたファイルを 5 分毎に増分コピーするとします。

  1. 上部のメニューの [スケジュール] ボタンを選択します。 ポップアップ ウィンドウで、スケジュールの実行をオンにし、[繰り返し][分単位] を選択し、間隔を 5 分に設定します。 次に、[開始日時][終了日時] を指定して、このスケジュールを実行する期間を確認します。 次に、[適用] を選択します。

    [スケジュール] ボタンを示すスクリーンショット。

    [スケジュールの構成] を示すスクリーンショット。

  2. Copy アクティビティのソースに移動します。 [詳細設定][最終更新日時でフィルター処理] で、[動的コンテンツの追加] を使用して [開始時刻] を指定します。 開かれているパイプライン式ビルダーに「@formatDateTime(addMinutes(pipeline().TriggerTime, -5), 'yyyy-MM-dd HH:mm:ss')」と入力します。

    [最終更新日時でフィルター処理] の [開始時刻] を示すスクリーンショット。

  3. [実行] を選択します。 これで、Copy アクティビティは、指定した終了時刻まで 5 分毎にソース内の新しく追加されたファイルまたは変更されたファイルをコピー先フォルダーにコピーできます。

  4. 別の [繰り返し] を選択すると、[開始時刻] で指定する必要があるさまざまな動的コンテンツが次の表に表示されます。 [日単位] と [週単位] を選択した場合、対応する動的コンテンツの使用に対して 1 回だけ設定できます。

    繰り返し… 動的コンテンツ
    分単位 @formatDateTime(addMinutes(pipeline().TriggerTime, -<your set repeat minute>), 'yyyy-MM-dd HH:mm:ss')
    1 時間ごと @formatDateTime(addHours(pipeline().TriggerTime, -<your set repeat hour>), 'yyyy-MM-ddTHH:mm:ss')
    毎日 @formatDateTime(addDays(pipeline().TriggerTime, -1), 'yyyy-MM-ddTHH:mm:ss')
    週単位 @formatDateTime(addDays(pipeline().TriggerTime, -7), 'yyyy-MM-ddTHH:mm:ss')

Data Warehouse から Lakehouse にデータを増分読み込みする方法について詳しく説明します。