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

AWS Glue カタログ

AWS Glueは、AWSが提供する完全マネージド型のサーバーレスメタデータストレージサービスです。AWS Glue Catalogを作成することで、VeloDB CloudでAWS Glueによって管理されたメタデータを持つAmazon S3に保存されたデータレークテーブルを直接クエリできます。

VeloDB CloudはAWS Glue経由で以下の2つのテーブル形式へのアクセスをサポートします:

  • Iceberg: ACIDトランザクション、Schema Evolution、Time Travelをサポートする現代的なオープンテーブル形式。
  • Hive: Hadoopエコシステムとの幅広い互換性を持つ従来のHiveテーブル形式。

前提条件

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

AWS準備

  • AWSアカウントを持っている。
  • Amazon S3バケットを準備する(IcebergまたはHiveテーブルデータの保存用)。
  • アクセス認証情報(Access KeyまたはIAM Role)を準備し、対応するGlueおよびS3権限を設定する。
  • Lake Formation権限を設定する(Lake Formation権限制御が有効になっている場合)。

AWS権限設定

1. IAM権限ポリシー

VeloDBを使用してAWS Glue Catalog経由でS3に保存されたIcebergまたはHiveテーブルにアクセスするには、以下のIAM権限ポリシーを設定する必要があります:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GlueCatalogAccess",
"Effect": "Allow",
"Action": [
"glue:GetDatabase",
"glue:GetDatabases",
"glue:CreateDatabase",
"glue:UpdateDatabase",
"glue:DeleteDatabase",
"glue:GetTable",
"glue:GetTables",
"glue:GetTableVersion",
"glue:GetTableVersions",
"glue:CreateTable",
"glue:UpdateTable",
"glue:DeleteTable",
"glue:GetPartition",
"glue:GetPartitions",
"glue:BatchGetPartition",
"glue:CreatePartition",
"glue:UpdatePartition",
"glue:DeletePartition",
"glue:BatchCreatePartition",
"glue:BatchUpdatePartition",
"glue:BatchDeletePartition",
"glue:GetUserDefinedFunction",
"glue:GetUserDefinedFunctions",
"glue:DeleteUserDefinedFunction"
],
"Resource": [
"arn:aws:glue:<region>:<account-id>:catalog",
"arn:aws:glue:<region>:<account-id>:database/*",
"arn:aws:glue:<region>:<account-id>:table/*/*",
"arn:aws:glue:<region>:<account-id>:userDefinedFunction/*/*"
]
},
{
"Sid": "S3DataAccess",
"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>/*"
]
}
]
}

設定手順

  • <region>を実際のAWSリージョン(例:us-east-1)に置き換えてください。

  • <account-id>をお客様のAWSアカウントIDに置き換えてください。

  • <bucket-name>をIcebergまたはHiveテーブルデータが保存されている実際のS3バケット名に置き換えてください。

  • より細かい権限制御を行う場合は、*を特定のデータベース名およびテーブル名に置き換えてください。

2. Lake Formation権限設定

お客様のAWSアカウントでLake Formation権限制御が有効になっている場合、IAMポリシーの設定だけではGlue Data Catalogにアクセスできず、Lake Formationで対応する権限を付与する必要があります。

有効になっているかどうかの確認方法 Insufficient Lake Formation permission(s)のようなエラーが発生した場合、Lake Formation権限の設定が必要であることを示しています。

  1. AWS Lake Formationコンソールにサインインします。

  2. 左側のナビゲーションバーでData permissionsを選択します。

  3. Grantをクリックします。

  4. 以下のオプションを設定します:

    • PrincipalsIAM users and rolesを選択し、お客様のIAMユーザーまたはロールを選択します。
    • LF-Tags or catalog resourcesNamed Data Catalog resourcesを選択します。
    • Catalog:お客様のCatalogを選択します。
    • Databases:対象のデータベースまたはAll databasesを選択します。
    • Tables:対象のテーブルまたはAll tablesを選択します。
  5. 必要な権限をチェックします:

    • Database permissions:Create database、Alter、Drop、Describe。
    • Table permissions:Select、Insert、Delete、Describe、Alter、Drop。
  6. Grantをクリックします。

ネットワーク要件

  • VeloDB CloudがAWS Glueサービスエンドポイントにアクセスできる必要があります。
  • VeloDB Cloudがデータストレージ(例:S3)にアクセスできる必要があります。

SaaS ModeのVeloDB Cloudについて

  • Warehouseと同じリージョンのGlue EndpointsおよびS3 Bucketsにのみアクセス可能です。

