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

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: 作成ページに入る

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

Step 2: 基本情報の入力

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

apache-polaris-1

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

Step 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でPrincipalを作成し、認証情報を取得する必要があります。

フィールド必須説明
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>: 指定された役割のみを使用します。

Step 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とは異なるストレージアクセス権限を使用する必要がある。
  • テスト・開発環境。

Step 5: 詳細設定(オプション)

Advanced Settingsをクリックして、より多くの設定オプションを展開します。

apache-polaris-5

詳細設定には通常以下が含まれます:

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

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

Step 6: 作成の確認

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

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