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にアクセスすることを許可する必要がある場合があります。VeloDB Accesses Your VPCを参照してください。
- Warehouseと同じリージョンのS3バケットにのみアクセスできます。
BYOCモードのVeloDB Cloud
- Polaris Server EndpointとS3バケットにアクセスするには、デプロイ時のネットワークポリシーを参照する必要があります。Create VPC Network Resourcesを参照してください。
Catalogの作成
VeloDB CloudでApache Polaris Catalogを作成するには、以下の手順に従ってください。
Step 1: 作成ページに入る
- VeloDB Cloudコンソールにサインインします。
- 左のナビゲーションバーでCatalogsをクリックします。
- Add External Catalogボタンをクリックします。
- Data Lakeカテゴリの下で、Apache Polarisを選択します。
Step 2: 基本情報の入力
Basic Informationセクションで、Catalogの基本識別情報を設定します。

| フィールド | 必須 | 説明 |
|---|---|---|
| Catalog Name | ✓ | Catalogの一意な名前で、SQLクエリでデータソースを識別するために使用されます。 |
| Comment | オプションの説明情報。 |
Step 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でPrincipalを作成し、認証情報を取得する必要があります。
| フィールド | 必須 | 説明 |
|---|---|---|
| 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>: 指定された役割のみを使用します。
Step 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とは異なるストレージアクセス権限を使用する必要がある。
- テスト・開発環境。
Step 5: 詳細設定(オプション)
Advanced Settingsをクリックして、より多くの設定オプションを展開します。

詳細設定には通常以下が含まれます:
- メタデータキャッシュの設定
- 接続タイムアウト設定
ヒント: ほとんどのシナリオでは、デフォルト値で十分です。
Step 6: 作成の確認
- すべての設定情報が正しいかどうかを確認します。
- ConfirmボタンをクリックしてCatalogを作成します。
- 接続検証が完了するまで待ちます。
作成が成功すると、Catalogリストで新しく作成されたApache Polaris Catalogを確認できます。
Catalogの使用
作成が成功した後、SQL EditorでこのCatalogを使用してデータをクエリできます。
データベースとテーブルの表示
-- 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';