Slide 1

Slide 1 text

Copyright © 2025 BeeX Inc. All Rights Reserved. S3 TablesをSQLで使いたかった話 2025年1月29日 株式会社BeeX 半田大樹

Slide 2

Slide 2 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 2 自己紹介 ・名前 半田 大樹(Handa Daiki) ・所属 株式会社BeeX ・業務歴 2022年~:クラウド全般の技術支援 2019年~:データ分析基盤の開発保守 ・好きなAWSサービス Amazon S3、AWS Step Functions ・趣味 猫様のお世話、クラウド資格取得 ×15 ×10 ×10 X→@handydd18 2024 Japan AWS ALL Certifications Engineer 2023 Japan AWS Top Engineer 2023 Japan AWS ALL Certifications Engineer 2022 APN ALL AWS Certifications Engineer

Slide 3

Slide 3 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 3 最初に… 2023年に一度Top Engineerに選出いただいたのですが、 2024年は選出ならず…

Slide 4

Slide 4 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 4 再選出を目指して 社外(登壇) • 2024/2/15 JAWS-UG東京 2024 ~AWSライトニングトークNight~ • 2024/2/16 【AWS】AWS10分LT会 - vol.3 • 2024/4/25 color is【クラウドLT大会vol.8】フリーテーマ! • 2024/10/12 JAWS FESTA 2024 in 広島 • 2024/12/20 Storage-JAWS #6 社内 • 社内向けAWS実践提案道場開催 感想ブログ→脱初心者!「社内向けAWS実践提案道場」参加感想 - Qiita その他、ブログ発信等諸々…

Slide 5

Slide 5 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 会社紹介

Slide 6

Slide 6 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 6 会社紹介 日本で15社目の「AWS プレミアティア サービスパートナー」 • AWS ソリューションプロバイダープログラム • AWS マネージドサービスプロバイダー(MSP)プログラム • AWS SAPサービスコンピテンシー • AWS 移行コンピテンシープログラム • AWS Well-Architectedパートナープログラム • Amazon EC2 for Windows Serverパートナー • AWS 公共部門パートナー • AWS 公共部門ソリューションプロバイダー 取得認定一覧

Slide 7

Slide 7 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 7 会社紹介 技術領域で言えばAWSよりERPのSAPのほうが知名度ある会社です

Slide 8

Slide 8 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 8 コミュニティイベント出展 今年のJAWS DAYSにも出展予定なので、現地に来られる方お話ししましょう!

Slide 9

Slide 9 text

Copyright © 2025 BeeX Inc. All Rights Reserved. S3 TablesをSQLで使いたかった話

Slide 10

Slide 10 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 10 免責事項 • 本日お話しする内容は2025/1/29時点の情報を元に作成しております • Preview機能が含まれるため、一般提供時には変更される可能性があります • 個人が調べた内容なので、理解や認識に一部間違いがある可能性があります

Slide 11

Slide 11 text

Copyright © 2025 BeeX Inc. All Rights Reserved. S3 TablesをSQLで使いたかった話 をしようと思ってました

Slide 12

Slide 12 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 12 ただ、検証が思った通りにいかなかったので

Slide 13

Slide 13 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 13 検証した内容とかをご紹介したいと思います

Slide 14

Slide 14 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 14 その前に… S3 Tablesの検証した記事やプレビューの分析サービスからの アクセス方法について整理した記事も書いているので良ければご覧ください Speakerdeck:https://speakerdeck.com/handy/20241220-s3-tablesnoshi-ifang-wojian-zheng-sitemita Qiita①(左): https://qiita.com/handy-dd18/items/1e0b251f9dce767f6bcd Qiita②(右): https://qiita.com/handy-dd18/items/8af7f5a9427402d94ed3

Slide 15

Slide 15 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 15 今日話そうと思っていた構成 AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) EMRやGlueのSparkで連携するに は実装や環境構築に手間がかかる

Slide 16

Slide 16 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 16 今日話そうと思っていた構成 AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) SQL SQL SQLでシンプルにできないか

Slide 17

Slide 17 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 17 今日話そうと思っていた構成(想定) AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) dbt tools SQL SQL SQLでデータモデルの構築が可能な dbtを利用できないか検証しました

Slide 18

Slide 18 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 18 今日話そうと思っていた構成(結果) AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) dbt tools SQL SQL dbtからGlue 5.0(※)を利用できることは 確認できたが、ツールの実装上の問題で S3 Tablesにデプロイができなかった ※Glue 5.0でIceberg 1.6.1に対応したため、GlueからS3 Tablesへのデータ投入は可能 https://docs.aws.amazon.com/ja_jp/glue/latest/dg/release-notes.html

Slide 19

Slide 19 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 19 今日話そうと思っていた構成(結果) AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) dbt tools SQL SQL S3にIcebergテーブルを実装する前提の 仕様だったので、S3 Tablesリソースを 指定してもエラーが発生した

Slide 20

Slide 20 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 20 S3 Tablesの仕組み まず大前提として、S3 Tablesは分析サービスとの統合(Preview機能)を行うと、Lake Formationに 連携され、Lake Formation上でカタログ管理・アクセス管理を行うようになります。 ※以下図はSpeakerdeckに記載

