FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

データ分析に使えるAWSサービス(Glue・Athena)の紹介

こんにちは、渡部です。

これは先日行われたAWS勉強会で話した内容をまとめた記事です。

私は普段データチームとして広告データやレポートデータが格納してあるデータウェアハウスの開発・運用・保守等を行なっています。

その業務の中で使用している、データ処理に関するサービスのAWS GlueとAmazon Athenaについて紹介しました。

AWS Glue

概要

Glueは一言で表すならサーバーレスのETLサービスです。

ETLとは「Extract(抽出)・Transform(変換)・Load(格納)」というデータに関する一連の処理のことを指します。

Glueを使うことでS3やRDSにあるデータを抽出・変換して、S3やRDSなどに再び格納することができます。

使用例

データチームでGlueをどう使用しているのかを説明します。

広告媒体のAPIから取ってきてS3に格納してあるjsonデータに対してGlueで処理を行います。

変換処理の内容としては、jsonをバラして構造化データにしたり、カラム名を変更したりといったことを行なっています。

変換後のデータをデータウェアハウスに格納しています。

以前はデータの変換をEmbulk独自のパーサーで行なっていましたが、Glue利用に変更したことにより処理時間の短縮にも繋がりました。

Amazon Athena

概要

Athenaは、S3内のデータに対してSQLを実行できるサービスです。

通常S3にあるデータに対してSQLを実行したい時は一旦RDS等にデータを移して、RDSに対してSQLを実行するのが一般的かと思います。

しかしAthenaを使うことで、RDSを用意する必要なくS3に対してSQLを実行できるようになります。

使用例

データチームでの使用例としては、まずS3に格納した広告データに対してクエリを実行し、広告タイプというものを判別します。

その後判別結果をもとに、データウェアハウス上の別々のテーブルにデータを格納します。

広告タイプを判別するために新たにストレージを用意する必要がないため、ストレージコストや手間の削減に繋がります。

まとめ

簡単にではありますが、データ処理に関するAWS GlueとAmazon Athenaの紹介をしました。

この記事では深いところまでは言及しないですが、これらのサービスには今回紹介した以外にもさまざまな機能があるので、興味がある方は詳しく調べてみることをお勧めします。