AWS Glue DataBrewを活用し、年累計(月毎の累計)を算出する機会がありましたので、その方法をご紹介します。
AWS Glue DataBrewの概要や使い方については、以下の弊社ブログ記事をご覧ください。
blog.serverworks.co.jp
データセットの準備
まず年累計を計算するために、年月ごとのデータセットを準備します。
今回は、以下のカラムを持つCSVファイル(サンプルデータ)をAmazon S3にアップロードし、AWS Glue DataBrewのデータセットで該当ファイルを指定します。
・Year
(年)
・Month
(月)
・Product
(商品)
・Value
(売上値)
年累計の算出方法
1. データセットのフィルタリング
データセット作成後、AWS Glue DataBrewのプロジェクトで前述のデータセットを参照するプロジェクトを作成します。
最終的に各月のデータセットをユニオンする必要があるため、データセットを月ごとにフィルタリングしたプロジェクト、レシピを12個作成します。
参考までに、4月のレシピ作成手順は以下の通りです。
1.Month
の左側にある「列フィルター」を押下し、「次以下 : 4※」でフィルタリング
※ 別月のフィルタリング例)1月 : Month
を「次以下 : 1」、12月 : Month
を「次以下 : 12以下」
2.ヘッダーの「グループ」を押下し、フィルタリングされたデータを画像内の列名でグループ化し、Value
を集計
3.グループ化に含めていない列は自動削除されるため、以下設定を適用することでMonth
を再度作成(Month
の値をフィルタリングした数値で固定)
・ヘッダーの「条件」> IF を押下
・一致条件 : すべての条件に一致 (AND)
・ソース > 次の値 : Year
・論理条件 : は有効です
・true の場合の値 > カスタム値を入力 : 4(フィルタリングした数値を入力)
・false の場合の値 > カスタム値を入力 : 4(フィルタリングした数値を入力)
・送信先列 : Month
4.レシピを発行し、ジョブを実行する
2. データセットのユニオン
ジョブ実行が完了後、Amazon S3にファイルが出力されるため、そのファイルを参照するデータセットを各月分作成します。
そして、AWS Glue DataBrewのプロジェクトで、ヘッダーの「ユニオン」を押下し、各月のデータセットをユニオンすることにより年累計のデータが完成します。
まとめ
AWS Glue DataBrewを使用し、月ごとのデータを年累計データに変換する方法をご紹介させていただきました。
AWS Glue DataBrewは、GUIベースの直感的な操作により様々なデータ加工ができるので、ぜひ活用してみてください。
参考
AWS Glue DataBrew 公式ドキュメント
aws.amazon.com
Yuki Oda(記事一覧)