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