外部の場所のファイル イベントに関してよく寄せられる質問に対する回答を見つけます。
ファイル イベントとは
ファイル イベントを使用Azure Databricks、ストレージを繰り返しスキャンするのではなく、クラウド通知を使用して新しいファイルまたは変更されたファイルを検出できます。 ファイル イベントを使用すると、インジェストの待機時間とクラウド ストレージリストのコストが削減され、新しい外部の場所で既定で有効になります。
ファイル イベントのしくみ
Automatic モードでファイル イベントを有効にすると、Azure Databricksは、Azure Event Grid と Azure Storage キューを使用してファイル変更通知を送信するようにストレージ アカウントを構成します。 Azure Databricks ファイル イベント サービスは、キューからファイル パス メタデータを読み取って、新しいファイルと変更されたファイルを検出します。 また、このサービスでは、セーフティ ネットとして、ファイルが見落とされていないことを確認するために、ディレクトリ全体の一覧を定期的に実行します。
通知インフラストラクチャは、ファイルの内容を送信しません。
ファイル イベントを使用するAzure Databricks機能はどれですか?
次の機能では、外部の場所で有効にするとファイル イベントが使用されます。
-
自動ローダー: 負荷の高いディレクトリ一覧なしで、増分インジェスト用の新しいファイルを検出します。 Databricks Runtime 18.1 以降では、自動ローダーは使用可能な場合 (
useManagedFileEvents = if_available) ファイル イベントを自動的に使用します。 - ファイル到着トリガー: 新しいファイルが到着したときにジョブを自動的に開始し、処理する新しいファイルがある場合にのみクラスターが実行されるため、リソース使用率とコスト効率が向上します。 ファイル到着トリガーは、ファイル イベントが有効になっていると大幅にスケーラブルになります。 「新しいファイルが到着したときにジョブをトリガーする」を参照してください。
- テーブルの更新トリガー: テーブル内の更新に基づいてジョブを自動的に開始します。 テーブルの更新トリガーは、ファイル イベントが有効になっていると、大幅にスケーラブルになります。 ソース テーブルが更新されたときにジョブをトリガーするを参照してください。
パイプラインとジョブでファイル イベントを有効にする方法
まず、外部の場所のファイル イベントを有効にします。 外部の場所のファイル イベントを設定するを参照してください。
ファイル到着トリガーまたはテーブル更新トリガーでファイル イベントを使用する場合は、追加のアクションを実行する必要はありません。 このジョブは、ファイル イベントの恩恵を自動的に受けます。
また、Databricks Runtime 18.1 以降で自動ローダーを使用する場合は、追加のアクションを実行する必要はありません。 パイプラインは、ファイル イベントの恩恵を自動的に受けます。 以前のバージョンのランタイムを使用する場合は、パイプラインでファイル イベントを有効にします。
spark.readStream.option("cloudFiles.useManagedFileEvents", "true")...
現在、自動ローダーまたはトリガーを使用していない場合はどうすればよいですか?
ファイルイベントはいつでも無効にでき、Azure Databricks によって通知リソースがクリーンアップされます。 Databricks では、ファイル イベントを有効にしておくことをお勧めします。
ファイルイベントを無効にできますか?
Azure Databricksは、新しい外部の場所に対して既定でファイル イベントを有効にします。これは、コストが削減され、インジェスト ワークロードのパフォーマンスが向上するためです。
ファイル イベントなしで外部の場所を作成するには:
カタログ エクスプローラー
- カタログ エクスプローラーで、新しい外部の場所の作成を開始します。
- ストレージ資格情報にファイル イベントのアクセス許可がない場合は、検証の警告が表示されます。 [ 作成を強制 ] をクリックして続行します。
- 作成後、場所を選択し、ファイル イベントの設定をオフにして、ファイル イベントがオフになっていることを確認します。
API
enable_file_eventsを、外部の場所の作成要求でfalseに設定します。
既存の外部の場所でファイル イベントを無効にするには、「外部の場所 のファイル イベントを設定する」を参照してください。