TreasureDataの利用経験を元にAmazon Athenaについて調べて比較してみた

Amazon Athenaについて、TreasureDataを実務で利用していた時の経験と比較調査して、まとめてみました。
2018.10.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

定常業務にてAmazon Athenaを使うフローがあり、Amazon Athenaの使用例について調べてみたところTreasureDataを利用したワークフローと類似した点がみられました。

個人的な備忘録の意味も含めて、それぞれ比較してまとめてみました。

ざっくりとした概要

TreasureData

https://www.treasuredata.co.jp/

元となるリソースや可視化の選択肢が幅広く、該当するリソースを用いていた場合にワークフローへ組み込みやすいのが特徴です。

リソース例

  • MySQL
  • Google SpreadSheet
  • Fluentd
  • CSV
  • ..

可視化例

  • Redash
  • Google SpreadSheet
  • Tableau
  • ..

Amazon Athena

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

AWS内で集計・分析を完結させることが可能です。S3上のデータに対してのSQL実行、及び結果のS3へ保存が可能な仕組みとなっています。

via: AWS - Amazon Athena - クエリ結果

クライアントツール

それぞれにコマンドラインベースにて実行可能なクライアントが用意されています。

Treasure Data

Treasure Data Toolbelt

Ruby製で、gemにてインストールを行います。実行したJobの状況確認等、ブラウザ上から管理画面を使わずに完了させることも可能です。

# sample_dbのexample Tableに集計掛けた結果をresult.csvとして保存する
% td query -w -d sample_db "SELECT * FROM example" -f csv -o "result.csv"

Arm Treasure Data: Installing and Updating the Treasure Data CLI

Amazon Athena

awscli

Python製の、AWSの各サービスをコマンドラインベースで操作可能にするクライアントです。Amazon Athenaもその範囲に含まれています。

# 実行した結果をS3のexampleバケット下result_dirに出力する
% aws athena start-query-execution \
  --query-string "SELECT * FROM example;" \
  --result-configuration OutputLocation=s3://example/result_dir

AWS CLI Command Reference: athena

athenacli

Python製の、ターゲットをAmazon Athenaに絞ったクライアントです。対話的にクエリを入力・実行可能です。出力先等は~/.athenacli/athenaclircに設定しておきます。

% athenacli -e 'SELECT * FROM example'

Developers.IO: Very cool らしい AthenaCLI を試してみたら、やっぱりクールだった件

利用したワークフローの例

比較での見易さを優先するため、フローのステップ数を合わせています。

via: Athena と AWS Glue を併用する際のベストプラクティス

Treasure Data Amazon Athena
集計用テーブルの生成
  • ストリーミング
    • Fluentd、...
  • バルク
    • MySQL
    • CSV
    • Google Spreadsheet、...
  • AWS Glue Crawlerにて
    • Amazon S3
    • Amazon Redshift
    • Amazon RDS
    • Amazon DynamoDB
    • パブリックにアクセス可能なデータベース
集計 Job Query Amazon Athena
可視化 Redash、Google Spreadsheet、 ... Amazon Quicksight、...

SQLエンジン及びUDF

Treasure Data

Presto、及びHive。

UDF

Supported Presto and TD Functions

Amazon Athena

Presto、及びHive(一部DDL)。

UDF

現在、Athena ではカスタム UDF をサポートしていません。カスタム UDF のサポートが必要な場合は、お客様の要件についての詳細を athena-feedback@amazon.com に E メールでお問い合わせください。

via:AWS - Amazon Athena よくある質問

感想

Amazon Athenaの挙動やメリット等の細かい点まで調査してみると、比較する上での一概に言い切れない点は更に多数あると感じました。ただ、AWSの重要な領域の一つであることは確かなので、より理解を深めていこうと思います。