メインコンテンツまでスキップ

Unity Catalog での Auto Loader の使用

Auto Loader は、 Unity Catalogで設定された外部ロケーションからデータを安全に取り込むことができます。 Unity Catalog を使用してストレージを安全に接続する方法の詳細については、「 Unity Catalog を使用してクラウド オブジェクト ストレージに接続する」を参照してください。 Auto Loader は、インクリメンタル処理を構造化ストリーミングに依存しています。推奨事項と制限事項については、「Unity Catalog と構造化ストリーミングの使用」を参照してください。

注記

Databricks Runtime 11.3 LTS以降では、Auto Loaderを標準アクセスモードまたは専用アクセスモード(以前は共有アクセスモードとシングルユーザーアクセスモードと呼ばれていました)のいずれでも使用できます。

ディレクトリリストモードはデフォルトでサポートされています。 ファイル通知モードは、専用アクセスモードのコンピュートでのみサポートされています。

Unity CatalogのAuto Loaderリソースの場所を指定する

Unity Catalogのセキュリティモデルは、ワークロードで参照されるすべてのストレージロケーションがUnity Catalogによって管理されることを前提としています。チェックポイントとスキーマ進化の情報を、Unity Catalogにより管理されるストレージロケーションに常に保存することをDatabricksは推奨しています。Unity Catalogでは、テーブルディレクトリの下にチェックポイントファイルやスキーマ推論と進化ファイルをネストすることはできません。

Unity Catalogを使用してクラウドストレージからデータを取り込む

以下の例では、実行ユーザーが外部ロケーションに対してREAD FILES権限を持ち、ターゲットテーブルに対して所有者権限を持ち、以下の構成と権限が付与されていることを前提としています。

ストレージロケーション

権限

gs://autoloader-source/json-data

READ FILES

gs://dev-bucket

READ FILESWRITE FILESCREATE TABLE

Auto Loaderを使用してUnity Catalogにロードするマネージドテーブル

次の例はAuto Loader使用してデータをUnity Catalogマネージドテーブルに取り込む方法を示しています。

Python
checkpoint_path = "gs://dev-bucket/_checkpoint/dev_table"

(spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", checkpoint_path)
.load("gs://autoloader-source/json-data")
.writeStream
.option("checkpointLocation", checkpoint_path)
.trigger(availableNow=True)
.toTable("dev_catalog.dev_database.dev_table"))

GCSの認証は、 GCSパスに設定されたUnity Catalog外部ロケーションを通じて処理されます。 外部ロケーションに対してREAD FILES権限が必要です。Google Cloud Storage (GCS) の外部ロケーションに接続する方法については、こちらをご覧ください。

ファイル通知モードを使用してファイルを迅速に検出するには、サービス資格情報または Google サービス アカウント資格情報を指定します。 Google固有のオプションを参照してください。