Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

今更聞けないストリーム処理のあれとかこれ

8,361 views

Published on

JAWS-UG Meguro #2 のLT

Published in: Technology

今更聞けないストリーム処理のあれとかこれ

  1. 1. 今更聞けない ストリーム処理の “あれ” とか ”これ“ まいんだー JAWS-UG MEGURO #2
  2. 2. で、誰? Tatsuro Hisamori(id:myfinder) AWS関連のアウトプット ・失業エントリ - http://myfinder.hatenablog.com/entry/2015/03/27/141416 ・AWS Casual Talks #3 - https://github.com/myfinder/aws-casual-3/blob/master/slide.md ・AWS Users Advanced Meetup vol.2 - https://github.com/myfinder/aws-advanced-users-meetup- 2/blob/master/slide.md
  3. 3. “あれ” と “これ” あれ = どの基盤を選択するか これ = どの技術を選択するか
  4. 4. 結論 – 目的/事情に合わせて選ぼう PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  5. 5. ストリーム処理?
  6. 6. “静止したデータ” vs “動いてるデータ” 何台存在? 直近 1 分で何台通過?
  7. 7. “ストリーム処理” ・2007年くらいには既に実用化されてたけどその頃のWeb屋のサーバスペック/インフラリテラ シは。。。 ・金融のアルゴリズムトレードあたりから使われる ◦ ウォッチしている証券コードの値動きと、ニュース記事を連動させたいとかそういうの ・最近だとIoT方面でよく聞く(よくそういう話を仕事でしている) ・ネット広告だと配信/クリック/コンバージョン状況をできるだけリアルタイムにフィードバックし たいとかいうニーズなんかがある ・でもストリーム処理をやるためのソフトウェアが知られてない頃はcrontabに ”* * * * *” とか書 いてログをゴニョゴニョしてた人が多いんじゃないか(主観) ・選択肢も実例も増えてきたし、もうそういう似非ストリームっぽい何かはやめにしよう
  8. 8. “ストリーム処理” ・基本的な構成概念 何らかの アプリ (Producer) データの ブローカー (Broker) ストリーム処理 実体 (Consumer) 何らかの 出力先 (RDB, ObjectStorage, BI Tool, etc) pull型 push型
  9. 9. “ストリーム処理” ・基本的な構成概念 何らかの アプリ データの ブローカー ストリーム処理 実装 何らかの 出力先 pull型 push型 今日の内容は この部分
  10. 10. “あれ” と “これ”の 類型と選択パターン
  11. 11. 自分で構築してプログラムでやる PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  12. 12. Kafka + Spark Streaming EC2 or オンプレで頑張る。 uprushさんが話してくれた内容がきっとこ れに該当すると信じて詳細は割愛。
  13. 13. PaaSに任せつつプログラムを書く(1) PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  14. 14. Kinesis + Lambda 誰か話してくれるかと思ったけど誰も話さ ないとは。。。 AWSだけの環境の人はこれを使っておけ ば目黒の人たちが助けてくれる
  15. 15. PaaSに任せつつプログラムを書く(2) PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  16. 16. GCP Pub/Sub + DataFlow SDKがJava8縛り fluent-plugin-gcloud-pubsub で Pub/Sub へデータを送れば気軽に連携できる ここはJAWS-UGなので細かいことは割愛
  17. 17. 自分で構築しつつSQLでやる(1) PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  18. 18. Fluentd + Norikra EC2でやる。 Fluentd + Norikraはコードを書かずにSQLを登 録するだけでOKなところが良い スケーラビリティが課題(多段Norikraやばい) あとpush型なので “いったんクエリを止めて更 新する” みたいなメンテが面倒
  19. 19. 自分で構築しつつSQLでやる(2) PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  20. 20. Kafka + Spark Streaming SQL EC2でがんばる。 SQLでできる、と言いつつも結局コールす るコードが必要なのは⤵ http://spark.apache.org/docs/latest/strea ming-programming-guide.html#dataframe- and-sql-operations
  21. 21. PaaSを使ってさらにSQLでやる(1) PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい
  22. 22. Kinesis + EMR(Spark Streaming SQL) EMRでSparkをポチっとな。 PaaSでSQLと言いつつもAPIをつなげる部 分のコーディングは要求される(承前)
  23. 23. PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい PaaSを使ってさらにSQLでやる(2)
  24. 24. Azure Event Hubs + Stream Analytics エンドポイントを作ってクエリ設定して、 fluent-plugin-azureeventhubs でデータを流 し込むだけでOK 複数のストリームをJOIN句でつなげられ たり便利 ここはJAWS-UGなので細かいことは割愛
  25. 25. 選択の基準 とりあえずやってみたいよ  -> Kinesis + Lambda を推奨 大したトラフィックないよ -> fluentd + Norikra を推奨 コード書きたくないし運用したくないよ -> PaaS + SQL を推奨
  26. 26. 結論 – 目的/事情に合わせて選ぼう PaaSに任せたい 自分で構築したい プログラムでやりたい SQLでやりたい

×