Auto Loader よくある質問
Databricks Auto Loaderに関するよくある質問 .
ファイルが追加または上書きされた場合、 Auto Loader ファイルを再度処理しますか?
cloudFiles.allowOverwrites
が有効になっていない限り、ファイルは一度だけ処理されます。ファイルが追加または上書きされた場合、Databricks はファイルのどのバージョンが処理されるかを保証できません。 また、ファイル通知モードでcloudFiles.allowOverwrites
を有効にする場合も注意が必要です。 Auto Loader 、ファイル通知とディレクトリ一覧の両方で新しいファイルを識別する可能性があります。 ファイル通知イベント時間とファイル変更時間の間には不一致があるため、 Auto Loader 2 つの異なるタイムスタンプを取得し、ファイルが 1 回しか書き込まれない場合でも、同じファイルを 2 回取り込む可能性があります。
一般に、 Databricks では、 Auto Loader を使用して不変ファイルのみを取り込み、cloudFiles.allowOverwrites
の設定を避けることをお勧めします。 これが要件を満たさない場合は、Databricks アカウント チームにお問い合わせください。
データファイルが連続して到着するのではなく、定期的に、たとえば1日1回到着する場合でも、このソースを使用する必要がありますか、また何かメリットはありますか?
この場合、 Trigger.AvailableNow
(Databricks Runtime 10.4 LTS 以降で使用可能) 構造化ストリーミング ジョブを設定し、予想されるファイル到着時刻の後に実行するようにスケジュールできます。 Auto Loader 、更新頻度が低い場合も頻繁に更新する場合も適切に機能します。 最終的な更新が非常に大きい場合でも、 Auto Loader は入力サイズに適切にスケーリングされます。 Auto Loaderの効率的なファイル検出手法とスキーマ進化機能により、 Auto Loader はインクリメンタル データ取り込みの推奨方法となっています。
ストリームの再開時にチェックポイントの場所を変更するとどうなりますか?
チェックポイントの場所は、ストリームの重要な識別情報を保持します。 チェックポイントの場所を実質的に変更するということは、前のストリームを放棄して新しいストリームを開始したことを意味します。
事前にイベント通知サービスを作成する必要がありますか?
いいえ。ファイル通知モードを選択し、必要なアクセス許可を指定すると、 Auto Loader によってファイル通知サービスを作成できます。 「 Auto Loader ファイル通知モードとは」を参照してください。
Auto Loaderが作成したイベント通知リソースをクリーンアップするにはどうすればいいですか?
クラウド リソース マネージャーを使用して、リソースを一覧表示および破棄できます。これらのリソースは、クラウド プロバイダーの UI または APIsを使用して手動で削除することもできます。
同じバケット/コンテナ上の異なる入力ディレクトリから複数のストリーミングクエリを実行できますか?
はい、親子ディレクトリでない限り実行できます。たとえば、 prod-logs/
と prod-logs/usage/
は /usage
の子ディレクトリであるため、機能しません /prod-logs
。
Auto Loaderスキーマはどのように推論しますか?
DataFrameが最初に定義されると、Auto Loader はソース ディレクトリを一覧表示し、最新の (ファイル変更時刻順の) 50 GB のデータまたは 1000 個のファイルを選択し、それらを使用してデータ スキーマを推測します。
また、Auto Loader は、ソース ディレクトリ構造を調べてパーティション列を推論し、/key=value/
構造を含むファイル パスを探します。ソースディレクトリの構造に一貫性がない場合 (例:
base/path/partition=1/date=2020-12-31/file1.json
// inconsistent because date and partition directories are in different orders
base/path/date=2020-12-31/partition=2/file2.json
// inconsistent because the date directory is missing
base/path/partition=3/file3.json
Auto Loader パーティション列を空と推論します。 cloudFiles.partitionColumns
を使用して、ディレクトリ構造から列を明示的に解析します。
ソース フォルダが空の場合、 Auto Loader はどのように動作しますか?
ソース ディレクトリが空の場合、推論を実行するためのデータがないため、 Auto Loader ではスキーマを指定する必要があります。
Autoloader はいつスキーマを推論しますか? マイクロバッチのたびに自動的に進化するのですか?
スキーマは、DataFrame がコードで最初に定義されたときに推論されます。 各マイクロバッチ中に、スキーマの変更はその場で評価されます。したがって、パフォーマンスへの影響について心配する必要はありません。 ストリームが再起動すると、スキーマの場所から進化したスキーマを取得し、推論によるオーバーヘッドなしで実行を開始します。