最近あんまりアプリ書いてないです......(もうリリース直前くらいまで実装は終わってるんですけど)。普段はAndroid関係のイベントに出没することが多い私ですが,今回は趣向を変えてデータ分析系の情報を仕入れようと思って以下の勉強会に参加してきました。おことわり普段は勉強会中はメモを取るに留めて,帰宅後イチから記事を書き起こすことが多いのですが,今週末はちょっと予定が詰まっているのもあり,勉強会中に記事を書ききる練習をしています。イベント終了後追記やっぱり間に合いませんでしたwイベント終了後,30分ほど執筆時間を取っています。当該イベントのconnpassページはこちら。コネクティッドカーに代表されるようにIoTデバイスから大量のデータを取得し、リアルタイムにデータを分析しビジネスに活かすといった要望が増えてきました。今回は、ストリームデータを処理するテクノロジーについて学んでいきたいと思います。...connpass写真は撮っていませんが,150人くらいはいるんじゃないでしょうか。レバレジーズさんで開催されるイベントはいつも盛況ですね。記事にはしませんでしたが,先日参加してきたPython勉強会もここで開催でした。登壇者は7名で2時間という結構豪華な会です。2017」で取材した内容を中心に、データストリーミングの最新トレンドについて紹介します。Summitの報告発表です。箇条書きで失礼すると,以下のような報告があがりました。以前は”Hadoop”の名が入っていたカンファレンスだったが,最近は”Hadoop”の名前を出さずにデータ基盤としての色合いを出していこうとしている。人気はTensorFlowのブースKafkaとNiFiについての話がメインそもそもストリーミングデータとは膨大な数のデータソースから継続的に生成される連続データのことです。時間の経過とともにデータの性質が変化するので,「いま」の状況を分析&可視化するための技術として昨今注目が集まっています。その他,印象深い言葉があったので紹介します。「Kafkaは空気」。使っていてあたりまえ。Kafkaは我々にとって頭で考えて使うものではない。新しいワインは新しい革袋に,古いワインは古い革袋に。新しいイノベーションは新しい技術で。Kafka,ちょっと雰囲気だけでも知っておこうと思えるいい発表でした。Streaming昨今、ストリーム処理は以前言われてきたバッチ処理と対比される状況を越え、統合データ処理として語られるようになってきています。Streamingについて紹介します。ナレ冒頭はストリーミング処理システムの構成の変遷から。Streamingについての説明がありました。詳しくは上の発表資料を見ていただくとして,私的になるほどーと思った点を,これまた箇条書きで。Readyになったバッチとストリーミングデータを統合して扱えるKafkaとの親和性が高い資料中に簡単なサンプルコードも挙げてくださってたので,イメージが掴みやすくて助かります。Scalaで書くとこう。9999).load()Sparkは研究室時代にほどほどに使ったので抵抗感があんまりないのが幸いなところ。Kafkaもそうですけど,こういうツールはどんどん新しいのが出てくるのでしっかりと追っていかないと置いてかれますね。IT系の楽しいところであり辛いところでもあります。その点,こういう勉強会はコスパ(と言ってしまうと淡泊だけど)がよくて便利です。NYC」をベースに、KafkaをコアにしたストリーミングデータのETLの動向などについて話します。Kafkaとは「そもそもKafkaとは」という説明があったので引用しておきます(私はこれだけだとナンノコッチャだったので,別途調べます......)。Kafkaは以下の機能を提供するOSSのストリーミングプラットフォームだそうです。レコードストリームをpub/subできるレコードストリームをフォールトトレラントに永続化できるレコードストリームを発生したらすぐ処理できる資料p16の一部,すこし口頭で説明のあったところを補足しますね。感じの惨状ですが,それをKafkaが解決するのがp19のイメージ。「取りあえずデータはKafkaに貯めて,そこから必要なものを引き出す」というスタンスのようですね。Platform」とも通じる話ですが,p21もわかりやすいです。Platform全てのログはKafkaに,全てのログはKafkaから。Transformした結果は,そのままHadoopに入れるのではなくてKafkaに戻すこと。物流系のIoTなシステムを設計/構築する中で、特にMQTTブローカーについて、考慮しなくちゃいけなかったことやハマったポイント、プロダクト/サービスの選定経緯についてお話します。実際に使ってるシステムをざざっと解説された感じ。KInesis,MQTT,みたいな他のフレームワークの話がメインでしたが,Kafkaですらわからない私にはちょっと敷居が高かったですね......。Reader/Writerといった機能について掘り下げて紹介します。ApacheプロジェクトのNiFiというOSSツールのコミッターの方による発表です。Kafkaと同じくNiFiも私にとっては初見ですが,NiFiは一言で言うと「データオーケストレーション・ツール」です。具体的には,以下のような場面で活躍するのだとか。Piでも動くらしいです。OSSのコミット,してみたいな。探してみようと思ったり。NiFi素人が苦労した物語Webサービスが連携していく中で、独自インターフェースとのやり取りや、しがらみを吸収するのに採用した内容について事例紹介させていただきます。SoftBankの運用システムの中でNiFiを活用した事例の紹介です。SoftBankは会社の合併・統合という経緯から,サービス毎に個別開発したシステムが多くて,そのメンテが大変という問題に直面しているらしいです。そのため,開発プラットフォームを統一化しようという流れがあるのだと。NiFiを使うときに気をつけて欲しい3つのことを共有してくれました。〜デバイス、無線からクラウドまで〜IoTならではのアプリケーションデザインのお話をします。セルラー通信でのデータ収集はネットワークの不安定性を考慮に入れて設計する必要がありますが、デバイス側のバッファが小さく、再送処理もままならないようなケースも多数あります。いった「あるある」なユースケースに沿ったアプリケーションデザインを紹介していきます。最近,KDDIが200億で買収したと話題のSORACOM。いう話題で中の人が説明してくれました。確かに,IoTってイメージで語られることが多くて内実を見せてもらえることって意外と少ないですよね。SORACOMの案件として説明があったのは以下の2つでした。通常のシステムと比べて大きな違いは,「デバイスやネットワークもアプリケーションの一部」という意識。普段は気にしない足回りも気にする必要があるんですね。具体的に言うと,モバイルネットワーク切れる前提でアプリケーションを設計する必要がある。速度低下,ボトルネックもある。idのmodとか)デバイス用途/予算によって適当なものを使う。デバイスに角のインテリジェンスを求めない。消費電力/値段はトレードオフ(たとえばHTTPS+JSONは高級品)。通信にかかる負荷をどうオフロードするか。Air)をどうするか。データプリミティブなデータをどう扱うか(基本的なデータは数値,連続的なデータが多い)。イベント検出をデバイスとサーバのどちらで行うか。IoT+ストリーミング処理を標榜するSORACOMならではの発表で興味深かったです。まとめストリーミングデータ処理,という言葉に引かれて偶然申し込んだ勉強会だったのですが,KafkaとNiFiという新しい知識を得ることができてよかったです。Apacheのツールは1度俯瞰しておかないとエンジニアはもはや名乗れないのかもしれない,と結構焦ってしまったのはここだけの話。配属先で学ばなきゃいけないことも多いんですが,それだけで満足するのではなくて,このあたりの周辺知識も積極的に集めていこうと心を新たにしたイベントになりました。