メインコンテンツまでスキップ

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: 作成ページへの移動

  1. VeloDB Cloudコンソールにサインインします。
  2. 左側のナビゲーションバーでCatalogsをクリックします。
  3. Add External Catalogボタンをクリックします。
  4. Data Lakeカテゴリの下でApache Polarisを選択します。

ステップ2: 基本情報の入力

Basic Informationセクションで、Catalogの基本識別情報を設定します。

apache-polaris-1

フィールド必須説明
Catalog NameCatalogの一意の名前で、SQLクエリでデータソースを識別するために使用されます。
Commentオプションの説明情報。

ステップ3: Metastoreの設定

Metastoreセクションで、Apache Polarisサービスへの接続に必要な情報を設定します。

apache-polaris-2

接続設定

フィールド必須説明
WarehousePolarisのCatalog名。これはPolarisサービスで作成したCatalogで、VeloDB Cloudはこの名前を通じて対応するメタデータにアクセスします。
Polaris Server EndpointPolaris REST APIのエンドポイントアドレス、形式はhttp(s)://<polaris-host>:<port>/api/catalog

OAuth2認証設定

PolarisはOAuth2 Client Credentialsフローを認証に使用します。Polarisでプリンシパルを作成し、認証情報を取得する必要があります。

フィールド必須説明
Client IDOAuth2 Client ID、PolarisでPrincipalを作成時に生成される識別子。
Client SecretOAuth2 Client Secret、Client IDと対になって認証に使用されます。
ScopeOAuth2権限スコープ、この認証情報がアクセスできるリソースの範囲を定義します。
Server URIOAuth2 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を有効にする:

apache-polaris-3

  • Polarisがリクエストごとに動的に一時ストレージアクセス認証情報を発行します。
  • VeloDB Cloudで長期間のストレージ認証情報を設定する必要がありません。
  • 認証情報が自動的にローテーションされ、セキュリティが向上します。
  • 前提条件: Polarisサーバー側でStorage integrationが正しく設定されていること。

適用シナリオ:

  • PolarisでStorage Integrationが設定されている場合。
  • ストレージアクセス権限を一元管理したい場合。
  • より高いセキュリティを求める場合。

ストレージ認証情報の手動設定

Vended Credentialsを無効にする:

S3アクセス権限を持つ認証情報を手動で設定する必要があります。

apache-polaris-4

フィールド必須説明
Regionストレージバケットが所在するリージョン、例:us-east-1
Authentication認証方法、現在はAccess Keyをサポート。
AKAWS Access Key ID。
SKAWS Secret Access Key。

適用シナリオ:

  • PolarisでVended Credentialsが設定されていない場合。
  • Polarisとは異なるストレージアクセス権限を使用する必要がある場合。
  • テストおよび開発環境。

ステップ5: 高度な設定(オプション)

Advanced Settingsをクリックして、さらなる設定オプションを展開します。

apache-polaris-5

高度な設定には通常以下が含まれます:

  • メタデータキャッシュ設定
  • 接続タイムアウト設定

ヒント: ほとんどのシナリオでは、デフォルト値で十分です。

ステップ6: 作成の確認

  1. すべての設定情報が正しいかを確認します。
  2. ConfirmボタンをクリックしてCatalogを作成します。
  3. 接続検証の完了を待ちます。

作成に成功すると、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';