Apache Polaris
Apache Polarisは、Iceberg REST Catalog仕様に準拠したオープンソースのカタログサービスです。Apache Polaris Catalogを作成することで、VeloDB CloudでPolarisが管理するIcebergテーブルをクエリでき、複数のコンピュートエンジン間でのデータ共有が可能になります。
PolarisはOAuth2認証メカニズムをサポートし、Vended Credentials機能を通じてクライアントに一時的なストレージアクセス認証情報を安全に発行できます。
前提条件
Apache Polaris Catalogを作成する前に、以下の条件が満たされていることを確認してください:
Polaris側の準備
- Apache Polarisサービスがデプロイされ、VeloDB Cloudからアクセス可能であること。
- PolarisでCatalogとNamespaceが作成されていること。
- 認証用のPrincipal(Client IDとClient Secretを含む)が作成されていること。
- Principalに適切なロールと権限が割り当てられていること。
ストレージ側の準備
- データファイルがクラウドオブジェクトストレージ(例:Amazon S3)に保存されていること。
- Vended Credentialsを使用しない場合、読み書き権限を持つストレージアクセス認証情報を準備しておく必要があること。
ネットワーク要件
- VeloDB CloudがPolaris Server Endpointにアクセスできること。
- VeloDB Cloudがデータストレージ(例:S3)にアクセスできること。
SaaSモードのVeloDB Cloudの場合
- Polaris Server Endpointへのアクセスには、VeloDBがあなたのVPCにアクセスすることを許可する必要がある場合があります。Grant VeloDB Access to Your VPCを参照してください。
- Warehouseと同じリージョンのS3バケットのみアクセス可能です。
BYOCモードのVeloDB Cloudの場合
- Polaris Server EndpointとS3バケットへのアクセスには、デプロイ時のネットワークポリシーを参照する必要があります。Create VPC Network Resourcesを参照してください。
Catalogの作成
以下の手順に従って、VeloDB CloudでApache Polaris Catalogを作成します。
ステップ1: 作成ページへの移動
- VeloDB Cloudコンソールにサインインします。
- 左側のナビゲーションバーでCatalogsをクリックします。
- Add External Catalogボタンをクリックします。
- Data Lakeカテゴリの下でApache Polarisを選択します。
ステップ2: 基本情報の入力
Basic Informationセクションで、Catalogの基本識別情報を設定します。

| フィールド | 必須 | 説明 |
|---|---|---|
| Catalog Name | ✓ | Catalogの一意の名前で、SQLクエリでデータソースを識別するために使用されます。 |
| Comment | オプションの説明情報。 |
ステップ3: Metastoreの設定
Metastoreセクションで、Apache Polarisサービスへの接続に必要な情報を設定します。

接続設定
| フィールド | 必須 | 説明 |
|---|---|---|
| Warehouse | ✓ | PolarisのCatalog名。これはPolarisサービスで作成したCatalogで、VeloDB Cloudはこの名前を通じて対応するメタデータにアクセスします。 |
| Polaris Server Endpoint | ✓ | Polaris REST APIのエンドポイントアドレス、形式はhttp(s)://<polaris-host>:<port>/api/catalog。 |
OAuth2認証設定
PolarisはOAuth2 Client Credentialsフローを認証に使用します。Polarisでプリンシパルを作成し、認証情報を取得する必要があります。
| フィールド | 必須 | 説明 |
|---|---|---|
| Client ID | ✓ | OAuth2 Client ID、PolarisでPrincipalを作成時に生成される識別子。 |
| Client Secret | ✓ | OAuth2 Client Secret、Client IDと対になって認証に使用されます。 |
| Scope | ✓ | OAuth2権限スコープ、この認証情報がアクセスできるリソースの範囲を定義します。 |
| Server URI | OAuth2 Tokenエンドポイントアドレス、アクセストークンを取得するために使用されます。 |
Scopeについて:
PRINCIPAL_ROLE:ALL: Principalに割り当てられたすべてのロールを使用。PRINCIPAL_ROLE:<role-name>: 指定されたロールのみを使用。
ステップ4: ストレージアクセスの設定
Storageセクションで、基盤となるデータファイルにアクセスするための認証情報を設定します。
Polarisが管理するIcebergテーブルデータは、クラウドオブジェクトストレージ(例:S3)に保存されています。VeloDB Cloudがデータファイルを読み込むためには、ストレージアクセス権限を取得する必要があります。
Vended Credentials(推奨)
Enable Vended Credentialsスイッチは、Polarisが発行する一時認証情報を使用してストレージにアクセスするかどうかを制御します。
Vended Credentialsを有効にする:
- Polarisがリクエストごとに動的に一時ストレージアクセス認証情報を発行します。
- VeloDB Cloudで長期間のストレージ認証情報を設定する必要がありません。
- 認証情報が自動的にローテーションされ、セキュリティが向上します。
- 前提条件: Polarisサーバー側でStorage integrationが正しく設定されていること。
適用シナリオ:
- PolarisでStorage Integrationが設定されている場合。
- ストレージアクセス権限を一元管理したい場合。
- より高いセキュリティを求める場合。
ストレージ認証情報の手動設定
Vended Credentialsを無効にする:
S3アクセス権限を持つ認証情報を手動で設定する必要があります。

| フィールド | 必須 | 説明 |
|---|---|---|
| Region | ✓ | ストレージバケットが所在するリージョン、例:us-east-1。 |
| Authentication | ✓ | 認証方法、現在はAccess Keyをサポート。 |
| AK | ✓ | AWS Access Key ID。 |
| SK | ✓ | AWS Secret Access Key。 |
適用シナリオ:
- PolarisでVended Credentialsが設定されていない場合。
- Polarisとは異なるストレージアクセス権限を使用する必要がある場合。
- テストおよび開発環境。
ステップ5: 高度な設定(オプション)
Advanced Settingsをクリックして、さらなる設定オプションを展開します。

高度な設定には通常以下が含まれます:
- メタデータキャッシュ設定
- 接続タイムアウト設定
ヒント: ほとんどのシナリオでは、デフォルト値で十分です。
ステップ6: 作成の確認
- すべての設定情報が正しいかを確認します。
- ConfirmボタンをクリックしてCatalogを作成します。
- 接続検証の完了を待ちます。
作成に成功すると、Catalogリストで新しく作成されたApache Polaris Catalogを確認できます。
Catalogの使用
作成に成功した後、このCatalogを使用してSQL Editorでデータをクエリできます。
データベースとテーブルの表示
-- View all Namespaces (Databases) under the Catalog
SHOW DATABASES FROM polaris_iceberg;
-- View all tables under a Namespace
SHOW TABLES FROM polaris_iceberg.my_namespace;
-- View table structure
DESCRIBE polaris_iceberg.my_namespace.my_table;
クエリデータ
-- Query data
SELECT * FROM polaris_iceberg.my_namespace.my_table LIMIT 100;
-- Query with conditions
SELECT column1, column2
FROM polaris_iceberg.my_namespace.my_table
WHERE created_at >= '2024-01-01';