次の方法で共有


ファイル イベントを含む自動ローダーの概要

効率的なファイル検出を提供する自動ローダーを使用した cloudFiles.useManagedFileEvents オプションについて説明します。

ファイル イベントを使用した自動ローダーのしくみ

ファイル イベントを含む自動ローダーでは、クラウド ベンダーによって提供されるファイル イベント通知機能が使用されます。 新しいファイルの作成や変更などのファイル イベント時に通知を発行するようにクラウド ストレージ コンテナーを構成できます。 たとえば、 Amazon S3 イベント通知では、新しいファイル到着によって Amazon SNS トピックへの通知をトリガーできます。 その後、Amazon SQS キューを SNS トピックにサブスクライブして、イベントの非同期処理を行うことができます。

次の図は、このパターンを示しています。

クラウド ストレージ イベント通知システム

Databricks ファイル イベントは、ファイル イベントをリッスンするようにクラウド リソースを設定するサービスです。 または、クラウド リソースを自分で設定し、独自のストレージ キューを提供することもできます。

クラウド リソースが構成されると、サービスはファイル イベントをリッスンし、ファイル メタデータ情報をキャッシュします。 自動ローダーは、 cloudFiles.useManagedFileEventstrue に設定された状態で実行されるときに、このキャッシュを使用してファイルを検出します。

次の図は、これらの相互作用を示しています。

ファイル イベントを含む自動ローダー

cloudFiles.useManagedFileEventstrue に設定された状態でストリームを初めて実行すると、自動ローダーは読み込みパスの完全なディレクトリ 一覧を実行して、すべてのファイルを検出し、ファイル イベント キャッシュで最新の状態を取得します (キャッシュ内の有効な読み取り位置をセキュリティで保護し、ストリームのチェックポイントに格納します)。 自動ローダーの後続の実行では、格納されている読み取り位置を使用してファイル イベント キャッシュから直接読み取ることによって新しいファイルを検出し、ディレクトリの一覧を必要としません。

キャッシュからの増分ファイル検出を利用するには、自動ローダー ストリームを少なくとも 7 日に 1 回実行することをお勧めします。 少なくともこの頻度で自動ローダーを実行しない場合、格納されている読み取り位置は無効になり、自動ローダーはファイル イベント キャッシュで最新の状態を取得するために完全なディレクトリ一覧を実行する必要があります。

ファイル イベントを含む自動ローダーでディレクトリ一覧を使用するタイミング

自動ローダーは、次の場合に完全なディレクトリ一覧を実行します。

  • 新しいストリームの開始
  • ディレクトリ一覧またはレガシ ファイル通知からのストリームの移行
  • ストリームの読み込みパスが変更されました
  • ファイル イベントを含む自動ローダーが 7 日を超える期間実行されない
  • 自動ローダーの読み取り位置を無効にする外部の場所が更新されます。 たとえば、ファイル イベントがオフまたはオンになる場合、外部の場所のパスが変更されたとき、または外部の場所に対して別のキューが提供される場合などがあります。

自動ローダーは、 includeExistingFilesfalse に設定されている場合でも、常に最初の実行時に完全な一覧を実行します。 このフラグを使用すると、ストリームの開始時刻後に作成されたすべてのファイルを取り込めます。 自動ローダーは、ディレクトリ全体を一覧表示して、ストリームの開始時刻後に作成されたすべてのファイルを検出し、ファイル イベント キャッシュ内の読み取り位置をセキュリティで保護し、チェックポイントに格納します。 後続の実行はファイル イベント キャッシュから直接読み取られ、ディレクトリの一覧は必要ありません。

また、Databricks ファイル イベント サービスは、外部の場所で完全なディレクトリ一覧を定期的に実行して、ファイルが見落とされていないことを確認します (たとえば、指定されたキューが正しく構成されていない場合)。 最初の完全なディレクトリ一覧は、外部の場所でファイル イベントが有効になるとすぐに開始されます。 後続の一覧は、ファイル イベントを使用してデータを取り込むための自動ローダー ストリームが少なくとも 1 つ存在する限り、定期的に発生します。

ファイル イベントを使用した自動ローダーのベスト プラクティス

ファイル イベントで自動ローダーを使用する場合のパフォーマンスと信頼性を最適化するには、次のベスト プラクティスに従います。

最適なファイル検出にボリュームを使用する

