Upgrade to Pro — share decks privately, control downloads, hide ads and more …

S3 TablesをSQLで使いたかった話

S3 TablesをSQLで使いたかった話

某プライベートなLT大会で登壇したときの資料です。

daiki.handa

January 30, 2025
Tweet

More Decks by daiki.handa

Other Decks in Technology

Transcript

  1. 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
  2. Copyright © 2025 BeeX Inc. All Rights Reserved. 3 最初に…

    2023年に一度Top Engineerに選出いただいたのですが、 2024年は選出ならず…
  3. 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 その他、ブログ発信等諸々…
  4. 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 公共部門ソリューションプロバイダー 取得認定一覧
  5. Copyright © 2025 BeeX Inc. All Rights Reserved. 7 会社紹介

    技術領域で言えばAWSよりERPのSAPのほうが知名度ある会社です
  6. Copyright © 2025 BeeX Inc. All Rights Reserved. 8 コミュニティイベント出展

    今年のJAWS DAYSにも出展予定なので、現地に来られる方お話ししましょう!
  7. Copyright © 2025 BeeX Inc. All Rights Reserved. 10 免責事項

    • 本日お話しする内容は2025/1/29時点の情報を元に作成しております • Preview機能が含まれるため、一般提供時には変更される可能性があります • 個人が調べた内容なので、理解や認識に一部間違いがある可能性があります
  8. 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
  9. Copyright © 2025 BeeX Inc. All Rights Reserved. 15 今日話そうと思っていた構成

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

    AWS Cloud Amazon S3 (データソース) AWS Glue Amazon S3 tables (中間レイヤー) Amazon S3 tables (加工レイヤー) SQL SQL SQLでシンプルにできないか
  11. 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を利用できないか検証しました
  12. 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
  13. 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リソースを 指定してもエラーが発生した
  14. Copyright © 2025 BeeX Inc. All Rights Reserved. 20 S3

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

    Tablesの仕組み 実際に東京リージョンで有効化すると、Lake FormationのData Catalogページに自動的に”s3tablescatalog”が 登録されました。 S3 Tablesに作成したS3テーブル バケットが自動で表示されます
  17. 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
  18. 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
  19. 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
  20. 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”
  21. 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にデータの投入ができない
  22. 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と同じく現在のツール の仕様の問題でデプロイができなかった
  23. 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連携は 現時点では実現不可
  24. Copyright © 2025 BeeX Inc. All Rights Reserved. 30 dbtがS3

    Tablesをサポートしたら データ連携が楽になる予感がします
  25. Copyright © 2025 BeeX Inc. All Rights Reserved. 31 おわりに

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