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

ビューへの外部アクセス

備考

ベータ版

Iceberg REST カタログを介したビューへの外部アクセスは、 ベータ版です。Unity REST APIを介したビューへのアクセスは一般的に利用可能です。

外部エンジンは、次の APIs を使用して Unity Catalog ビューをクエリーできます。

外部エンジンはビューの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 と異なる場合があります。