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

Iceberg REST カタログ

Iceberg REST Catalogは、Apache Icebergによって定義された標準のREST API仕様であり、Icebergテーブルメタデータを管理およびアクセスするための汎用的な方法を提供します。この仕様を実装するあらゆるサービスは、Iceberg REST Catalogとして使用できます。

Iceberg REST Catalogを作成することで、VeloDB Cloud内でIceberg REST仕様に対応したあらゆるCatalogサービスに接続できます。

ヒント: Apache PolarisやAmazon S3 Tablesを使用している場合は、より対象を絞った設定オプションを提供する専用のCatalogタイプの使用を推奨します。

前提条件

Iceberg REST Catalogを作成する前に、以下の条件が満たされていることを確認してください:

REST Catalogサービスの準備

  • Iceberg REST Catalogサービスがデプロイされており、VeloDB Cloudからネットワーク経由でアクセス可能であること。
  • REST Catalogで認証が有効になっている場合は、OAuth2認証情報(Client ID、Client Secret)を準備すること。

ストレージの準備

  • REST CatalogがVended Credentialsをサポートしている場合、追加のストレージ認証情報は不要です。
  • Vended Credentialsがサポートされていない場合は、ストレージにアクセスするための認証情報(例:AWS Access Key)を準備してください。

ネットワーク要件

  • VeloDB CloudがREST Catalogサービスエンドポイントにアクセス可能であること。
  • VeloDB Cloudがデータストレージ(例:S3)にアクセス可能であること。

SaaSモードのVeloDB Cloudの場合:

  • Iceberg RESTサービスにアクセスするには、VeloDBがあなたのVPCにアクセスすることを許可する必要がある場合があります。Grant VeloDB Access to Your VPCを参照してください。
  • Warehouseと同じRegionにあるS3 Bucketのみアクセス可能です。

BYOCモードのVeloDB Cloudの場合:

  • Iceberg RESTサービスとS3 Bucketにアクセスするには、デプロイ時のネットワークポリシーを参照する必要があります。Create VPC Network Resourcesを参照してください。

Catalogの作成

以下の手順に従って、VeloDB CloudでIceberg REST Catalogを作成します。

ステップ1:作成ページに移動

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

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

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

irc-1

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

ステップ3:Metastoreの設定

Metastoreセクションで、REST CatalogサービスのCONNECTION情報を設定します。

irc-2

接続設定

フィールド必須説明
URIREST CatalogサービスのAPIエンドポイントアドレス。Iceberg REST APIのエントリURLです。
WarehouseIcebergテーブルのデータウェアハウス識別子。形式はREST Catalogの実装に依存し、ストレージパス(例:s3://bucket/warehouse)やCatalog名が使用できます。

Auth Type

REST Catalogサービスの要件に基づいて、適切な認証方法を選択してください。

None

REST Catalogサービスが認証を必要としない場合は、Noneを選択してください。

irc-3

認証が無効になっているREST Catalogサービスに適しています。

OAuth2

REST Catalogサービスが身元認証にOAuth2を使用している場合は、OAuth2を選択してください。

irc-4

フィールド必須説明
Client IDOAuth2 Client ID。REST Catalogサービスによって提供されます。
Client SecretOAuth2 Client Secret。Client IDとペアで認証に使用されます。
ScopeOAuth2権限スコープ。認証情報でアクセス可能なリソースの範囲を定義します。一般的な値はPRINCIPAL_ROLE:ALLです。
Server URIOAuth2 Tokenエンドポイントアドレス。アクセストークンを取得するために使用されるURL。空白のままにすると、REST CatalogのデフォルトOAuthエンドポイントが使用されます。

ステップ4:ストレージアクセスの設定

Storageセクションで、データファイルへのアクセス方法を設定します。

Vended Credentials(推奨)

Enable Vended Credentialsスイッチは、REST Catalogによって発行される一時的な認証情報を使用してストレージにアクセスするかどうかを制御します。

irc-5

Enable Vended Credentials

  • REST Catalogが各リクエストに対して動的に一時的なストレージアクセス認証情報を発行します。
  • VeloDB Cloudで長期間のストレージ認証情報を設定する必要はありません。
  • 認証情報は自動的にローテーションされ、より高いセキュリティを実現します。

適用シナリオ

  • REST CatalogサービスがCredential Vendingをサポートし、設定済みである場合。
  • ストレージアクセス権限を集中管理したい場合。
  • より高いセキュリティを追求する場合。

注意: すべてのREST Catalogの実装がVended Credentialsをサポートしているわけではありません。REST Catalogサービスがこの機能をサポートしているかどうかを確認してください。

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

Enable Vended Credentialsスイッチをオフにした後、対応するS3 Bucketへのアクセス権限を持つ認証情報を手動で設定する必要があります。

権限ポリシーリファレンス:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}

irc-6

フィールド必須説明
Regionストレージバケットが配置されているリージョン、例:us-east-1
Authentication認証方法、Access Keyを選択してください。
AKAWS Access Key ID。
SKAWS Secret Access Key。

適用可能なシナリオ:

  • REST CatalogはVended Credentialsをサポートしていません。
  • 特定のストレージアクセス認証情報が必要です。

ステップ5:詳細設定(オプション)

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

irc-7

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

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

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

ステップ6:作成の確認

  • すべての設定情報が正しいかどうかを確認してください。
  • 確認ボタンをクリックしてCatalogを作成してください。
  • 接続検証が完了するまでお待ちください。

作成が成功すると、CatalogリストでIceberg REST Catalogが新しく作成されたことを確認できます。

Catalogの使用

作成が成功した後、このCatalogを使用してSQL Editorでデータをクエリできます。

NamespaceとTableの表示

-- View all Namespaces under the Catalog
SHOW DATABASES FROM iceberg_rest;

-- View all tables under a Namespace
SHOW TABLES FROM iceberg_rest.my_namespace;

-- View table schema
DESCRIBE iceberg_rest.my_namespace.my_table;

クエリデータ

-- Query data
SELECT * FROM iceberg_rest.my_namespace.my_table LIMIT 100;

-- Query with conditions
SELECT column1, column2
FROM iceberg_rest.my_namespace.my_table
WHERE created_at >= '2024-01-01';