Auto Loaderとは
Auto Loaderは、新しいデータファイルがクラウドストレージに到着すると、追加設定なしで段階的かつ効率的に処理します。
Auto Loaderの仕組み
Auto Loader は、新しいデータ ファイルがクラウド ストレージに到着すると、段階的かつ効率的に処理します。 Auto Loaderは、AWS S3 (s3://
)、Azure Data Lake Storage Gen2 (ADLS Gen2、abfss://
)、Google Cloud Storage (GCS、gs://
)、Azure Blob Storage (wasbs://
)、ADLS からデータ ファイルをロードできます。 Gen1 (adl://
)、および Databricks ファイル システム (DBFS、dbfs:/
)。 Auto Loader はJSON
、 CSV
、 XML
、 PARQUET
、 AVRO
、 ORC
、 TEXT
、およびBINARYFILE
ファイル形式を取り込むことができます。
注:
従来の Windows Azure ストレージ BLOB ドライバー (WASB) は非推奨になりました。 ABFSには、WASBに比べて多くの利点があります。 ABFS に関する Azure のドキュメントを参照してください。レガシ WASB ドライバーの操作に関するドキュメントについては、「 WASB を使用した Azure Blob Storage への接続 (レガシ)」を参照してください。
Azure は、 Azure Data Lake Storage Gen1 の廃止を発表しました。 Databricks では、すべてのデータを Azure Data Lake Storage Gen1 から Azure Data Lake Storage Gen2 に移行することをお勧めします。 まだ移行していない場合は、「 Databricks から Azure Data Lake Storage Gen1 にアクセスする」を参照してください。
Auto Loaderは、cloudFiles
という構造化ストリーミングソースを提供します。クラウドファイルストレージ上の入力ディレクトリパスが与えられると、cloudFiles
ソースは新しいファイルが到着すると自動的に処理し、オプションでそのディレクトリ内の既存のファイルも処理します。Auto Loaderは、デルタ・ライブ・テーブルでPythonとSQLの両方をサポートしています。
Auto Loaderを使用して、何十億ものファイルを処理し、テーブルを移行または埋め戻すことができます。Auto Loaderは、1時間あたり数百万ものファイルをほぼリアルタイムで取り込むことができます。
Auto Loaderは取り込みの進行状況をどのように追跡しますか?
ファイルが検出されると、そのメタデータはAuto Loaderパイプラインのチェックポイントの場所にあるスケーラブルなキーバリューストア(RocksDB)に永続化されます。このキーと値のストアにより、データが1回だけ処理されることが保証されます。
障害が発生した場合、Auto Loaderはチェックポイントの場所に保存されている情報によって中断されたところから再開でき、Delta Lakeへのデータの書き込み時に1回限りの保証を提供し続けます。フォールトトレランスや1回限りのセマンティクスを実現するために、自分で状態を維持または管理する必要はありません。
Delta Live TablesでAuto Loaderを使用した増分インジェスト
Databricksは、増分データの取り込みにDelta Live TablesのAuto Loaderを推奨しています。Delta Live Tablesは、Apache Spark Structured Streamingの機能を拡張し、わずか数行の宣言的なPythonまたはSQLを書くだけで、本番品質のデータパイプラインを導入することができます。これによって、以下のことが可能になります。
Delta Live Tablesがパイプラインの設定を自動的に管理するため、スキーマやチェックポイントの場所を指定する必要はありません。「Delta Live Tablesでデータを読み込む」を参照してください。
Databricks では、Apache Spark 構造化ストリーミングを使用してクラウド オブジェクト ストレージからデータを取り込む場合は常に Auto Loader ことをお勧めします。 APIs は Python と Scala で利用できます。
Databricks Auto Loader の使用を開始する
Delta Live TablesでAuto Loaderを使用した増分データ取り込みの構成を開始するには、次の記事を参照してください。
例: 一般的な Auto Loader パターン
一般的な Auto Loader パターンの例については、「 一般的なデータ読み込みパターン」を参照してください。
Auto Loaderのオプションを設定する
Auto Loaderは、データ量、種類、速度に応じて調整することができます。
Auto Loaderオプションの完全なリストについては、次を参照してください。
予期せぬパフォーマンスに遭遇した場合は、FAQを参照してください。
Auto Loaderのファイル検出モードを設定する
Auto Loaderは2つの ファイル検出モードをサポートしています。以下を参照してください。
ファイルに直接構造化ストリーミングを使用するよりも、Auto Loaderが優れている点
Apache Sparkでは、spark.readStream.format(fileFormat).load(directory)
を使用してファイルを段階的に読み取ることができます。Auto Loaderには、ファイルソースに比べて次のような利点があります。
スケーラビリティ:Auto Loaderは数十億のファイルを効率的に検出できます。バックフィルは非同期的に実行できるため、コンピューティングリソースの無駄を避けることができます。
パフォーマンス:Auto Loaderによるファイル検出のコストは、ファイルが置かれる可能性のあるディレクトリの数ではなく、取り込まれるファイルの数によって変化します。「 Auto Loaderのディレクトリリストモードとは」を参照してください。
スキーマの推論と進化のサポート: Auto Loader スキーマのドリフトを検出し、スキーマの変更が発生したときに通知し、他の方法では無視または失われたデータをレスキューできます。 「 Auto Loader スキーマ推論のしくみ」を参照してください。
コスト:Auto Loaderは、ネイティブクラウドAPIを使用して、ストレージに存在するファイルの一覧を取得します。さらに、Auto Loaderのファイル通知モードは、ディレクトリのリストを完全に回避することで、クラウドのコストをさらに削減するのに役立ちます。Auto Loaderは、ストレージにファイル通知サービスを自動的に設定して、ファイル検出を大幅に低コストにすることができます。