Pro3LabPro3Lab

株式会社Pro3Labが運営する技術記事メディアです。

Pro3LabのHPはこちら外部リンクアイコンお問い合わせ
user icon

エンジニア向け

S3に保存した最新のCSVデータをAthenaとGlueを連携してSQLで取得する

投稿日:2024年02月17日

更新日:2024年02月23日

S3に保存した最新のCSVデータをAthenaとGlueを連携してSQLで取得するのアイキャッチ

目次

今回やったこと構成図

Athenaとは

  • Amazon Athenaは、標準的なSQLを使用してS3のデータを直接分析することができるサーバレスで従量課金のクエリサービス(GCPのBigQueryと似た感じ)
  • AthenaではS3に保存したCSVデータを紐付けて、Athena上にデータベース・テーブルを作成すれば、そこにSQLを実行してデータを参照・抽出できる
  • S3上のデータにはCSVファイルやJSONファイル、parquet形式のデータといった「整形済み」のデータであることが前提
  • スクショのようにデータソースからテーブルを作成を選択すると、データベースとテーブルをセットで作成でき、実際にS3に保存されている CSVデータなどのカラムに合わせて手動でデータベースと、テーブルを作成できる。(今回は手動で作成せずにGlueのクローラでスキャンして生成する)

Glueとは

https://aws.amazon.com/jp/glue/

https://www.fenet.jp/aws/column/aws-beginner/307/

  • AWS Glue の機能概要は以下
    • データの検出と整理
    • 分析用データの変換、準備、クリーニング
    • データパイプラインの構築とモニタリング

今回触れる部分は、主に

「データの検出と整理」

  • 簡単にいうと、S3に入っている構造化データ(今回はCSVデータ)をクローラーでスクリーニングして自動的にスキーマ情報を推測し、AWS Glue Data Catalog のスキーマ情報に統合(Athenaのデータベースにテーブルを自動作成)
  • 自動作成されたテーブルをAthenaでSQLクエリでデータ取得

AWS Glue とAthenaの連携

https://dev.classmethod.jp/articles/athena-table-datacatalog-etc-summary/

  • Glueのクローラーを実行して指定したS3バケット内のCSVデータをスキャンして、Athena上に作成しているDatabase内に、Athenaでクエリを叩ける形に正規化したテーブルを作成させる
    • クローラーを実行すればクローラーを紐付けたデータベース内にテーブルを自動で作成してくれる
    • クローラーはS3バケットのデータの構造に変更があれば、データのスキーマ情報を自動で変更したりしてくれる
    • クローラは定期実行しても良いし、都度手動でコンソールから実行するでも良い
  • S3にあるCSVデータをAthenaでSQLクエリを叩いてデータを参照・抽出できるようにする

AWS Glueで表示されるデータベースやテーブルはAthenaで作ったものと同じ

厳密にいうと、AWS Glueデータカタログで作ったものは連動する(デフォルトでAWS GlueデータカタログがAWSアカウント毎に用意されているので、デフォルトで勝手に連動している)

  • AWS Glue上

  • Athena上

AthenaからSQLを実行できるようにする

Glueでクローラーを作成

  • data source の追加
    • CSVデータが格納されているS3バケットを選択

  • Glue上からAthenaにDatabase/tableを追加

  • 今回はクローラーを回すタイミングについて必要なときに手動実行する設定にする
    • S3のデータ構造に変更あれば都度実行する

クローラーの実行

  • クローラー実行時の料金体系は以下。

https://aws.amazon.com/jp/glue/pricing/

最小課金単位の10分で、

10(分) / 60 × 1(DPU) × 0.44ドル = 0.073ドル程度

  • 実行
  • 完了

Athenaでクエリ実行

  • databaseを指定して実行
SELECT * FROM データベース名;

記事をシェアする

採用担当者用訴求バナー

関連記事

S3に保存した最新のCSVデータをAthenaとGlueを連携してSQLで取得する
user icon

エンジニア向け

2024年02月23日

サイト内検索

おすすめ記事

RubyWorldConference2022登壇資料のアイキャッチ画像
RubyWorldConference2022登壇資料
プライバシーポリシー運営者情報

© 2024 Pro3Lab All Rights Reserved.