S3 Tables の Iceberg テーブルを Amazon Redshift でクエリ実行する  #AWSreInvent

S3 Tables の Iceberg テーブルを Amazon Redshift でクエリ実行する #AWSreInvent

Clock Icon2024.12.25

AWS事業本部コンサルティング部の石川です。本日は、S3 Tables の Iceberg テーブルに Amazon Redshift からクエリを実行してみます。クエリを実行するIcebergテーブルは、以前のブログで作成したものを用います。

https://dev.classmethod.jp/articles/amazon-s3-tables-performance-reinvent2024/

Amazon Redshift からクエリを実行する手順

S3 Tables の Iceberg テーブルは、Amazon Redshift から直接クエリを実行できません。RedshiftでS3テーブルとGlueデータカタログを完全に統合するには、S3 Tables の Namespaceから、Lake Formation の Resource link を作成して、データカタログ、バケット名、データベース名(名前空間)を指定します。そして、Resource link と Resource link 内のテーブルに対して権限付与が必要になります。

  • Lake Formation の Resource link を作成
  • Database(Resource link)の権限付与
  • Database(Resource link)内のテーブル
  • Redshift Query Editor V2からクエリを実行

Lake Formation コンソールからDatabase(Resource link)を作成します。

amazon-s3-tables-redshift-reinvent-1

Resource Linkを選択して、Resource Link nameを指定します。後は、デフォルトやプルダウンから設定できます。

amazon-s3-tables-redshift-reinvent-2

Databaseの一覧に作成したResource Linkが表示されます。

amazon-s3-tables-redshift-reinvent-3

Database(Resource link)の権限付与

作成したDatabase(Resource link)に対して権限を付与します。

amazon-s3-tables-redshift-reinvent-4

ここでは、Database(Resource link)に対して、Describeのみを付与します。

amazon-s3-tables-redshift-reinvent-5

Database(Resource link)内のテーブル

次にDatabase(Resource link)内のテーブルに対して権限付与します。

amazon-s3-tables-redshift-reinvent-6

ここでは、Database(Resource link)内のすべてのテーブルに対してテーブル権限のすべてを付与します。

amazon-s3-tables-redshift-reinvent-7

Redshift Query Editor V2からクエリを実行

re:Invent 2024の直前にデータベースのツリー表示もアップデートしています。external databasesの下に先ほど作成したDatabase(Resource link)とその中のテーブルが表示されます。lineorderテーブルの中を表示しています。

amazon-s3-tables-redshift-reinvent-8

また、Amazon Athena からは、普通のデータベースと同様に先ほど作成したDatabase(Resource link)が表示され、クエリを実行することができました。

amazon-s3-tables-redshift-reinvent-9

最後に

S3 Tables の Iceberg テーブルに Amazon Redshift からクエリを実行する過程では、Lake Formation の Resource link の作成、適切な権限の付与、そして Redshift Query Editor V2 からのクエリ実行という重要なステップを踏むことが必要です。

Resource linkは、S3 Tables の Iceberg テーブルを Redshift から直接クエリできるようになるだけでなく、Amazon Athena からも同様にアクセスが可能でした。今回はすべてのテーブルに対して権限付与しましたが、Lake Formation によるテーブルやカラムを指定したきめ細かな権限管理も可能です。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.