Unity Catalog で自動ローダーを使用する

自動ローダーを使用すると、Unity Catalog によって構成された外部の場所からデータを安全に取り込むことができます。 Unity カタログを使用してストレージを安全に接続する方法の詳細については、 Unity カタログを使用したクラウド オブジェクト ストレージへの接続に関するページを参照してください。 自動ローダーでは、構造化ストリーミングを利用して増分処理を行います。推奨事項と制限事項については、「構造化ストリーミングで Unity Catalog を使用する」を参照してください。

注意

Databricks Runtime 11.3 LTS 以降では、標準アクセス モードまたは専用アクセス モード (以前の共有およびシングル ユーザー アクセス モード) で自動ローダーを使用できます。

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

Unity カタログの自動ローダー リソースの場所を指定する

Unity Catalog セキュリティ モデルでは、ワークロードで参照されているすべての保存場所が Unity Catalog によって管理されることを前提としています。 Databricks では、チェックポイントとスキーマの展開に関する情報は常に、Unity Catalog によって管理されている保存場所に格納することをお勧めしています。 Unity Catalog では、チェックポイントまたはスキーマの推論および展開のファイルをテーブル ディレクトリの下に入れ子にすることはできません。

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

次の例では、実行中のユーザーが外部の場所に対する READ FILES アクセス許可、ターゲット テーブルに対する所有者特権、および次の構成と許可を持つものとします。

注意

Azure Data Lake Storage は、Unity カタログでサポートされている唯一の Azure ストレージの種類です。

保存先 付与
abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data READ FILES
abfss://dev-bucket@<storage-account>.dfs.core.windows.net READ FILESWRITE FILESCREATE TABLE

自動ローダーを使用して Unity カタログのマネージド テーブルに読み込む

次の例では、自動ローダーを使用して Unity カタログのマネージド テーブルにデータを取り込む方法を示します。

Python

checkpoint_path = "abfss://dev-bucket@<storage-account>.dfs.core.windows.net/_checkpoint/dev_table"

(spark.readStream
  .format("cloudFiles")
  .option("cloudFiles.format", "json")
  .option("cloudFiles.schemaLocation", checkpoint_path)
  .load("abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data")
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .trigger(availableNow=True)
  .toTable("dev_catalog.dev_database.dev_table"))

SQL

CREATE OR REFRESH STREAMING TABLE dev_catalog.dev_database.dev_table
AS SELECT * FROM STREAM read_files(
  'abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data',
  format => 'json'
);

Lakeflow Spark 宣言パイプライン パイプライン内のread_files ステートメントでCREATE STREAMING TABLEを使用すると、チェックポイントとスキーマの場所が自動的に管理されます。