Auto Loaderとは?
Auto Loaderは、新しいデータファイルがクラウドストレージに到着すると、追加設定なしで段階的かつ効率的に処理します。
Auto Loaderはどのように機能しますか?
Auto Loader は、新しいデータ ファイルがクラウド ストレージに到着すると、段階的かつ効率的に処理します。これは、 cloudFiles
と呼ばれる構造化ストリーミングソースを提供します。クラウドファイルストレージ上の入力ディレクトリパスを指定すると、 cloudFiles
ソースは新しいファイルが到着すると自動的に処理し、そのディレクトリ内の既存のファイルも処理するオプションもあります。Auto Loader は、DLT で Python と SQL の両方をサポートしています。
Auto Loaderを使用して、何十億ものファイルを処理し、テーブルを移行または埋め戻すことができます。Auto Loaderは、1時間あたり数百万ものファイルをほぼリアルタイムで取り込むことができます。
サポートされている Auto Loader ソース
Auto Loader は、次のソースからデータ ファイルをロードできます。
-
Amazon S3 (
s3://
) -
Azure データレイク Storage (ADLS,
abfss://
) -
Google Cloud Storage(GCS、
gs://
) -
Azure Blob Storage (
wasbs://
)
従来の Windows Azure ストレージ BLOB ドライバー (WASB) は非推奨になりました。 ABFSには、WASBに比べて多くの利点があります。 ABFS に関する Azure のドキュメントを参照してください。レガシ WASB ドライバーの操作に関するドキュメントについては、「 WASB を使用して Azure Blob Storage に接続する (レガシ)」を参照してください。
- Databricks ファイル システム (DBFS、
dbfs:/
)
Auto Loader は、JSON
、CSV
、XML
、PARQUET
、AVRO
、ORC
、TEXT
、および BINARYFILE
ファイル形式を取り込むことができます。
Auto Loader はインジェストの進行状況をどのように追跡しますか?
ファイルが検出されると、そのメタデータはAuto Loaderパイプラインの チェックポイントの場所 にあるスケーラブルなキーバリューストア(RocksDB)に永続化されます。このキーと値のストアにより、データが1回だけ処理されることが保証されます。
障害が発生した場合、Auto Loaderはチェックポイントの場所に保存されている情報によって中断されたところから再開でき、Delta Lakeへのデータの書き込み時に1回限りの保証を提供し続けます。フォールトトレランスや1回限りのセマンティクスを実現するために、自分で状態を維持または管理する必要はありません。
DLT と Auto Loader を使用した増分インジェスト
Databricks では、増分データ取り込みのために DLT で Auto Loader することをお勧めします。 DLTは Apache Spark 構造化ストリーミングの機能を拡張し、数行の宣言型 Python または SQL を記述するだけで、本番運用品質のデータパイプラインをデプロイできます。
- コンピュートインフラストラクチャのオートスケーリングによるコスト削減
- 期待値によるデータ品質チェック
- 自動 スキーマ進化 処理
- モニタリング via メトリクス in the event log
スキーマやチェックポイントの場所を指定する必要はありません。これらの設定は DLT によってパイプラインの自動的に管理されます。DLT によるデータのロードを参照してください。
Databricks では、Apache Spark 構造化ストリーミングを使用してクラウドオブジェクトストレージからデータを取り込む場合は常に Auto Loader ことをお勧めします。 APIs は Python と Scala で利用できます。
Databricks Auto Loader の使用を開始する
DLT と Auto Loader を使用した増分データ取り込みの設定を開始するには、次の記事を参照してください。
-
チュートリアル: サンプル データを使用して Databricks で初めての ETL ワークロードを実行する (Python、SQL ノートブック)
-
Auto Loaderを使用してクラウドオブジェクトストレージからストリーミング テーブルにデータを読み込む (ノートブック: Python、SQL)
-
Auto Loader を使用してクラウドオブジェクトストレージからストリーミング テーブルにデータを読み込む (Databricks SQL エディター)
例: 一般的な 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 は、ネイティブ クラウド APIs を使用して、ストレージに存在するファイルの一覧を取得します。 さらに、 Auto Loaderのファイル通知モードは、ディレクトリのリストを完全に回避することで、クラウドのコストをさらに削減するのに役立ちます。 Auto Loader は、ストレージにファイル通知サービスを自動的に設定して、ファイルの検出を大幅に安くすることができます。