6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

S3+Athena+TROCCOで爆速データ分析基盤立ち上げレシピ

Last updated at Posted at 2024-10-30

データ分析したいけど、DWH(データウェアハウス)を導入するとなると大げさだなぁ、くらいのタイミングでライトに始められるデータ分析基盤を考えてみました。

アーキテクチャ

スクリーンショット 2024-10-29 19.20.52.png

Amazon AthenaはS3上のファイルに直接クエリできて、スキャン量のみのオンデマンド課金なのでランニングコストがかからず、今回の目的に合致していそうです。

本記事ではデータマート作成までを扱います。

データレイク構築

S3へのデータ収集手段として、無料プランのあるTROCCO® を利用します。

TROCCOのデータ転送先として「S3」とは別に「S3 parquet」という選択肢があります。
こちらは、ファイル形式をparquetに変換してくれるだけでなく、裏側でAWS GlueのジョブをキックしAthenaで参照できるカタログを自動生成してくれる便利機能が備わっています。

HTTP APIで取得できるオープンデータを使って、データ収集を試してみましょう。

スクリーンショット 2024-10-29 19.32.43.png

公式ドキュメントに従って転送元/転送先の情報を入力していきます。

転送設定作成フォームのStep2 にて「出力オプション」のタブを選択すると、「データカタログの設定」という項目があります。こちらを有効化することで、Glueカタログジョブを自動実行することが可能になります。

スクリーンショット 2024-10-29 19.55.28.png

データ転送を実行すると、Athena上でテーブルが作成されクエリ可能になります。

スクリーンショット 2024-10-17 20.43.12.png

データマート化

転送元: Athena を指定すると、Athenaに対してクエリした結果を転送先に送ることができます。

スクリーンショット 2024-10-17 20.51.29.png

複数のテーブルを結合するなど、SQLを用いた柔軟なデータ加工が可能です。
クエリ結果は先ほどと同様に、再度S3に配置しGlueカタログ化します。

スクリーンショット 2024-10-17 20.42.47.png

加工後のデータもAthena上でクエリできました。

データパイプライン管理

Lake→Martの2つの処理を直列に配置します。

スクリーンショット 2024-10-29 19.40.27.png

データソースからのデータ取得が完了すると、後続の集計処理が自動で実行されます。
ワークフローにスケジュール設定を追加することで、毎日最新のデータをマートテーブルに反映することができます。

まとめ

S3をベースに、クイックに一定のスケーラビリティを持ったデータ活用環境を立ち上げることができました。
parquetデータ形式は列志向で圧縮効率に優れ、大規模なデータセットにおける分析利用にも対応しやすいフォーマットです。

Icebergテーブルの実データ形式としても採用されているため、今回構築したS3上のデータをIceberg化して別サービスから参照するような形を取れば、スムーズに中〜大規模なアーキテクチャへも移行していけそうですね。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?