新しいファイルの到着時にジョブをトリガーする
Databricksファイル到着トリガー を使用すると、新しいファイルがAmazonS3、 StorageAzure 、 などの 外部ロケーション に到着したときに、 ジョブの実行をトリガーできます。Google Cloud Storageこの機能は、新しいデータが不規則なスケジュールで到着するため、スケジュールされたジョブが非効率的である可能性がある場合に使用できます。
ファイル到着トリガーは、新しいファイルを毎分チェックするために最善を尽くしますが、これは基になるクラウド ストレージのパフォーマンスによって影響を受ける可能性があります。 ファイル到着トリガーでは、ストレージの場所にあるファイルのリストに関連するクラウド プロバイダーのコスト以外の追加コストは発生しません。
ファイル到着トリガーは、 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
トリガーは、 mydirectory
、 subdirA
、 subdirB
、 subdirC
、 subdirC/subdirD
の新しいファイルをチェックします。
必要条件
ファイル到着トリガーを使用するには、次のものが必要です。
- ワークスペースで Unity Catalog が有効になっている必要があります。
- ストレージの場所は、 Unity Catalog ボリュームまたは Unity Catalog メタストアに追加された外部ロケーションのいずれかを使用する必要があります。 クラウドストレージをDatabricksに接続するための外部ロケーションの作成を参照してください。
- ストレージの場所に対する
READ
のアクセス許可と、ジョブに対する CAN MANAGE アクセス許可が必要です。 ジョブのアクセス許可の詳細については、「 ジョブ ACL」を参照してください。
制限
- 新しいファイルのみが実行をトリガーします。 既存のファイルを同じ名前のファイルで上書きしても、実行はトリガーされません。
- Databricks ワークスペースのファイル到着トリガーを使用して、最大 50 個のジョブを構成できます。
- ファイル到着トリガー用に構成された保存場所には、最大 10,000 個のファイルのみを含めることができます。 より多くのファイルがある場所では、新しいファイルの到着を監視することはできません。 構成されたストレージの場所が Unity Catalogの外部ロケーションまたはボリュームのサブパスである場合、10,000 ファイル制限はストレージ場所のルートではなくサブパスに適用されます。 たとえば、保存場所のルートには、そのサブディレクトリ全体で 10,000 を超えるファイルを含めることができますが、構成されたサブディレクトリは 10,000 ファイルの制限を超えてはなりません。
- ファイル到着トリガーに使用するパスには、外部テーブルやカタログとスキーマの管理された場所を含めることはできません。
- ファイル到着トリガーに使用されるパスには、
*
や?
などのワイルドカードを含めることはできません。
ファイル到着トリガーを追加する
ファイル到着トリガーをジョブに追加するには:
-
サイドバーで、「 ワークフロー」 をクリックします。
-
「ジョブ 」タブの 「名前 」列で、ジョブ名をクリックします。
-
右側の [ジョブの詳細 ] パネルで、[ トリガーの追加 ] をクリックします。
-
[トリガーの種類 ] で、 [ ファイル到着 ] を選択します。
-
[ ストレージの場所 ] に、監視するルートの URL または外部ロケーションのサブパス Unity Catalog または Unity Catalog ボリュームのルートまたはサブパスを入力します。
-
(オプション)詳細オプションを設定します。
- トリガー間の最小時間 (秒 ): 前回の実行が完了した後に実行をトリガーするまで待機する最小時間。 この期間に到着したファイルは、待機時間が経過した後にのみ実行をトリガーします。 この設定を使用して、実行の作成頻度を制御します。
- 最後の変更後に待機 (秒 ): ファイルの到着後に実行をトリガーするまで待機する時間。 この期間に別のファイルが到着すると、タイマーがリセットされます。 この設定は、ファイルがバッチで到着し、すべてのファイルが到着した後にバッチ全体を処理する必要がある場合に使用できます。
-
構成を検証するには、[ 接続のテスト ] をクリックします。
-
[ 保存 ]をクリックします。
失敗したファイル到着トリガーの通知を受け取る
ファイル到着トリガーの評価に失敗した場合に通知を受け取るには、ジョブ失敗時の Eメール 通知またはシステム宛先通知を設定します。 「ジョブに通知を追加する」を参照してください。