新しいファイルが到着したときにジョブをトリガーする

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

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

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

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

要件

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

制限

  • 最大 50 個のジョブを、Databricks ワークスペースのファイル到着トリガーを使用して構成できます。

  • ファイル到着トリガー用に構成された保存場所には、最大 10,000 個のファイルのみを含めることができます。 より多くのファイルがある場所では、新しいファイルの到着を監視することはできません。 構成されたストレージの場所が Unity カタログの外部ロケーションまたはボリュームのサブパスである場合、10,000 ファイル制限はストレージ場所のルートではなくサブパスに適用されます。 たとえば、保存場所のルートには、そのサブディレクトリ全体で 10,000 を超えるファイルを含めることができますが、構成されたサブディレクトリは 10,000 ファイルの制限を超えてはなりません。

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

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

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

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

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

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

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

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

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

    • トリガー間の最小時間 (秒): 前の実行が完了した後に実行をトリガーするまで待機する最小時間。 この期間に到着したファイルは、待機時間が経過した後にのみ実行をトリガーします。 この設定を使用して、実行の作成頻度を制御します。

    • 最後の変更後の待機時間 (秒) : ファイルの到着後に実行をトリガーするまでの待機時間。 この期間内に別のファイルが到着すると、タイマーがリセットされます。 この設定は、ファイルがバッチで到着し、すべてのファイルが到着した後にバッチ全体を処理する必要がある場合に使用できます。

  7. 構成を検証するには、[ 接続のテスト] をクリックします。

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

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

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