こんにちは、株式会社サイバーエージェント 秋葉原ラボの白井徳仁です。 今回は2019年6月28日に開催された「Data Engineering and Data Analysis Workshop #8」をレポートしたいと思います。 秋葉原ラボは「分散システム・検索・機械学習・データマイニングなどを扱う研究開発組織」です。「Data Engineering and Data Analysis Workshop」は秋葉原ラボの所属メンバーが中心となって開催する勉強会でサイバーエージェントのデータ分析基盤とデータ活用、及びそれらのための技術をテーマにしています。 前回の第7回は RecSys2018 ならびに AWS re:Invent 2018 の参加レポートについてお話頂きました。こちらに第7回のレポートがありますのでご興味のある方は併せてご覧ください。 第8回の開催を迎えた今回は、ヤフー株式会社、LINE株式会社からもスピーカーをお招きして、「Apache Sparkの企業での活用事例」をテーマにお話頂きました。
発表内容
Sparkを活用した推薦基盤のバッチフレームワーク
弊社秋葉原ラボの内藤 遥からは「Sparkを活用した推薦基盤のバッチフレームワーク」についての紹介がありました。 「AbemaTV」「Amebaブログ」「読書のお時間です」などの弊社メディアサービスでは視聴者やユーザーに対してコンテンツの推薦を行っています。これらの推薦システムでは Spark を使ったバッチフレームワークが構築されており、現在約100個のジョブが本番稼働しています。推薦システムのバッチ処理は学習データの取得と整形、モデルの学習、推薦結果の作成、推薦結果の書き出しなど定型的な処理が多いため、フレームワーク化して新規サービスの導入コストや運用コストを削減できるような仕組みになっているそうです。発表ではそれらのデータフロー図を踏まえた推薦ジョブの詳細な紹介がありました。以下の資料に詳しい解説がありますので、ぜひ御覧ください。
Apache IgniteとApache Sparkの統合によるHTAP活用
ヤフー株式会社 Roman Shtykh 様より、「Apache IgniteとApache Sparkの統合によるHTAP活用」についてお話頂きました。 Spark は非トランザクション的な処理を対象としているのに対して、Apache Ignite はリアルタイム処理に優れ、非トランザクションとACIDトランザクション的な処理の両方サポートしていることから、両者を統合し Apache Ignite を Spark のストレージとしての活用する構成ついて解説頂きました。ストリーム処理やOLAP(On-line Analytics Transaction Processing)クエリーは Spark で行うと同時に、IgniteによりSparkワーカー間の高速なステートシェアリング、Ignite SQLのインデックスサポートにより高速なクエリーが実現されるなどのメリットがあるとのことです。以下の資料に実際のユースケースも含めた詳しい解説がありますので、ぜひ御覧ください。
継続的インテグレーションによる超高速Spark SQL UDF開発の現場徹底入門
LINE株式会社 吉永 尊洸 様より、「継続的インテグレーションによる超高速Spark SQL UDF開発の現場徹底入門」についてお話頂きました。 LINE株式会社には OASIS と呼ばれる Spark を利用できる社内向けデータ分析プラットフォームがあり、各社員が自ら担当のサービスにおいて Notebook 形式でクエリーの実行と結果の可視化、Notebook の共有と定期実行、自作関数(UDF)の追加などを行うことができるそうです。今回はその中の UDF 追加の自動化についてご紹介頂きました。UDF は Scala で実装し JAR ファイルを HDFS 上に配置することで Spark SQL から実行が出来るようになります。その過程で JAR ファイルのバージョン管理、JARファイルのHDFSへのアップロード、Scalaのビルド環境の構築などコーディング以外の定形作業が手間であるという課題があったため、Drone というCIツールを活用することで効率化を行ったお話をして頂きました。以下の資料に UDF の具体例も含めた解説がありますので、ぜひご覧ください。
おわりに
今回も多くの方々にご参加頂き、まことにありがとうございました。Data Engineering and Data Analysis Workshop」は、今後も3ヶ月に1回程度のペースで開催していく予定です。秋葉原ラボの勉強会にご興味をお持ちになられた方は、ぜひ、connpassのCyberAgentグループをチェックしてみてください。