データが主食

データエンジニアの備忘録。分析だったり、読んだ本のメモだったり。

Youngbin Kim et al. 「Serverless Data Analytics with Flint」

ktr89.hateblo.jp

に関連して、サーバーレスでビッグデータ処理しているような事例を調べたら、他にも論文が出てきたので読んでみました。 Hadoopクラスターを自前で用意する時代は終わりを迎えていて、AWS LambdaやGoogle Cloud FunctionなどのFunction as a Serviceでビッグデータ処理をするような事例も近いうちに出てくるかもしれません。

arxiv.org

Author

AuthorのYoungbin KimはLinkedInによるとカナダのWaterloo大学のTeaching Assistantの方のようです。 共著のJimmy Linはhttps://cs.uwaterloo.ca/~jimmylin/によるとWaterloo大学の教授のようです。

彼らの課題感

Ecri Jonas et al.「Occupy the Cloud: Distributed Computing for the 99%」 - データが主食 と基本的に同じで、データサイエンスなどの応用場面で、Sparkインフラを用意するのが大変。 EMRなどの既存のインフラでSparkを実行できるが、利用していない時も課金されし、起動に時間がかかる。 使用者のことを考えるとpay as you goなインフラである必要がある。

彼らの提案 = Flint

課題を解決するためのソフトウェアとしてFlintを提案します。 FlintはAWS Lambdaをメインに利用し、その他S3、RDS、SQSを利用します。 SparkのSchedulerBackendをカスタマイズして実装しており、Sparkを使える人であればFintを使えます。

f:id:ktr89:20190113222756p:plain

評価実験

Spark(Scala)、PySpark、Flintの3つを比較する実験を行う。 実験対象のデータは Analyzing 1.1 Billion NYC Taxi and Uber Trips, with a Vengeance - Todd W. Schneider

Spark/PySpark環境
  • m4.2xlarge 11台(1台がdriver、10台がワーカー)
  • Spark 2.3
Flint環境
  • 3008MBのAWS Lambdaを80並列
  • Spark 2.3
実験番号 概要
0 行数カウント
1 ゴールドマンサックス本社で降車した台数を時間ごとに集計
2 シティーグループ本社で降車した台数を時間ごとに集計
3 ゴールドマンサックス本社で降車した中で$10以上のチップを支払った台数集計
4 クレジットカード支払いの比率
5 Yellow taxi vs Green taxi (月ごと)
6 チップ額への影響。雨だと多いとか。

f:id:ktr89:20190113235210p:plain

所感

  • 実装が大変そう。脱帽。
  • 実験のクエリがよくわからないが、Sparkと比較してそれほど遅くないことがわかる。
  • 実験レベルで動かせるのはわかるが、製品に落とし込むのは厳しそう。AWS/GCPがサポートしてくれないと研究で終わりそう。
  • だいぶ端折っているので、わかりづらい部分は論文を読んでください。