メインコンテンツまでスキップ

新しいファイルの到着時にジョブをトリガーする

ファイル到着トリガー を使用すると、新しいファイルがAmazon S3、Azureストレージ、Google Cloud Storage などの外部ロケーションに到着したときに、Databricksジョブの実行をトリガーできます。この機能は、新しいデータが不規則なスケジュールで到着するため、スケジュールされたジョブが非効率的である可能性がある場合に使用できます。

ファイル到着トリガーは、新しいファイルを毎分チェックするために最善を尽くしますが、これは基になるクラウド ストレージのパフォーマンスによって影響を受ける可能性があります。 ファイル到着トリガーでは、ストレージの場所にあるファイルのリストに関連するクラウド プロバイダーのコスト以外の追加コストは発生しません。

ファイル到着トリガーは、 Unity Catalog 外部ロケーションまたはボリュームのルート、または外部ロケーションまたはボリュームのサブパスを監視するように構成できます。 たとえば、Unity Catalog ルート ボリューム /Volumes/mycatalog/myschema/myvolume/の場合、ファイル到着トリガーの有効なパスは次のとおりです。

/Volumes/mycatalog/myschema/myvolume/
/Volumes/mycatalog/myschema/myvolume/mydirectory/

ファイル到着トリガーは、構成された場所のすべてのサブディレクトリで新しいファイルを再帰的にチェックします。 たとえば、ロケーション /Volumes/mycatalog/myschema/myvolume/mydirectory/ のファイル到着トリガーを作成し、このロケーションに次のサブディレクトリがあるとします。

/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirA
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirB
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirC/subdirD

トリガーは、 mydirectorysubdirAsubdirBsubdirCsubdirC/subdirDの新しいファイルをチェックします。

必要条件

ファイル到着トリガーを使用するには、次のものが必要です。

備考

プレビュー

マネージド ファイル イベントは パブリック プレビュー段階です。

  • ストレージの場所に対する READ 権限と、ジョブに対する CAN MANAGE 権限が必要です。ジョブのアクセス許可の詳細については、「 ジョブ ACL」を参照してください

制限

  • 新しいファイルのみが実行をトリガーします。 既存のファイルを同じ名前のファイルで上書きしても、実行はトリガーされません。

  • ファイル到着トリガーに使用するパスには、外部テーブルや、カタログとスキーマの管理された場所を含めることはできません。

  • ファイル到着トリガーに使用されるパスには、*? などのワイルドカードを含めることはできません。

  • ストレージの場所が Unity Catalog の外部ロケーションとして構成され、その外部ロケーションが 管理対象ファイルイベントに対して有効になっている場合:

    • Databricks ワークスペースのファイル到着トリガーを使用して、最大 1,000 個のジョブを構成できます。
    • 保存場所のファイル数に制限はありません。
    • トリガーがロケーションのサブパスを監視する場合、外部ロケーションのボリューム、ルートロケーションの変更数によって、トリガーが変更の処理に許可された時間を超える可能性があります。これが発生すると、トリガーはエラー状態に設定されます。これを防ぐには、ロケーションのルートを監視するようにトリガーを設定します。たとえば、サブパスに Unity Catalog ボリュームを作成し、トリガーをボリュームのルートに構成できます。
  • ファイル・イベントに対してストレージ・ロケーションが有効になっていない場合:

    • 最大 50 個のジョブを、Databricks ワークスペース内のそのような場所でファイル到着トリガーを使用して構成できます。
    • 保存場所には、最大 10,000 個のファイルを格納できます。設定されたストレージの場所が Unity Catalog 外部ロケーションまたはボリュームのサブパスである場合、10,000 ファイルの制限は、ストレージの場所のルートではなくサブパスに適用されます。 たとえば、ストレージの場所のルートには、そのサブディレクトリ全体で 10,000 を超えるファイルを含めることができますが、構成されたサブディレクトリは 10,000 ファイルの制限を超えてはなりません。

管理対象ファイル・イベントがファイル到着トリガーとして使用される場合のその他の制限については、 ファイル・イベントの制限を参照してください。

ファイル到着トリガーと管理対象ファイル・イベントの比較と、管理ファイル・イベントなしの比較

「制限事項」セクションに記載されている違いに加えて、マネージド ファイル イベントでは、ファイル イベントを使用しないファイル到着トリガーと比較して、動作に次の違いが追加されます。

  • 外部ロケーションでファイル イベントが有効になっている場合、 Databricks は新しい内部サービスを使用して、クラウド プロバイダーからの変更通知を処理することで取り込みメタデータを追跡します。 このサービスは、作成または更新された最新のファイルのメタデータを長期間保持します (たとえば、最新の 100 万個のファイルに対して 30 日間のローリング保持)。このアプローチにより、ファイル処理の効率が向上します。

  • 既存のファイルが変更され、そのメタデータがローリング保持期間外の場合、その変更は新しいファイルの到着として扱われ、ジョブの実行がトリガーされます。これを防ぐには、不変ファイルのみを取り込むか、 Auto Loader でファイル到着トリガーを使用して取り込みの進行状況を追跡することができます。

ファイル到着トリガーを追加する

ファイル到着トリガーをジョブに追加するには:

  1. サイドバーで、 ワークフロー をクリックします。

  2. ジョブ タブの 名前 列で、ジョブ名をクリックします。

  3. 右側の ジョブの詳細 パネルで、 トリガーの追加 をクリックします。

  4. トリガーの種類 で、 ファイル到着 を選択します。

  5. [ ストレージの場所 ] に、監視するルートの URL または外部ロケーションのサブパス Unity Catalog または Unity Catalog ボリュームのルートまたはサブパスを入力します。

  6. (オプション)詳細オプションを設定します。

    • トリガー間の最小時間 (秒) : 前回の実行が完了した後に実行をトリガーするまで待機する最小時間。 この期間に到着したファイルは、待機時間が経過した後にのみ実行をトリガーします。 この設定を使用して、実行の作成頻度を制御します。
    • 最後の変更後に待機 (秒) : ファイルの到着後に実行をトリガーするまで待機する時間。 この期間に別のファイルが到着すると、タイマーがリセットされます。 この設定は、ファイルがバッチで到着し、すべてのファイルが到着した後にバッチ全体を処理する必要がある場合に使用できます。
  7. 構成を検証するには、[ 接続のテスト ] をクリックします。

  8. [ 保存 ]をクリックします。

失敗したファイル到着トリガーの通知を受け取る

ファイル到着トリガーの評価に失敗した場合に通知を受け取るには、ジョブ失敗時の Eメール 通知またはシステム宛先通知を設定します。 ジョブに通知を追加するを参照してください。