パフォーマンスを向上させるために、Databricks では、自動ローダーがデータを読み込むパスまたはサブディレクトリごとに外部ボリュームを作成し、クラウド パス (/Volumes/someCatalog/someSchema/someVolume など) ではなくボリューム パス (s3://bucket/path/to/volume など) を自動ローダーに提供することをお勧めします。 これにより、自動ローダーは最適化されたデータ アクセス パターンを使用してボリュームを一覧表示できるため、ファイルの検出が最適化されます。

イベント ドリブン パイプラインのファイル到着トリガーを検討する

イベント ドリブンデータ処理の場合は、継続的パイプラインではなく ファイル到着トリガー を使用することを検討してください。 新しいファイルが到着すると、ファイル到着トリガーによってパイプラインが自動的に開始され、処理する新しいファイルがある場合にのみクラスターが実行されるため、リソース使用率とコスト効率が向上します。

連続トリガーを使用して適切な間隔を構成する

ファイル到着トリガーを使用して、到着するとすぐにファイルを処理することをお勧めします。 ただし、ユース ケースで Trigger.ProcessingTime などの継続的トリガーを使用する必要がある場合は、トリガー間隔を 1 minute 以上に構成することをお勧めします (Lakeflow Spark 宣言パイプラインを使用する場合は pipelines.trigger.interval を使用して設定します)。 これにより、新しいファイルが到着したかどうかを確認するポーリング頻度が低くなり、ワークスペースから同時に実行できるストリームの数が増えます。

ファイル イベントを使用した自動ローダーの制限事項

  • パスの書き換えはサポートされていません。 パスの書き換えは、DBFS の下に複数のバケットまたはコンテナーがマウントされている場合に使用されます。これは非推奨の使用パターンです。

ファイル イベントの制限事項の一般的な一覧については、「 ファイル イベントの制限事項」を参照してください。

FAQ

ファイル イベントを含む自動ローダーに関してよく寄せられる質問への回答を確認します。

ファイル イベントが正しく設定されていることを確認するにはどうすればよいですか?

[外部の場所] ページの [ 接続のテスト ] ボタンをクリックします。 ファイル イベントが正しく設定されている場合は、 ファイル イベントの読み取 り項目の緑色のチェック マークが表示されます。 外部の場所を作成し、 Automatic モードでファイル イベントを有効にした場合、Databricks が外部の場所の通知を設定している間、テストに Skipped が表示されます。 数分待ってから、[ 接続のテスト ] をもう一度クリックします。 Databricks に、ファイル イベントの設定またはファイル イベントからの読み取りに必要なアクセス許可がない場合は、 ファイル イベントの読み取り 項目に関するエラーが表示されます。

初回実行時に完全なディレクトリ一覧を回避できますか?

No. includeExistingFilesfalse に設定されている場合でも、自動ローダーは、ストリームの開始後に作成されたファイルを検出し、ファイル イベント キャッシュで最新の状態を取得するディレクトリ一覧を実行します (キャッシュ内の有効な読み取り位置をセキュリティで保護し、ストリームのチェックポイントに格納します)。

ファイルが見つからないのを防ぐために cloudFiles.backfillInterval を設定する必要がありますか?

No. クラウド ストレージ通知システムではファイルが見落とされたり、到着が遅れたりする可能性があるため、レガシ ファイル通知モードではこの設定をお勧めします。 これで、Databricks は外部の場所で完全なディレクトリ一覧を定期的に実行します。 最初の完全なディレクトリ一覧は、外部の場所でファイル イベントが有効になるとすぐに開始されます。 ファイル イベントを使用してデータを取り込むための自動ローダー ストリームが少なくとも 1 つ存在する限り、後続の一覧は定期的に行われます。

指定されたストレージ キューを使用してファイル イベントを設定しましたが、キューが正しく構成されておらず、ファイルが見つかりませんでした。 キューの構成が正しく行われなかったときに、自動ローダーがミスしたファイルを確実に取り込むにはどうすればよいですか?

まず、指定されたキューの構成ミスが修正されていることを確認します。 確認するには、外部の場所ページの [ テスト接続 ] ボタンをクリックします。 ファイル イベントが正しく設定されている場合は、 ファイル イベントの読み取 り項目の緑色のチェック マークが表示されます。

Databricks は、ファイル イベントが有効になっている外部の場所の完全なディレクトリ一覧を実行します。 このディレクトリ一覧では、構成ミスの期間中に見落とされたファイルが検出され、ファイル イベント キャッシュに格納されます。

構成ミスが修正され、Databricks によってディレクトリの一覧が完了すると、自動ローダーは引き続きファイル イベント キャッシュから読み取り、誤った構成期間中に見落とされたファイルを自動的に取り込みます。

Databricks は、クラウド リソースを作成し、キューからメッセージを読み取って削除するためのアクセス許可をどのように取得しますか?

Databricks は、ファイル イベントが有効になっている外部の場所に関連付けられているストレージ資格情報で付与されたアクセス許可を使用します。