AWS 分析サービスを使用したメタデータテーブルのクエリ - Amazon Simple Storage Service

AWS 分析サービスを使用したメタデータテーブルのクエリ

Amazon Athena、Amazon Redshift、Amazon EMR などの AWS 分析サービスを使用して、S3 マネージドメタデータテーブルをクエリできます。

クエリを実行する前に、まずご利用の AWS アカウントおよびリージョンの AWS マネージド S3 テーブルバケットを AWS 分析サービスと統合する必要があります。

Amazon Athena を使用したメタデータテーブルのクエリ

AWS 分析サービスと AWS マネージド S3 テーブルバケットを統合したら、Athena でメタデータテーブルのクエリを開始できます。リクエストで、以下の操作を実行します。

  • カタログを s3tablescatalog/aws-s3 に、データベースを b_general_purpose_bucket_name (一般的にはメタデータテーブルの名前空間) に指定します。

  • メタデータテーブル名前空間名は必ず引用符 (") またはバックティック (`) で囲んでください。囲まない場合、クエリが機能しない可能性があります。

詳細については、「Querying Amazon S3 tables with Athena」を参照してください。

Amazon S3 コンソールから Athena でクエリを実行することもできます。

以下の手順では、Amazon S3 コンソールを使用して Athena クエリエディタにアクセスし、Amazon Athena でテーブルに対してクエリを実行できるようにします。

メタデータテーブルをクエリするには
  1. AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/ を開きます。

  2. 左のナビゲーションペインで、[汎用バケット] を選択します。

  3. [汎用バケット] タブで、クエリするメタデータテーブルのメタデータ設定を含むバケットを選択します。

  4. バケットの詳細ページで、[メタデータ] タブを選択します。

  5. [Athena でテーブルのクエリを実行] を選択し、ジャーナルテーブルまたはインベントリテーブルのサンプルクエリのいずれかを選択します。

  6. Amazon Athena コンソールが開き、サンプル クエリがロードされた状態で Athena クエリエディタが表示されます。必要に応じて、このクエリをユースケースに合わせて変更します。

    クエリエディタで、[カタログ] フィールドに s3tablescatalog/aws-s3 を入力する必要があります。[データベース] フィールドには、テーブルが保存されている名前空間 (b_general-purpose-bucket-name など) を入力する必要があります。

    注記

    [カタログ] および [データベース] フィールドにこれらの値が表示されない場合は、このリージョンで AWS マネージドテーブルバケットを AWS 分析サービスと統合していることを確認してください。詳細については、「Amazon S3 Tables と AWS 分析サービスの統合」を参照してください。

  7. クエリを実行するには、[Run] (実行) を選択します。

    注記
    • Athena でクエリを実行しようとしたときに、クエリを実行するためのアクセス許可が不足しており、プリンシパルは指定されたリソースに対する権限を持っていないという内容のエラーが表示される場合は、テーブルに対する必要な Lake Formation 許可が付与されている必要があります。詳細については、「テーブルまたはデータベースに対する Lake Formation アクセス許可の付与」を参照してください。

      また、メタデータテーブルをクエリするための適切な AWS Identity and Access Management (IAM) アクセス許可があることを確認してください。詳細については、「メタデータテーブルをクエリするためのアクセス許可」を参照してください。

    • クエリを実行しようとしたときに、Iceberg はリクエストされたリソースにアクセスできないという内容のエラーが表示される場合は、AWS Lake Formation コンソールに移動し、作成したテーブルバケットカタログとデータベース (名前空間) に対するアクセス許可が自分に付与されていることを確認してください。これらのアクセス許可を付与するときは、テーブルを指定しないでください。詳細については、「テーブルまたはデータベースに対する Lake Formation アクセス許可の付与」を参照してください。

Amazon Redshift を使用したメタデータテーブルのクエリ

AWS 分析サービスと AWS マネージド S3 テーブルバケットを統合した後、以下を行います。

  • メタデータテーブル名前空間 (一般的には b_general_purpose_bucket_name) へのリソースリンクを作成します

  • メタデータテーブル名前空間名は必ず引用符 (") またはバックティック (`) で囲んでください。囲まない場合、クエリが機能しない可能性があります。

これが完了すると、Amazon Redshift コンソールでメタデータテーブルのクエリを開始できます。詳細については、「Accessing Amazon S3 tables with Amazon Redshift」を参照してください。

Amazon EMR を使用したメタデータテーブルのクエリ

Amazon EMR を使用してメタデータテーブルをクエリするには、Apache Iceberg 用に設定された Amazon EMR クラスターを作成し、Apache Spark を使用してメタデータテーブルに接続します。これを設定するには、AWS マネージド S3 テーブルバケットを AWS 分析サービスと統合するか、オープンソースの Iceberg クライアントカタログ用 Amazon S3 Tables Catalog を使用します。

注記

Amazon EMR または他のサードパーティーエンジンで Apache Spark を使用してメタデータテーブルをクエリする場合は、Amazon S3 Tables Iceberg REST エンドポイントを使用することをお勧めします。このエンドポイントを使用しないと、クエリが正常に実行されない可能性があります。詳細については、「Amazon S3 Tables Iceberg REST エンドポイントを使用したテーブルへのアクセス」を参照してください。

詳細については、「Accessing Amazon S3 tables with Amazon EMR」を参照してください。