ビューへの外部アクセス
備考
ベータ版
Iceberg REST カタログを介したビューへの外部アクセスは、 ベータ版です。Unity REST APIを介したビューへのアクセスは一般的に利用可能です。
外部エンジンは、次の APIs を使用して Unity Catalog ビューをクエリーできます。
- Unity REST API Delta Lake テーブル上のビュー用。
- Iceberg 互換テーブル上のビューへの Iceberg REST カタログ。
外部エンジンはビューのSQLをランし、基になるテーブルを読み取ります。リーダーは、ビューおよび参照されるすべてのビューまたはテーブルにアクセスできる必要があります。
要件
- メタストアの 外部データ アクセス を有効にします。「Unity Catalog への外部データ アクセスを有効にする」を参照してください。
- 親カタログとスキーマに
USE CATALOGとUSE SCHEMAを付与し、ビューと参照されるすべてのビューまたはテーブルにSELECTを付与し、それらのテーブルを含むスキーマにEXTERNAL USE SCHEMAを付与します。 - Databricks個人アクセストークンまたはOAuthトークンで認証します。
- 外部エンジンと互換性のあるビューSQLを使用します。
Apache Spark からのビューのクエリー
Sparkの例の最小バージョン:
- Apache Spark 4.0.
- Deltaビューの場合:Unity Catalog Sparkコネクタ 0.6.0 および Delta Lake 4.3.0。
- Iceberg ビューの場合: Apache Iceberg 1.10.0。
ビューによって参照されるカタログを含め、Unity Catalog カタログ名を Spark カタログ名として使用します。
Deltaテーブル上のビュー
以下の例では、AWS上でUnity REST APIを使用しています。以下のように置き換えてください。
<catalog>ビューを含むUnity Catalogのカタログ。<workspace-hostname>Databricksワークスペースのホスト名。<token>アクセストークン。
Properties
spark.jars.packages io.unitycatalog:unitycatalog-spark_4.0_2.13:0.6.0,io.delta:delta-spark_4.0_2.13:4.3.0,org.apache.hadoop:hadoop-aws:3.4.1
spark.sql.extensions io.delta.sql.DeltaSparkSessionExtension
spark.sql.catalog.spark_catalog org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.sql.catalog.<catalog> io.unitycatalog.spark.UCSingleCatalog
spark.sql.catalog.<catalog>.uri https://<workspace-hostname>
spark.sql.catalog.<catalog>.token <token>
spark.sql.defaultCatalog <catalog>
spark.hadoop.fs.s3.impl org.apache.hadoop.fs.s3a.S3AFileSystem
spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystem
ビューをクエリーするには、<catalog>、<schema>、および<view>をカタログ、スキーマ、およびビュー名に置き換え、Sparkで次のSQLを実行します。
SQL
SELECT * FROM <catalog>.<schema>.<view>;
Iceberg テーブル上のビュー
以下の例では、AWS上でIceberg RESTカタログを使用しています。以下のように置き換えてください。
<catalog>ビューを含むUnity Catalogのカタログ。<workspace-hostname>Databricksワークスペースのホスト名。<token>アクセストークン。
Properties
spark.jars.packages org.apache.iceberg:iceberg-spark-runtime-4.0_2.13:1.10.0,org.apache.iceberg:iceberg-aws-bundle:1.10.0
spark.sql.extensions org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spark.sql.catalog.<catalog> org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.<catalog>.type rest
spark.sql.catalog.<catalog>.uri https://<workspace-hostname>/api/2.1/unity-catalog/iceberg-rest
spark.sql.catalog.<catalog>.warehouse <catalog>
spark.sql.catalog.<catalog>.token <token>
spark.sql.catalog.<catalog>.io-impl org.apache.iceberg.aws.s3.S3FileIO
spark.sql.catalog.<catalog>.header.X-Iceberg-Access-Delegation vended-credentials
spark.sql.defaultCatalog <catalog>
ビューをクエリーするには、<catalog>、<schema>、および<view>をカタログ、スキーマ、およびビュー名に置き換え、Sparkで次のSQLを実行します。
SQL
SELECT * FROM <catalog>.<schema>.<view>;
制限事項
- 外部コンピュートからビューを作成および変更することはサポートされていません。
- 外部エンジンは、Spark SQL 言語のビュー定義をサポートしている必要があります。ビューを参照するクエリーは、外部エンジンのSQL言語を使用します。
Iceberg RESTカタログアクセスの場合:
- きめ細かなアクセス制御ポリシー、カスタム解像度パス、またはユーザー定義関数を持つビューはサポートされていません。
- 履歴ビューバージョンはサポートされていません。
- Spark はリーダーの SQL 設定を使用します。結果またはエラーは、Databricks Runtime と異なる場合があります。