0
1

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のクエリ効率が変わるのは何となく知っていましたが、保管形式によっても大きく変わってくるんですね。
今回はCSVで吐き出されるファイルをParquetに変換してS3に保管して、効率良くAthenaで分析したいといった要望に対して検証したことをまとめます
Athenaのパフォーマンスとファイル形式については以下サイトをご参考に、、
Amazon Athena のパフォーマンスチューニング Tips トップ 10

アーキテクチャ

ざっくりこんな感じです。
FirehoseでParquetに変換するためにGlueが必要なんですね。(初耳学)

image.png

検証開始

以下手順で作成していきます

  1. Kinesis Data Firehoseの作成
  2. Glue Databeseの作成
  3. Kinesis Data Firehoseの作成続き
  4. Firehose⇒S3のデータ転送テスト
  5. Glue Crawlerの設定
  6. Athenaでクエリを投げてみる

1. Kinesis Data Firehoseの作成

「Kinesisストリームを作成」からパッと作成しちゃいます。

スクリーンショット 2024-05-27 144223.png

「レコードを変換および転換」で「レコード形式の変換を有効にする」にチェックを入れます。
すると、AWS Glueのデータベースとテーブルを選択しろと言われます。。

スクリーンショット 2024-05-27 144306.png

2. Glue Databeseの作成

ここで作成したDatabaseとTableを1.で作成したFirehoseに設定します。

Glue Databaseの作成

「Glue」→「Database」→「Add database」から作成できます。
名前はご自由に~

スクリーンショット 2024-05-27 144405.png

Tableの作成

「Table」から作成できます。フォーマットはデフォルトのモノでOK
保管先にはS3を選択し、各々保管先のS3を指定します。

スクリーンショット 2024-05-27 144501.png
スクリーンショット 2024-05-27 144522.png

一旦Shemaの設定は不要です。
作成完了したらFirehoseに設定しちゃいます。
スクリーンショット 2024-05-27 144542.png

3. Kinesis Data Firehoseの作成続き

Athenaでクエリ投げるところまでを検証するので、S3のプレフィックスも設定しておきます。
(参考:Amazon S3 オブジェクトのカスタムプレフィックス

スクリーンショット 2024-05-27 144713.png

4. Firehose⇒S3のデータ転送テスト

Firehoseにはデモデータをストリームに配置することでテストすることが可能です。
「デモデータの送信を開始」をクリックするとデータがFirehose経由でS3に格納されます。

スクリーンショット 2024-05-27 144810.png

Firehoseで設定したプレフィックスでデータが格納されます。
さらにParquet形式に変換されていますね。
スクリーンショット 2024-05-27 144848.png

5. Glue Crawlerの設定

先ほど無視したShemaを設定するためにCrawlerを設定します。

スクリーンショット 2024-05-27 144925.png

Data Sourceは各々のS3のパスを設定しましょう。
自分の場合"s3://backet/firehose"になります。

スクリーンショット 2024-05-27 145003.png

ETL用に新しいDatabaseを作成してTargetにしました。

スクリーンショット 2024-05-27 145118.png

Crawlerを実行させます。

スクリーンショット 2024-05-27 145153.png

Shemaが設定されたGlue Databaseの完成です。

スクリーンショット 2024-05-27 145234.png

6. Athenaでクエリを投げてみる

投げてみました。

スクリーンショット 2024-05-27 145302.png

こんな感じで見られます。

スクリーンショット 2024-05-27 145318.png

おわり

ここからQuickSightを使った見える化なども考えていけるかと。
データ分析基盤の構築はやってみると色々考慮事項があって大変だなあ、

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?