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

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

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

ステップ2:基本情報を入力する

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

hive-metastore-1

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

ステップ3:Metastoreを設定する

Metastoreセクションで、Hive Metastoreの接続情報を設定します。

hive-metastore-2

テーブル形式

現在、VeloDB CloudはHive Metastore経由でIcebergテーブル形式のみをサポートしています。

接続設定

フィールド必須説明
WarehouseVeloDBがIcebergデータベースを作成する際のデフォルトのデータファイル保存場所。S3とHDFSをサポートします。注意:S3 BucketはHMSサービスで設定されたAWS Endpointと同じリージョンにある必要があります。
Hive Metastore URIHive Metastore ServiceのThrift接続アドレス。

ステップ4:ストレージアクセスを設定する

Storageセクションで、データファイルへのアクセス方法を設定します。データ保存場所に基づいてS3またはEMR HDFSを選択します。

ストレージタイプ:S3

データがAmazon S3に保存されている場合はS3を選択します。

hive-metastore-3

フィールド必須説明
RegionS3バケットが存在するAWSリージョン。注意:HMSサービスで設定されたAWS Endpointと同じリージョンである必要があります。
認証方法1:Access Key

AWS IAMユーザーのアクセスキーを使用して認証します。

フィールド必須説明
AKAWS Access Key ID
SKAWS Secret Access Key
認証方法2:Cross-account IAM

クロスアカウントIAMロールを使用して認証します。これはより安全で、本番環境での使用が推奨されます。

hive-metastore-4

フィールド必須説明
Cross-Account Role ARNAWSアカウントで作成されたIAMロールのARN。形式:arn:aws:iam::<your-account-id>:role/<role-name>

設定手順

Authorization Guidelines Helpリンクをクリックして、詳細な設定手順を確認してください。

ストレージタイプ:EMR HDFS

データがAWS EMRクラスターのHDFSに保存されている場合はEMR HDFSを選択します。

hive-metastore-5

フィールド必須説明
fs.defaultFSHDFSのNameNodeアドレス。形式:hdfs://<namenode-host>:<port>、デフォルトポートは8020。

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

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

hive-metastore-6

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

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

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

ステップ6:作成を確認する

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

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