ファイルイベントFAQ
外部ロケーションのファイルイベントに関してよく寄せられる質問の回答をご覧ください。
ファイルイベントとは何ですか?
ファイルイベントにより、Databricks はストレージを繰り返しスキャンする代わりに、クラウド通知を通じて新規または変更済みファイルを検出できます。ファイルイベントは、取り込みの遅延とクラウドストレージのリスト化のコストを削減し、新しい外部ロケーションではデフォルトで有効になっています。

ファイルイベントの動作方法
Automatic モードでファイルイベントを有効にすると、Databricks はお客様の S3 バケットを構成し、管理された SNS トピック(csms-* のプレフィックス付き)にファイル変更通知を公開し、そのトピックにサブスクライブされた SQS キューをプロビジョニングします。Databricks ファイルイベントサービスは、SQS キューからファイルパスのメタデータを読み取り、新規および変更されたファイルを検出します。セーフティネットとして、サービスは、ファイルの見落としがないことを確実にするため、定期的な完全なディレクトリ一覧も実行します。
通知インフラストラクチャはファイルの内容を送信しません。
どの Databricks 機能がファイルイベントを使用しますか?
外部ロケーションでファイルイベントを有効にすると、次の機能でファイルイベントが使用されます:
- Auto Loader :コストのかかるディレクトリリスト作成を行うことなく、増分取り込みのための新しいファイルを検出します。Databricks Runtime 18.1 以降では、Auto Loader は利用可能な場合にファイルイベントを自動的に利用します(
useManagedFileEvents = if_available)。 - ファイル到着トリガー :新しいファイルが到着すると、ジョブを自動的に開始し、処理する新しいファイルがある場合にのみクラスターが実行されるため、リソースの使用率とコスト効率が向上します。ファイルイベントを有効にすると、ファイル到着トリガーの拡張性が大幅に向上します。新しいファイルの到着時にジョブをトリガーするを参照してください。
- テーブル更新トリガー :テーブルが更新されると、ジョブを自動的にトリガーします。ファイルイベントを有効にすると、テーブル更新トリガーの拡張性が大幅に向上します。ソース テーブルが更新されたときにジョブをトリガーするを参照してください。
パイプラインとジョブでファイルイベントを有効にするにはどうすればよいですか?
まず、外部ロケーションのファイル イベントを有効にします。「外部ロケーションのファイル イベントのセットアップ」を参照してください。
ファイル到着トリガーまたはテーブル更新トリガーとファイルイベントを併用する場合、追加の操作は必要ありません。ジョブはファイルイベントを自動的に活用します。
また、Auto LoaderをDatabricks Runtime 18.1以降で使用する場合、追加のアクションを実行する必要はありません。パイプラインは自動的にファイルイベントの恩恵を受けます。以前のランタイムバージョンをお使いの場合は、パイプラインでファイルイベントを有効にしてください:
spark.readStream.option("cloudFiles.useManagedFileEvents", "true")...
現在、Auto Loaderまたはトリガーを使用していない場合はどうなりますか?
いつでもファイルイベントをオフにでき、Databricksが通知リソースをクリーンアップいたします。Databricks では、ファイルイベントを有効にしておくことを推奨しています。
ファイルイベントをオプトアウトできますか?
Databricks は、取り込みワークロードのコストを削減し、パフォーマンスを向上させるため、新しい外部ロケーションではファイルイベントをデフォルトで有効にします。
ファイルイベントなしで外部ロケーションを作成するには:
- Catalog Explorer
- API
- カタログ エクスプローラーで、新しい外部ロケーションの作成を開始します。
- ストレージ認証情報にファイルイベント権限がない場合、検証警告が表示されます。**強制作成**をクリックします。
- 作成後、ロケーションを選択し、ファイルイベント設定のチェックを外して、ファイルイベントが無効になっていることを確認します。
外部ロケーション作成リクエストで、enable_file_eventsをfalseに設定します。
既存の外部ロケーションでファイル イベントを無効にするには、「外部ロケーションのファイル イベントのセットアップ」を参照してください。
DatabricksはAWSアカウントにリソースを作成しますか?
はい。 自動 モードでファイルイベントを有効にすると、Databricks は AWS アカウント内の外部ロケーションごとに、1つの SNS トピックと 1つの SQS キュー(接頭辞 csms-*)を作成し、SNS トピックにパブリッシュするように S3 バケット通知を構成します。 **Provided** モードを使用すると、独自のキューを作成することもできます。「どのような場合に自動ではなくプロビジョニングされたモードを使用しますか?」を参照してください。
Databricks は作成したリソースを管理しますか?
Databricks はサブスクリプションの更新とメッセージの利用を管理します。ファイルイベントサービスはSQSキューから読み取り、ファイルが漏れていないことを確認するために定期的に完全なディレクトリ一覧を実行します。
外部ロケーションでファイルイベントをオフにすると、Databricks は S3 バケット通知構成を削除し、関連付けられている SNS トピックと SQS キューを削除します。ファイルイベントが有効になっている外部ロケーションを削除すると、Databricks は関連する通知リソースをクリーンアップします。
AWSアカウントでDatabricksが管理するファイルイベントリソースを見つけるには、csms-*プレフィックスを持つSNSトピックとSQSキューを検索してください。
Databricks は、クラウド リソースを作成し、キューからメッセージを読み取り、削除する権限をどのように取得しますか?
Databricks は、ファイルイベントが有効になっている外部ロケーションに関連付けられているストレージ資格情報で付与されたアクセス許可を使用します。
SNSトピックとSQSキューはいくつ作成されますか?
1つのSNSトピックと1つのSQSキューは、外部ロケーションごとに作成されます。同じバケット上に複数の外部ロケーションがある場合、それぞれが独自のリソースペアを持ちます。
どのようなデータがSNSとSQSを流れますか?
ファイルイベント通知には、S3 オブジェクトキー(ファイルパス)、イベントタイプ(例: s3:ObjectCreated:Put)、タイムスタンプ、バケット名、リージョンなど、標準の S3 イベント通知フィールドが含まれます。完全なスキーマについては、 「Amazon S3 通知コンテンツ構造」を参照してください。
ファイルの内容は、SNSトピックまたはSQSキューを介して転送されることはありません。
料金はかかりますか?
ファイルイベントを有効にすると、AWSアカウントにSNSトピックとSQSキューが作成されます。これらのリソースには、ファイルのアクティビティ(作成、更新、削除)に応じて標準のAWSメッセージング料金が発生し、保存されているデータの総量に基づくものではありません。
ほとんどのワークロードの場合、増分コストは、同じ場所にあるS3ストレージにすでに支払っている金額のほんの一部です。バケットが生成するファイル変更イベントの数に基づいて、標準の「AWS SNS の価格」および「AWS SQS の価格」ページを使用して、費用を見積もることができます。
ファイルパスにPIIまたは機密情報を含めることができますか?
それは、組織のファイル命名方法によって異なります。S3 オブジェクトキー (パス) は、すべてのイベント通知に含まれています。ファイル命名規則でPIIまたは機密性の高い識別子がパスに埋め込まれている場合、それらの値はSNSトピックとSQSキューを経由して流れます。ただし、これらはご自身のAWSアカウントにあるリソースであり、Databricksはストレージ資格情報を通じてそれらの同じファイルパスに対する読み取りアクセス権をすでに持っています。ファイルイベントを持つ外部ロケーションは、ファイルイベントを持たない外部ロケーションよりも、Databricks がお客様のデータにより多くアクセスすることを許可しません。
どのような暗号化およびセキュリティ制御が実施されていますか?
- 保存時の暗号化:管理された SNS トピックと SQS キューは、AWS マネージドの保存時の暗号化を使用します。
- 転送中の暗号化 : S3、SNS、SQS、およびDatabricksサービス間のすべての通信は、TLS を使用します。
- スコープ : 管理対象のリソースは
csms-*名前空間に限定され、ストレージ認証情報内のIAMロールを介してのみアクセスできます。 - 監査 :Databricksが管理するリソースは、
csms-*命名プレフィックスを使用します。AWS CloudTrail を使用して、これらのリソースへのすべてのAPIコールを監視できます。
規制のある環境における考慮事項
厳格なクラウドセキュリティポリシーを持つ組織は、次の点を検討する必要があります:
- ファイルイベントIAMポリシーは、
csms-*で始まるリソースにスコープされます。この名前空間外にある既存のSNSトピック、SQSキュー、またはその他のリソースへのアクセスを許可しません。 - お使いのポリシーで、サードパーティサービスがAWSリソースを作成することが禁止されている場合、**Provided**モードを使用し、独自のSQSキューARNを指定してください。
- 通知には、S3イベントメタデータ(オブジェクトキー、イベントタイプ、タイムスタンプ、バケットおよびリージョン識別子など)のみが含まれます。ファイルコンテンツがインフラストラクチャを流れません。
- AWS CloudTrail を使用して、
csms-*リソースへのすべての API コールを監視できます。 - マネージド リソースは、保存時にAWSで管理される暗号化を使用します。すべての通信は転送中にTLSを使用します。
自動ではなく、どのような場合に提供済みモードを使用しますか?
ほとんどの顧客には、「自動」を推奨しています。お客様自身でキューを作成および管理するプロバイデッドモードは、ポリシーによりサードパーティのリソース作成が禁止されている組織でご利用いただけます。「 プロビジョン済み 」モードのセットアップは複雑でセルフサービスです;Databricks は、それらのリソースのプロビジョニングに対してサポートを提供していません。
組織でリソースの作成を制限する必要がある場合は、 Provided モードの使用をご検討ください。セットアップ手順については、「外部ロケーションのファイル イベントのセットアップ」を参照してください。