Unity Catalog¶
Databricks Unity Catalog を使用して Iceberg または Delta Lake のテーブルを管理している場合、これらのテーブルに外部メタストアとして直接アクセスするように Denodo 組み込み MPP を構成できます。
Delta Lake テーブルの場合の推奨事項: Databricks Unity Catalog を通じて Delta Lake テーブルにアクセスする場合に推奨される方法 は、Databricks 内で UniForm を介した Iceberg の読み込み を有効化する方法です。UniForm は、Iceberg 互換のメタデータレイヤーを使用して Delta Lake テーブルを公開し、Denodo 組み込み MPP の Iceberg カタログでそのテーブルを読み込めるようにする機能です。UniForm の有効化の手順については、UniForm を介した Iceberg の読み込み に関する Databricks の公式ドキュメントを参照してください。
UniForm を介した Iceberg の読み込みを使用する場合の制限事項:
Iceberg の読み込みは、削除ベクトルが有効化されているテーブルでは機能しません。
Iceberg の読み込みが有効化されている Delta テーブルでは、VOID 型はサポートされません。
Iceberg カタログを介した Unity Catalog へのアクセスはすべて 読み取り専用 です。書き込み操作はサポートされません。
Unity Catalog に外部メタストアとして接続するには、Denodo 組み込み MPP の構成内に新しいカタログを定義する必要があります。新しいカタログを定義する際に 推奨される方法 は、 values.yaml ファイルで presto.catalog プロパティを使用する方法です。このアプローチを使用すると、管理とアップグレードが簡素化されます。新しいカタログを構成すると、Denodo 組み込み MPP データソースの [From MPP Catalogs] タブからこのカタログにアクセスできるようになります。
![]()
[From MPP Catalog] での Unity のビューの作成¶
以下に、Unity Catalog に接続するように values.yaml 内で構成された、 unity という名前の Iceberg カタログの例を示します。
catalog:
unity: |-
connector.name=iceberg
iceberg.catalog.type=rest
iceberg.rest.uri=https://adb-xxxxxxxx.azuredatabricks.net/api/2.1/unity-catalog/iceberg-rest
iceberg.rest.auth.type=OAUTH2
iceberg.rest.auth.oauth2.token=YOUR_DATABRICKS_PAT
iceberg.catalog.warehouse=external_catalog
iceberg.hadoop.config.resources=/opt/presto-server/etc/catalog/core-site.xml
hive.config.resources=/opt/presto-server/etc/catalog/core-site.xml
hive.pushdown-filter-enabled=true
hive.parquet-batch-read-optimization-enabled=true
values.yaml を使用する代わりに、組み込み MPP の Helm チャートの presto/conf/catalog/ フォルダ内に別個のプロパティファイルを直接作成することによって、新しいカタログを定義することもできます (例: presto/conf/catalog/unity.properties)。このファイル名 (この例では unity) が、組み込み MPP でのカタログ名になります。
プロパティ¶
プロパティ名 |
説明 |
|---|---|
iceberg.rest.uri |
REST API エンドポイント URI (必須)。例: https://adb-xxxx.azuredatabricks.net/api/2.1/unity-catalog/iceberg |
iceberg.rest.auth.type |
使用する認証タイプ。利用可能な値は NONE または OAUTH2 です (デフォルト: NONE)。OAUTH2 では、資格情報またはトークンのいずれかが必要です。 |
iceberg.rest.auth.oauth2.token |
Databricks のパーソナルアクセストークン (PAT) 。 |
iceberg.catalog.warehouse |
接続先の Unity Catalog の名前。 |
注釈
Unity Catalog は Delta Lake テーブルおよび Iceberg テーブルのメタデータを管理しますが、実際のデータファイルはオブジェクトストレージ (Azure Data Lake Storage Gen2 など) に保存されています。Unity Catalog がアクセスするオブジェクトストレージの場所によっては、そのストレージの資格情報を Denodo 組み込み MPP クラスタに提供しなければならないことがあります。
テーブルが Azure Data Lake Storage Gen2 に保存されていて、 共有キー認証 が必要な場合は、Kubernetes シークレットを次のように作成する必要があります。
さらに、以下を設定して values.yaml で Azure 資格情報を構成する必要もあります。
objectStorage:
azure:
sharedKey:
enabled: true
account: "YOUR_ACCOUNT"
さらに、Hadoop ファイルシステムの実装に必要なプロパティが prestocluster/presto/conf/core-site.xml に追加されていることを確認する必要もあります。
<property>
<name>fs.abfs.impl</name>
<value>org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem</value>
</property>
<property>
<name>fs.abfss.impl</name>
<value>org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem</value>
</property>
サポートされる操作¶
次の表に、Unity Catalog に接続する場合に Denodo 組み込み MPP でサポートされる操作の概要を示します。
操作 |
Delta Lake (*) |
Iceberg (**) |
|---|---|---|
読み込み |
○ |
○ |
作成/挿入 |
× |
○ (Databricks で管理される Iceberg のみ) |
更新 |
× |
○ (Databricks で管理される Iceberg のみ) |
マージ |
× |
× |
削除 |
× |
○ (Databricks で管理される Iceberg のみ) |
(*) Databricks での UniForm を介した Iceberg の読み取り を有効化することにより、Unity Catalog に接続された組み込み MPP で マネージドおよび外部の両方 の Databricks Delta Lake テーブルを読み込むことができます。
(**) Unity Catalog に接続された組み込み MPP では、 マネージドおよび外部の両方 の Databricks Iceberg テーブルを読み込むことができます。