Slide 21

Slide 21 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 21 S3 Tablesの仕組み こちらドキュメントに記載がありますが、S3 Tablesで分析サービスとの統合の有効化を行うと、以下の処理 が裏側で行われます。 https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html 1. Lake Formationから全テーブルバケットへアクセスを許可するサービスロール 作成 →サービスロール名:S3TablesRoleForLakeFormation ※各リージョンで有効化する毎に1つのサービスロールが作成される 2. サービスロールを使用して、テーブルバケットをLake Formationに登録 3. 現在のリージョンのAWS Glue Data Catalogにs3tablescatalogを追加

Slide 22

Slide 22 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 22 S3 Tablesの仕組み 実際に東京リージョンで有効化すると、Lake FormationのData Catalogページに自動的に”s3tablescatalog”が 登録されました。 S3 Tablesに作成したS3テーブル バケットが自動で表示されます

Slide 23

Slide 23 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 23 S3 Tablesの仕組み S3 Tables Table Bucket A Namespace A Table A Lake Formation s3tablescatalog Catalog A Database A Table A awsdatacatalog Resource link A Shared Catalog A Table A 共有設定 Database B Table B Catalog B Glue 直接 間接 Redshift Data Firehose EMR Glue s3tablescatalogへの直接アクセス awsdatacatalog経由での間接アクセス Athena QuickSight

Slide 24

Slide 24 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 24 S3 Tablesの仕組み S3 Tables Table Bucket A Namespace A Table A Lake Formation s3tablescatalog Catalog A Database A Table A awsdatacatalog Resource link A Shared Catalog A Table A 共有設定 Database B Table B Catalog B Glue 直接 間接 Redshift Data Firehose EMR Glue s3tablescatalogへの直接アクセス awsdatacatalog経由での間接アクセス 自動で登録 Athena QuickSight

Slide 25

Slide 25 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 25 S3 Tablesの仕組み S3 Tables Table Bucket A Namespace A Table A Lake Formation s3tablescatalog Catalog A Database A Table A awsdatacatalog Resource link A Shared Catalog A Table A 共有設定 Database B Table B Catalog B Glue 直接 間接 Redshift Data Firehose EMR Athena QuickSight Glue s3tablescatalogへの直接アクセス awsdatacatalog経由での間接アクセス 自動で登録 OSSライブラリでアクセス ※s3-tables-catalog-for-iceberg- runtime-0.1.3.jar

Slide 26

Slide 26 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 26 S3 Tablesの仕組み S3 Tables Table Bucket A Namespace A Table A Lake Formation s3tablescatalog Catalog A Database A Table A awsdatacatalog Resource link A Shared Catalog A Table A 共有設定 Database B Table B Catalog B Glue 直接 間接 Redshift Data Firehose EMR Athena QuickSight Glue s3tablescatalogへの直接アクセス awsdatacatalog経由での間接アクセス 自動で登録 OSSライブラリでアクセス ※s3-tables-catalog-for-iceberg- runtime-0.1.3.jar CatalogIdの指定がS3 Tablesとそれ以外で異なる S3 Tables→“123456789123:s3tablescatalog/tablebucket“ S3 Tables以外→”123456789123”

Slide 27

Slide 27 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 27 S3 Tablesの仕組み S3 Tables Table Bucket A Namespace A Table A Lake Formation s3tablescatalog Catalog A Database A Table A awsdatacatalog Resource link A Shared Catalog A Table A 共有設定 Database B Table B Catalog B Glue 直接 間接 Redshift Data Firehose EMR Athena QuickSight Glue s3tablescatalogへの直接アクセス awsdatacatalog経由での間接アクセス 自動で登録 OSSライブラリでアクセス ※s3-tables-catalog-for-iceberg- runtime-0.1.3.jar dbt経由でGlueのインタラクティブセッションを利用してデータを投入し ようとした場合、S3 Tablesのメタデータではなく、AWS Glue Data Catalogのメタデータを確認しにいくロジックになっているため、 dbtで直接S3 Tablesにデータの投入ができない

Slide 28

Slide 28 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 28 今日話そうと思っていた構成 AWS Cloud Amazon S3 (データソース) Amazon Athena Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) dbt tools SQL SQL AthenaからもS3 Tablesへのデータ投入 は可能だが、Glueと同じく現在のツール の仕様の問題でデプロイができなかった

Slide 29

Slide 29 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 29 今日話そうと思っていた構成 AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) dbt tools SQL SQL dbtを利用したSQL連携は 現時点では実現不可

Slide 30

Slide 30 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 30 dbtがS3 Tablesをサポートしたら データ連携が楽になる予感がします

Slide 31

Slide 31 text

Copyright © 2025 BeeX Inc. All Rights Reserved. 31 おわりに 今回のお話はdbt-glueで検証していますので、もし興味ある方いらっしゃれば、 是非dbtに入門されてみてください https://github.com/aws-samples/dbt-glue

Slide 32

Slide 32 text

Copyright © 2025 BeeX Inc. All Rights Reserved. Copyright © 2025 BeeX Inc. All Rights Reserved.