Hive Metastore カタログ
Hive Metastore Service (HMS) は Apache Hive のメタデータ管理サービスであり、Hadoop エコシステムで広く使用されており、テーブルスキーマ、パーティション、ストレージ場所などのメタデータを管理します。
Hive Metastore Catalog を作成することで、VeloDB Cloud でセルフホスト型 HMS によって管理される Iceberg テーブルを、Amazon S3 または EMR HDFS に保存されたデータでクエリできます。
前提条件
Hive Metastore Catalog を作成する前に、以下の条件が満たされていることを確認してください:
Hive Metastore の準備
- Hive Metastore Service がデプロイされ、VeloDB Cloud からアクセス可能であること。
- Hive Metastore は Thrift プロトコルを使用し、デフォルトポートは 9083 です。
ストレージの準備
データストレージ場所に基づいて、対応するアクセス認証情報を準備します:
S3 Storage:
- AWS Access Key を準備するか、Cross-account IAM Role を設定します。
- 認証情報がデータが存在する S3 バケットへのアクセス権限を持っていることを確認します。
権限ポリシーリファレンス:
{
"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>/*"
]
}
]
}
EMR HDFS Storage:
- VeloDB CloudがEMRクラスターのすべてのノードにアクセスできることを確認してください。
- HDFSの
fs.defaultFSアドレスを準備してください。
ネットワーク要件
- VeloDB CloudはHive MetastoreのThriftポート(デフォルト9083)にアクセスできる必要があります。
- VeloDB Cloudはデータストレージ(S3またはHDFS)にアクセスできる必要があります。
SaaSモードのVeloDB Cloudの場合:
- HMSサービスとHDFSにアクセスするには、VeloDBがVPCにアクセスすることを許可する必要がある場合があります。velodb-accesses-your-vpcを参照してください。
- Warehouseと同じリージョンのS3 Bucketのみアクセス可能です。
BYOCモードのVeloDB Cloudの場合:
- HMSサービスとデータストレージ(S3またはHDFS)へのアクセスには、デプロイ時のネットワークポリシーを参照する必要があります。create-vpc-network-resourcesを参照してください。
Catalogの作成
以下の手順に従って、VeloDB CloudでHive Metastore Catalogを作成します。
ステップ1:作成ページに入る
- VeloDB Cloudコンソールにサインインします。
- 左側のナビゲーションバーで、Catalogsをクリックします。
- Add External Catalogボタンをクリックします。
- Data Lakeカテゴリの下で、Hive Metastoreを選択します。
ステップ2:基本情報を入力する
Basic Informationセクションで、Catalogの基本識別情報を設定します。

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

テーブル形式
現在、VeloDB CloudはHive Metastore経由でIcebergテーブル形式のみをサポートしています。
接続設定
| フィールド | 必須 | 説明 |
|---|---|---|
| Warehouse | ✓ | VeloDBがIcebergデータベースを作成する際のデフォルトのデータファイル保存場所。S3とHDFSをサポートします。注意:S3 BucketはHMSサービスで設定されたAWS Endpointと同じリージョンにある必要があります。 |
| Hive Metastore URI | ✓ | Hive Metastore ServiceのThrift接続アドレス。 |
ステップ4:ストレージアクセスを設定する
Storageセクションで、データファイルへのアクセス方法を設定します。データ保存場所に基づいてS3またはEMR HDFSを選択します。
ストレージタイプ:S3
データがAmazon S3に保存されている場合はS3を選択します。

| フィールド | 必須 | 説明 |
|---|---|---|
| Region | ✓ | S3バケットが存在するAWSリージョン。注意:HMSサービスで設定されたAWS Endpointと同じリージョンである必要があります。 |
認証方法1:Access Key
AWS IAMユーザーのアクセスキーを使用して認証します。
| フィールド | 必須 | 説明 |
|---|---|---|
| AK | ✓ | AWS Access Key ID |
| SK | ✓ | AWS Secret Access Key |
認証方法2:Cross-account IAM
クロスアカウントIAMロールを使用して認証します。これはより安全で、本番環境での使用が推奨されます。

| フィールド | 必須 | 説明 |
|---|---|---|
| Cross-Account Role ARN | ✓ | AWSアカウントで作成されたIAMロールのARN。形式:arn:aws:iam::<your-account-id>:role/<role-name> |
設定手順:
Authorization Guidelines Helpリンクをクリックして、詳細な設定手順を確認してください。
ストレージタイプ:EMR HDFS
データがAWS EMRクラスターのHDFSに保存されている場合はEMR HDFSを選択します。

| フィールド | 必須 | 説明 |
|---|---|---|
| fs.defaultFS | ✓ | HDFSのNameNodeアドレス。形式:hdfs://<namenode-host>:<port>、デフォルトポートは8020。 |
ステップ5:詳細設定(オプション)
Advanced Settingsをクリックして、より多くの設定オプションを展開します。

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