BYOC ModeのVeloDB Cloudについて

  • Glue EndpointおよびS3 Bucketサービスへのアクセスには、デプロイメント時のネットワークポリシーを参照する必要があります。create-vpc-network-resourcesを参照してください。

Catalogの作成

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

ステップ1:作成ページへのアクセス

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

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

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

aws-glue-1

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

ステップ3:Metastoreの設定

Metastoreセクションで、AWS Glueメタデータサービスの接続情報を設定します。

Table Formatの選択

まず、アクセスしたいテーブル形式を選択します。異なるテーブル形式には異なるパラメータが必要です。

Table Format説明
IcebergApache Icebergオープンテーブル形式。
Hive従来のHiveテーブル形式。

Iceberg形式の設定

Iceberg形式を選択した場合、以下のパラメータを設定する必要があります:

aws-glue-2

フィールド必須説明
WarehouseVeloDBがIcebergデータベースを作成する際のデフォルトのデータファイル保存場所。S3 URI形式、例:s3://my-bucket/iceberg-warehouse
AWS Glue RegionAWS Glueサービスが配置されているリージョン。
AWS Glue EndpointAWS Glue APIエンドポイント、例:https://glue.us-east-1.amazonaws.com

Hive形式の設定

Hive形式を選択した場合、以下のパラメータを設定する必要があります:

注意:Hive形式は現在クエリのみをサポートしており、データベースやテーブルの作成はサポートしていません。

aws-glue-3

フィールド必須説明
AWS Glue RegionAWS Glueサービスが配置されているリージョン。
AWS Glue EndpointAWS Glue APIエンドポイント、例:https://glue.us-east-1.amazonaws.com

ステップ4:Metastore認証の設定

Authenticationセクションで、AWS Glueメタデータサービスにアクセスするための認証情報を設定します。

VeloDB Cloudは2つの認証方法をサポートしています:

方法1:Access Key

AWS IAMユーザーのアクセスキーを使用して認証します。これは最もシンプルな設定方法で、迅速なテストおよび開発環境に適しています。

aws-glue-4

フィールド必須説明
AKAWS Access Key ID。
SKAWS Secret Access Key。

セキュリティ推奨事項

  • AWSルートアカウントのアクセスキーは使用しないでください。
  • VeloDB Cloud専用のIAMユーザーを作成してください。
  • 最小権限の原則に従い、必要なGlueおよびS3権限のみを付与してください。
  • アクセスキーを定期的にローテーションしてください。

方法2:Cross-account IAM

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

aws-glue-5

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

設定手順

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

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

Storageセクションで、S3のデータファイルにアクセスするための認証情報を設定します。

VeloDB CloudはS3に保存されている実際のデータファイルにアクセスする必要があります。Metastoreの認証情報を再利用するか、ストレージアクセス認証情報を別途設定することができます。

Metastore認証の再利用

Use the authentication details configured for Metastore accessスイッチをオンにして、Metastoreと同じ認証情報を使用してS3にアクセスします。

aws-glue-6

適用シナリオ

  • GlueメタデータとS3データが同じAWSアカウントにある。
  • 同じIAMユーザー/ロールを使用してGlueとS3にアクセスする。
  • 設定を簡素化したい。

ストレージ認証の個別設定

Use the authentication details configured for Metastore accessスイッチをオフにして、S3アクセス用の認証情報を別途設定します。

aws-glue-7

フィールド必須説明
RegionS3バケットが配置されているリージョン。Glueと同じリージョンである必要があります。
AuthenticationAccess KeyまたはCross-account IAMを選択;設定方法はMetastore認証と同様です。
認証方法1:Access Key

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

aws-glue-8

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

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

aws-glue-9

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

設定手順

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

適用シナリオ

  • GlueとS3データが異なるAWSアカウントにある。
  • メタデータアクセスとデータアクセスで異なる権限制御を使用する必要がある。

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

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

aws-glue-10

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

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

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

ステップ7:作成の確認

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

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

Catalogの使用

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

データベースおよびテーブルの表示

-- View all databases under the Catalog
SHOW DATABASES FROM my_glue_catalog;

-- View all tables under a database
SHOW TABLES FROM my_glue_catalog.my_database;

-- View table schema
DESCRIBE my_glue_catalog.my_database.my_table;

クエリデータ

-- Query data
SELECT * FROM my_glue_catalog.my_database.my_table LIMIT 100;

-- Query with conditions
SELECT column1, column2
FROM my_glue_catalog.my_database.my_table
WHERE date_column >= '2024-01-01';