Databricks Unity Catalogとの統合
企業が Lakehouse アーキテクチャの下で増大するデータ資産をますます管理するようになると、クロスプラットフォーム、高性能、かつガバナンスされたデータアクセス機能への需要がより緊急になります。次世代リアルタイム分析データベースである Apache Doris は、Databricks Unity Catalog との深い統合を実現し、企業が統一されたガバナンスフレームワークの下で Databricks によって管理されるデータレイクに直接アクセスし効率的にクエリを実行できるようにし、シームレスなデータ接続を実現しました。
このドキュメントを通じて、以下について深く理解できます:
-
Databricks 環境セットアップ:Databricks で External Locations、Catalogs、および Iceberg テーブルを作成する方法、および関連する権限設定
-
Doris の Unity Catalog への接続:Doris を Databricks Unity Catalog に接続し、Iceberg テーブルにアクセスする方法
注意:この機能には Doris バージョン 3.1.3 以上が必要です。
Databricks 環境セットアップ
External Location の作成
Unity Catalog では、External Location はクラウドオブジェクトストレージのパスを Storage Credentials と関連付けるセキュアオブジェクトです。External Locations は外部アクセスをサポートし、Unity Catalog は Credential Vending 機能を通じて外部システムに短期間の認証情報を発行し、外部システムがこれらのパスにアクセスできるようにします。

このドキュメントでは AWS Quickstart を使用して AWS S3 で External Location を作成します。

作成後、External Catalog とその対応する Credential を確認できます:

Catalog の作成
インターフェースで Create Catalog オプションをクリックします。

Catalog 名を入力します。Use default storage のチェックを外し、先ほど作成した External Location を選択します。

External Use Schema 権限の有効化
新しく作成した Catalog → Permissions → Grant をクリックします:

All account users を選択し、EXTERNAL USE SCHEMA オプションにチェックを入れます。

Iceberg テーブルの作成とデータの挿入
Databricks SQL Editor で以下の SQL を実行し、Iceberg テーブルを作成してデータを挿入します:
CREATE TABLE `my-unity-catalog`.default.iceberg_table (
id int,
name string
) USING iceberg;
INSERT INTO `my-unity-catalog`.default.iceberg_table VALUES(1, "jack");
アクセストークンの取得
右上角のユーザーアバターをクリックし、Settingsページに移動して、User → Developerの下にあるAccess tokensを選択します。DorisをUnity Catalogに接続する際の後続の使用のために新しいTokenを作成します。Tokenはdapi4f...の形式の文字列です。
DorisのUnity Catalogへの接続
カタログの作成
-- Use oauth2 credential and vended credentials
CREATE CATALOG dbx_unity_catalog PROPERTIES (
"uri" = "https://dbc-xx.cloud.databricks.com:443/api/2.1/unity-catalog/iceberg-rest/",
"type" = "iceberg",
"warehouse" = "my-unity-catalog",
"iceberg.catalog.type" = "rest",
"iceberg.rest.security.type" = "oauth2",
"iceberg.rest.oauth2.credential" = "clientid:clientsecret",
"iceberg.rest.oauth2.server-uri" = "https://dbc-xx.cloud.databricks.com:443/oidc/v1/token",
"iceberg.rest.oauth2.scope" = "all-apis",
"iceberg.rest.vended-credentials-enabled" = "true"
);
-- Use PAT and vended credentials
CREATE CATALOG dbx_unity_catalog PROPERTIES (
"uri" = "https://<dbc-account>.cloud.databricks.com/api/2.1/unity-catalog/iceberg-rest/",
"type" = "iceberg",
"warehouse" = "my-unity-catalog",
"iceberg.catalog.type" = "rest",
"iceberg.rest.security.type" = "oauth2",
"iceberg.rest.oauth2.token" = "<token>",
"iceberg.rest.vended-credentials-enabled" = "true"
);
-- Use oauth2 credential and static ak/sk for accessing aws s3
CREATE CATALOG dbx_unity_catalog PROPERTIES (
"uri" = "https://dbc-xx.cloud.databricks.com:443/api/2.1/unity-catalog/iceberg-rest/",
"type" = "iceberg",
"warehouse" = "my-unity-catalog",
"iceberg.catalog.type" = "rest",
"iceberg.rest.security.type" = "oauth2",
"iceberg.rest.oauth2.credential" = "clientid:clientsecret",
"iceberg.rest.oauth2.server-uri" = "https://dbc-xx.cloud.databricks.com:443/oidc/v1/token",
"iceberg.rest.oauth2.scope" = "all-apis",
"s3.endpoint" = "https://s3.<region>.amazonaws.com",
"s3.access_key" = "<ak>",
"s3.secret_key" = "<sk>",
"s3.region" = "<region>"
);
Catalogへのアクセス
作成後、Unity Catalogに保存されたIcebergテーブルにアクセスできるようになります:
mysql> USE dbx_unity_catalog.`default`;
Database changed
mysql> SELECT * FROM iceberg_table;
+------+------+
| id | name |
+------+------+
| 1 | jack |
+------+------+
1 row in set (3.32 sec)
Iceberg テーブルの管理
Unity Catalog 内の Iceberg テーブルを Doris を通じて直接作成、管理、書き込みすることもできます:
-- Write to existing table in Unity Catalog
INSERT INTO iceberg_table VALUES(2, "mary");
-- Create a partitioned table
CREATE TABLE partition_table (
`ts` DATETIME COMMENT 'ts',
`col1` BOOLEAN COMMENT 'col1',
`pt1` STRING COMMENT 'pt1',
`pt2` STRING COMMENT 'pt2'
)
PARTITION BY LIST (day(ts), pt1, pt2) ();
-- Insert data
INSERT INTO partition_table VALUES("2025-11-12", true, "foo", "bar");
-- View table partition information
SELECT * FROM partition_table$partitions\G
*************************** 1. row ***************************
partition: {"ts_day":"2025-11-12", "pt1":"foo", "pt2":"bar"}
spec_id: 0
record_count: 1
file_count: 1
total_data_file_size_in_bytes: 2552
position_delete_record_count: 0
position_delete_file_count: 0
equality_delete_record_count: 0
equality_delete_file_count: 0
last_updated_at: 2025-11-18 15:20:45.964000
last_updated_snapshot_id: 9024874735105617773
まとめ
Databricks Unity Catalogとの深い統合を通じて、Apache Dorisは企業が統一されたガバナンスフレームワークの下で、より高いパフォーマンスとより低いコストでデータレイク内の中核資産にアクセスし分析することを可能にします。この機能は、Lakehouseアーキテクチャの全体的な一貫性を向上させるだけでなく、リアルタイム分析、インタラクティブクエリ、およびAIシナリオに新しい可能性をもたらします。データチーム、分析エンジニア、プラットフォームアーキテクトのいずれであっても、既存のデータレイク基盤の上により機敏で知的なデータアプリケーションを構築するためにDorisを活用できます。