/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2018/12/07 Netflix のデータ分析基盤事例

来週土曜日、12月15日に JJUG CCC 2018 Fall が開催されます。 JJUG CCCは毎年2回、春と秋に開催する日本最大のJavaコミュニティイベントです。Java関連の技術や事例に関する良質なセッションが行われ、また異なる分野で活躍するJava技術者が一堂に会する場ともなっています。ぜひご参加ください。 ということで、Java 関連技術の動向などをキャッチアップするにはよいイベントだと思います。

私はボランティアスタッフとして参加させていただくことになっているので、イベントがスムーズに行われるようにお手伝いします。LT でドラを叩く役割をするかもしれません、いわゆるドラ息子というやつでしょうか。。

www.java-users.jp

AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ecosystem (BDM306)

Netflix のデータ分析基盤の事例を調べていたのですが、以下のプレゼンが包括的でとても分かりやすかったです。

データの大きな流れと S3 を中心としたアーキテクチャである理由から始まり、各要素技術である理由がそれぞれ説明されています。S3 に明示的にデータを分離することで、データはデータでスケールできるし、計算クラスタは必要な分だけデータを利用して計算リソースのスケールに集中できるとのこと。

Genie というツールを内製していて、今は OSS になっているのですが、distributed job orchestration engine と紹介されています。ジョブを実行するクラスタが複数ある場合にジョブ管理を統合的に行うツールのようで、どのクラスタでどのジョブが実行されたかなどが管理できます。クラスタ管理者にはクラスタのアップデートなどをサポートする機能も備わっているようです。

Metacat というメタデータ管理ツールもあって、利用されていないデータの削除等もこれで行っているようなのですが、Genie とどう組み合わせて利用しているか気になります。

Druid についても紹介がありました。"out-of-the-box visualization tools" (型に捉われない可視化ツール、その場で自由に分析・可視化するツール?)だと数十億行のデータを扱いたい場合に扱いきれないということで、S3 に入ってきたデータを集計して S3 に Druid 用に保存することで、高速に参照することが出来るようになります。

www.youtube.com

データ分析基盤などはトレンドはありつつも正解はないので、ビジネスのゴールに向けてアーキテクチャを各社考えているようです。Netflix ではとにかくデータが多く1つのクラスタで集中管理することが適切ではないことから、Genie などのジョブ管理ツールを利用してクラスタが複数作成されても集中管理できるように工夫しているようです。Druid もすべての可視化を Druid にするのではなく、必要に応じて使い分けているようで、洗練されたデータ分析基盤が構築され、また利用されているなと感じました。