メインコンテンツまでスキップ
バージョン: 4.x

Databricks Unity カタログ との統合

企業がLakehouseアーキテクチャの下で増加するデータ資産をますます管理するようになるにつれて、クロスプラットフォーム、高性能、そしてガバナンスされたデータアクセス機能への需要がより緊急になってきています。次世代のリアルタイム分析データベースであるApache Dorisは、Databricks Unity カタログとの深い統合を実現し、企業が統一されたガバナンスフレームワークの下でDatabricksによって管理されるデータレイクに直接アクセスし、効率的にクエリできるようになり、シームレスなデータ接続を実現しています。

このドキュメントを通じて、以下について深く理解できます:

  • Databricks環境セットアップ:DatabricksでのExternal Location、カタログ、IcebergTableの作成方法と関連する権限設定

  • DorisのUnity Catalogへの接続:DorisをDatabricks Unity Catalogに接続し、IcebergTableにアクセスする方法

注意:この機能にはDorisバージョン3.1.3以降が必要です。

Databricks環境セットアップ

External Locationの作成

Unity Catalogにおいて、External Locationは、クラウドオブジェクトストレージ内のパスをStorage Credentialsと関連付ける安全なオブジェクトです。External Locationは外部アクセスをサポートし、Unity CatalogはCredential Vending機能を通じて外部システムに短期間の認証情報を発行し、外部システムがこれらのパスにアクセスできるようにします。

unity1

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

unity2

作成後、外部カタログとその対応するCredentialを確認できます:

unity3

Catalogの作成

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

unity4

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

unity5

External Use Schema権限の有効化

新しく作成したカタログPermissionsGrantをクリックします:

unity6

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

unity7

IcebergTableの作成とデータの挿入

Databricks SQL Editorで以下のSQLを実行してIcebergTableを作成し、データを挿入します:

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");

Access Tokenの取得

右上のユーザーアバターをクリックし、Settingsページに移動して、UserDeveloperの下にあるAccess tokensを選択します。DorisをUnity Catalogに接続する際の後続の使用のために新しいTokenを作成します。Tokenはdapi4f...の形式の文字列です。

DorisのUnity Catalogへの接続

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に保存されているIcebergTableへのアクセスを開始できます:

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 Tableの管理

Unity カタログ において、Doris を通じて Iceberg Tableの作成、管理、および書き込みを直接行うこともできます:

-- Write to existing table in Unity カタログ
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を活用することができます。