AD-TECH
Lab BLOG
アドテクLab ブログ

NEWS
  • リクルートデータ組織のブログをはじめました。※最新情報はRecruit Data Blogをご覧ください。

Strata NY 2019 参加記 - Session Day 2

2019/09/27torii46

このエントリーをはてなブックマークに追加

そろそろ時差ボケにも慣れてきました、データ分析基盤チームのエンジニアの鳥井です。

こちらの記事に詳しいですが、 この記事を執筆している今、O’Reillyが主催している Strata Data Conference 2019 @ NY というカンファレンスに参加しています。

Strataについてと、Session Day 1の印象に残ったセッションについて、上記記事で紹介させていただきました。

この記事では、1本目の記事に引き続き、Session Day 2で聞いた中で印象に残った発表を1つ簡単に紹介したいと思います。

Session Day 2

Creating an extensible 100+ PB real-time big data platform by unifying storage and serving

Uberが数百PBのデータをリアルタイムで保存および処理するための基盤をどのようにして作ったかが語られました。

利用されたことのある方はよくわかると思いますが、Uberはリアルタイムサービスです。 そのため発表者は、価値のある機能を提供するためには迅速なデータ処理が必要だと強調していました。

また、Uber社内では10000人を超えるデータサイエンティスト/エンジニア/オペレーションマネージャが、 Uberの各種アプリから集められるデータを利用しており、増え続けるデータの迅速な保存と処理がサービス向上の要になっています。

そのUberも初期は小さなバッチ基盤からスタートしているらしく、4年ほど前に構築していたRDBベースのデータ基盤では下記の問題があったそうです。

  1. スケーラビリティに難がある
    • HDFSのスケーラビリティが必要
      • 常にボトルネックになっているNamenode
      • 小さなファイルとHDFSの相性が悪い
    • 取り込みのスケーラビリティが必要
      • ソース固有のデータ取り込みパイプラインのメンテナンスコストが大きい
      • HDFSに小さなファイルが多すぎる
  2. データレイテンシが大きい(24時間)
    • インクリメンタルなデータ取り込みが必要である
  3. データアップデートが難しい
    • Hadoop/Parquetのアップデート・デリートに対応する必要がある
  4. ETLジョブがボトルネックになっている
    • ETLもインクリメンタルにする必要がある
    • 変更部分のみをインクリメンタルに取得できるようにする必要がある
    • さまざまなクエリエンジンに対応する必要がある

上記問題に対してUberはそれぞれの問題点に対し独自ライブラリを開発し、 これらの問題を解決したデータ基盤を作り上げたそうです。

ざっくりと説明すると、1については

  • SparkベースのMarmaryを開発
    • 任意のデータソースからの取り込み、任意のシンクへの分散できるようになった
    • Sparkジョブのように水平スケールする
    • オープンソースとして公開している

2, 3, 4については

  • SparkベースのHudi(Hadoop Upserts anD Incremental)を開発
    • ストレージの抽象化
      • Hadoop上の既存Parquetデータへのupsert/delete
      • 変更をインクリメンタルに出力できる
      • ファイルを効率よく扱える
      • スナップショットの分離
    • Sparkジョブのように水平スケールする
    • これもオープンソースとして公開している

という形で解決したとのことです。
(それぞれのライブラリが具体的にどういった形で処理を行っているかはかなり専門的で長くなりそうので割愛します)

また最近では、Apache Kafkaを通じてデータを取り込むようにしたりなどもしているようです。

今後は、データの質の向上、データレイテンシを5-10分程度にする、Hadoopに収まらないスケーラビリティ、Hudiのさらなる機能追加などを目標に開発を続けていくそうです。

独自開発のプロダクトを含めて、非常に多くの技術を組み合わせてスケーラブルで低レイテンシなシステムを構築しているのが印象的でした。

雑感

1日目は自分の開発に近いプロダクトについての発表が印象に残りましたが、2日目は世界トップクラスの規模の開発の話に圧倒されました。

処理するデータ量もそうですが、それらの大半をほんの数十分で利用可能な情報に変換してしまうところが凄まじかったです。

また開発したライブラリをOSSとして公開しているところや既存のOSSにも大きく貢献しているところは、さすが世界に轟くテックカンパニーだなと思いました。

この発表をはじめ、セッションの中でもストリーミング処理に関する発表が多くあり、(バッチなどとの使い分けは重要にはなると思いますが)ストリーミング処理はやっていて当然のような雰囲気を感じました。

会場の様子など

食事エリアだけでもこれくらいの広さ(実際にはこの倍くらい)がありました。

ランチ。味はなかなかでしたが、間食の方がより美味しかったです。

マッサージスペースなんかもあったり。

まとめ

Strata NY 2019 の Session Day 2 で印象に残ったセッションについて紹介させていただきました。

今回は基盤寄りの話を多く聞きましたが、全体的にMLに関する話題が非常に多かった印象です。来年のStrata NYではなにが話題になっているのでしょう…?

日本に戻ってからは、カンファレンスで学んだことをまとめたり深掘りしていきます!

このような機会を提供してくれるRCOアドテク部の環境に感謝です。

広告

RCO アドテク部では、データ分析やデータ分析基盤構築を得意とするエンジニアなどを募集しています。

採用ページ