読者です 読者をやめる 読者になる 読者になる

Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elastic{ON} 2017 3日目 | UberがElasticsearchを使って、苦労した話 #elasticon

Elastic{ON} 2017 in San Francisco Elasticsearch

Elastic{ON}2017 レポートのまとめはこちら!!

こんにちは!@です。
遂に終わってしまいました、Elastic{ON}。
これから日本に帰ります。1日目から3日目まで楽しいセッションが続いていました。

さて、Elastic{ON} 最終日のレポートです。
本日は3つのセッションを聞きました。

  1. Powering Uber Marketplace’s Real-Time Data Needs with Elasticsearch
  2. 'What's the Scoop on ES-Hadoop? Spark, Streaming & More
  3. Closing Keynote

セッションが少ない理由はAsk Me Anything(AMA)で主に質問をしていたからです。
Elastic社の人に質問し、丁寧に回答をいただき、自分の理解も深まりました!

ようやく本題です。「Powering Uber Marketplace’s Real-Time Data Needs with Elasticsearch」を紹介します。

Powering Uber Marketplace’s Real-Time Data Needs with Elasticsearch

f:id:acro-engineer:20170310141453j:plain:w500

Uberは自動車配車アプリのサービスです。
海外に行った時にUberを使用して、
車に乗せてもらうこともあるのではないでしょうか。

そのようなUberのMarket Placeでは、
動的な料金設定やルートの解析を行っています。
これらをリアルタイムに実現するために、Elasticsearchを導入しました。
しかし、大規模なAggregationを行った場合には性能問題が発生していたそうです。

f:id:acro-engineer:20170310155610p:plain:w500

リアルタイム処理を実現するアーキテクチャは次の図です。
SparkやElasticsearchを組み合わせています。

f:id:acro-engineer:20170310134948p:plain:w500

このアーキテクチャに対して、複数のAggregation(Terms Aggregation)をしていたそうです。
ただ、検索結果のデータが膨大になり、OutOfMemoryErrorが発生するようになりました。
これに対しての解決策として、Elasticsearchのクエリ実行前に実行時の候補を見積もり、
適切に検索に制限をかけるようにしています。

f:id:acro-engineer:20170310163808p:plain:w500

Elasticsearchは非常に便利で、簡単にスケールする、
分散するといった面で私も業務の中でかなり使っています。

ただ、ここまで大規模なシステムに対してElasticsearchを使うと
こんな問題にぶちあたるのか・・・と思いました。
日本でもここまで使ってみたいです!

最後に

遂にElastic{ON}が終わってしまいました。
セッションを通して、以前まで知らなかったプロダクト、アーキテクチャを知ることができました。
以前から思っていましたが、想定以上にElastic Stackのプロダクトの進化が早いです!

ただ、初めてのアメリカ、かつ、海外カンファレンスだったので、面白かった!
来年もElastic{ON}に行って情報を仕入れたいと思っています。

フィードバック会も開く予定なので、皆さんぜひ、お越し下さい。

また、どこかでお会いしましょう!See you again!

Elastic{ON}2017 レポートのまとめはこちら!!

Acroquest Technologyでは、キャリア採用を行っています。

  • ビッグデータHadoop/Spark、NoSQL)、データ分析(Elasticsearch、Python関連)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
  • マイクロサービスDevOpsなどの技術を使ったり、データ分析機械学習などのスキルを活かしたい。
  • 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

Elasticsearchを仕事で使いこみたいデータ分析エンジニア募集中! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com