Fluentd、EmbulkなどTreasure Dataの最新技術を総チェック! 「TD Tech Talk 2018」レポート

トレジャーデータ⁠株⁠は、2013年に日本で本格的な事業展開を開始して今年で5周年を迎えます。その節目にあたり同社は、2月19日(月⁠⁠~21日(水)の3日間、東京都丸の内(JP TOWERほか)にてプライベートイベント「TREASURE DATA⁠PLAZMA⁠⁠」を開催しました。

TREASURE DATA“PLAZMA”公式サイト
URL:https://plazma.red/
画像

イベントでは多くの講演やショーケースが設けられ、新規事業担当者やマーケター向けに、国内外企業のデジタルイノベーション事例やトレジャーデータサービスの活用事例が紹介されました。参加者は3日間で1400名。これは同社がこれまでに開催したイベントの中では最大規模となります。

また、このイベントの一環として、2月15、19日に技術者向けのイベント「TD Tech Talk 2018」も開催されました。

2月15日は「PLAZMA OSS Day」と題し、トレジャーデータが開発を主導するOSSプロダクトに関する講演が多数行われました。そして、2月19日は「PLAZMA TD Internal Day」と題して、トレジャーデータサービスの内部実装を解説する講演が行われました。

両日とも講演内容は動画で公開されています。

PLAZMA OSS Dayの講演
URL:https://youtu.be/kK80-awh_NM
PLAZMA TD Internal Dayの講演(1)
URL:https://youtu.be/RzQT_9jcrx8
PLAZMA TD Internal Dayの講演(2)
URL:https://youtu.be/wdnNb3yZmro

講演の詳細はこれらの動画で視聴できるため、ここではいくつかの講演のトピックを紹介します。

Fluentd v1.0 and the future

2月15日に行われた中川真宏(@repeatedly)氏の講演「Fluentd v1.0 and the future」は、2017年12月にリリースされたFluentd v1.0の新機能を紹介する内容でした。

Fluentdとは、いろいろなサービス、ミドルウェア、センサーなどからログやデータをリアルタイムで収集するログコレクタと呼ばれるソフトウェアです。Flulentd 1.0では以下の機能が導入されました。

  • 新しいプラグインAPI(より複雑なユースケースに対応できるようになった)
  • イベント時間のナノ秒対応
  • Windowsサポート
  • マルチコアサポート
  • プラグイン作成のための支援機能(Plugin Storage、Plugun Helpers)

講演ではこれらの機能の概要、内部実装、過去のバージョンとの互換性などが説明されました。

Fluentd v1.0の新機能を紹介する中川真宏氏
Fluentd v1.0の新機能を紹介する中川真宏氏

このほか、

  • td-agent 3(Fluentdの安定版パッケージ)の状況
  • Fluentdのコンテナイメージの提供
  • KafkaやPrometheuseとの連携
  • ベンチマークセットに関する作業状況
  • fluent-bit(組込み機器向けの軽量なデータコレクタ)の紹介

など、Fluentdを中心としたエコシステムにも話が及びました。

この講演の内容は、Fluentdのユーザにとっては旧バージョン(v0.12など)からv1.0以降のバージョンに移行する際の1つの判断材料となるでしょうし、プラグイン開発者にとっては既存のプラグインの修正要否の見極めをしたり、新規プラグイン開発を効率化するノウハウを把握したりするのに役立つでしょう。内容が気になる方は動画で講演を視聴してみてください。

また、その際には次の2つの講演も合わせてチェックすると良さそうです。

Cooperative works for Fluentd Community(Kenji Okimoto氏、Hiroshi Hatake氏)

プラグイン開発者から見るv1.0の活用法(Tomohiro Hashidate氏)

この2つの講演では、中川氏の講演で紹介された機能(Kafkaとの連携、Plugun Helpersなど)の詳細が語られています。

Embulk v0.9

EmbulkとはFluentdのバッチ版のようなもので、さまざまなサービスやミドルウェアにあるデータをバルク(一括)で転送し、収集するソフトウェアです。三廻部大(@dmikurube)氏の講演「Embulk v0.9」では、ここ数ヵ月間に追加された新機能や過去バージョンとの互換性について発表されました。

Embulkの新機能を紹介する三廻部大氏
Embulkの新機能を紹介する三廻部大氏

まず、Embulk v0.8.21~v0.8.39での大きな変更点として、以下の変更が紹介されました。

  • Pure-Javaプラグインが動作可能に
  • 起動シーケンスのPure-Java化(Pure-Javaプラグインのみを使う場合は、JRubyを介さないため、起動が高速に)
  • TimestampParserのPure-Java化(タイムスタンプのパースが高速に)

そして、2018年1月末にリリースされたv0.9.0での大きな変更点として、

  • EmbulkのベースがJava 7からJava 8に変更

が報告されました。これにより、プラグイン開発者はJava 8の機能を使って開発できるとのことです。

さらに、今後(v0.9.5以降)は次の2点の対応を予定していることが紹介されました。

  • ログをほかのチャンネルに出力する機能(Reporter Plugins)
  • データタイプとしてバイナリ型を追加

講演の後半では、Embulk v0.9.0以降で、互換性がなくなった機能や非推奨になった機能についても紹介が行われました。

  • いくつかのAPI/SPIのメソッドやクラスが使用不可に(おもにTimestampのデータを扱っているもの、JRubyに近いメソッドを呼んでいるもの)
  • v0.9.0以降はEmbulkのgem形式でのリリースはなし(リリースはjar形式のみ)
  • Bundler(Gemfileの記述)の変更
  • プラグインのインストールディレクトリの変更
  • Timestampフォーマットの変更

Treasure CDPシステムアーキテクチャ

2月19日のイベントからは、古橋貞之(@frsyuki)氏の講演「Treasure CDPシステムアーキテクチャ 10億ユニークデバイスをリアルタイム追跡するシステム構築」を紹介します。

最近のデジタルマーケティング業界では、CDP(Customer Data Platform)というキーワードをよく見かけます。これはさまざまなシステム上の顧客データを集め、同一顧客に関する情報をひもづけて管理し、他システムと連携することにより、さまざまなマーケティング施策に活用することを目的としたシステムです。

トレジャーデータも2017年7月に新サービス「Treasure CDP」をリリースしました。古橋氏の講演では、そのシステムアーキテクチャについて解説が行われました。

デモを交えながらTreasure CDPについて解説する古橋貞之氏
デモを交えながらTreasure CDPについて解説する古橋貞之氏

各企業が持つ顧客データは、データベースやCRM(Customer Relationship Management)システムなどに散在しているだけでなく、そこにセカンドパーティ、サードパーティのデータをくっつけたいという用件が加わったりして、日々複雑化していると言います。それらを統合して、ユーザ企業が有効に活用できるようにするのが、トレジャーデータの役目です。

ユーザ企業からは、顧客のデータをDSP(Demand-Side Platform)につなげたい、SNSにプッシュしたい、データをもとにレコメンデーションしたいといった要求が発生しています。しかも、⁠各システムに散らばった全データを突合して解析したい⁠⁠、⁠できればSQLなしでやりたい⁠⁠、⁠リアルタイムでやりたい」ということも求められます。それがTreasure CDPを開発するにいたった背景だそうです。

先の要求を実現するために、技術的には何を解決しないといけないのかというと、次のようなことが挙げられます。

データスキーマの統合
  • IDの統合、不整合の解決
  • ごちゃごちゃしたスキーマを単純化
  • 複数Cookieドメイン間のデータ結合
  • サードパーティデータの結合
解析
  • SQLの知識なしでも使える解析UI
  • 機械学習の知識がなくても使える推定、最適化
解析結果を実サービスや物理店舗へフィードバック
  • レコメンデーション、パーソナライズ
  • 広告/配信サービスへの連携
リアルタイム処理
Customer Data Platformに求められる技術
Customer Data Platformに求められる技術

これらを実現するためのCDPシステムのアーキテクチャとして次の3つが紹介されました。

  • ① GUI上で定義したAudienceルールをもとにデータセットを作るしくみ
  • ② GUIでデータセットをリアルタイムに解析(セグメンテーション)するしくみ
  • ③ セグメンテーション結果を実サービスにフィードバックするしくみ

Treasure CDPはこの3つのシステムで成り立っており、それぞれシステムにおいて、トレジャーデータのOSSを活用しているとのことです。

Treasure CDPの概要
Treasure CDPの概要

講演では、3つのシステムそれぞれについて詳しい実現方法が解説されました。

①に関しては、データをシンプルな形に統合するための工夫についてデータのスキーマレベルで解説されました。

②に関しては、GUIで指定した条件をいくつかのオプティマイザやコンパイラを通すことで、最適化されたSQLクエリに変換しているようです。

③に関しては、ほかのWebサービスからセグメンテーション情報を得るしくみが説明されました。①や②で作成されたデータをCDP KVS APIにプッシュするワークフローが定期的に動いており、外部のWebサービスはこのCDP KVS APIを利用することでセグメンテーション情報を得られるとのことです。


2日間のイベントでは、トレジャーデータのエンジニアによる講演だけでなく、同社のユーザ企業のエンジニアによる講演も多数ありました。ユーザといえどもサービスを利用するだけではなく、自らFluentdやEmbulkなどのOSS開発に参画し、サービスの向上に積極的に関わるエンジニアも多いです。国内においてビックデータやデータ分析基盤に関する情報やノウハウはトレジャーデータのまわりに集まっていると感じたイベントでした。

本記事ですべての講演を紹介することはできませんので、参考情報として以下に全講演の一覧と動画へのリンクを掲載させていただきます。

PLAZMA OSS Dayの講演

講演タイトル発表者動画URL
Fluentd v1.0 and the future@repeatedlyhttps://youtu.be/kK80-awh_NM?t=289
Cooperative works for Fluentd Community@okkez, @cosmo__https://youtu.be/kK80-awh_NM?t=3023
プラグイン開発者から見るv1.0の活用法@joker1007https://youtu.be/kK80-awh_NM?t=4465
Embulk v0.9@dmikurubehttps://youtu.be/kK80-awh_NM?t=6321
Embulk、Presto、Sparkを用いたETL事情@kimutyamhttps://youtu.be/kK80-awh_NM?t=8100
Digdagを導入してみて@i_szynhttps://youtu.be/kK80-awh_NM?t=9062
Incubating Apache Hivemall@myuihttps://youtu.be/kK80-awh_NM?t=10035
Rails 5.2のActive Recordの改善@kamipohttps://youtu.be/kK80-awh_NM?t=12324
Method JIT Compiler for Ruby@k0kubunhttps://youtu.be/kK80-awh_NM?t=14099

PLAZMA TD Internal Dayの講演

講演タイトル発表者動画URL
PTD and beyond: A look at what Hadoop team have been up toJohanhttps://youtu.be/RzQT_9jcrx8?t=693
UDP: A New Partitioning Strategy accelerating CDP Workload@Lewuathehttps://youtu.be/RzQT_9jcrx8?t=1467
TDと弊社との軌跡川崎泰一(株式会社ファンコミュニケーションズ)https://youtu.be/RzQT_9jcrx8?t=3298
動画系メディア[DELISTH KITCHEN]の運用開発を支えるデータウェアハウスの活用事例島田雅年(株式会社エブリー)https://youtu.be/RzQT_9jcrx8?t=4239
Treasure CDPシステムアーキテクチャ: 10億ユニークデバイスをリアルタイム追跡するシステム構築@frsyukihttps://youtu.be/RzQT_9jcrx8?t=5565
Machine Learning and Natural Language Processing on Treasure CDP@takutihttps://youtu.be/RzQT_9jcrx8?t=7458
アサインナビのWEBアクセスログの活用事例 - Log visualization with BI tool & Advanced analytics with Python渡辺翔太(株式会社エル・ティー・エス)https://youtu.be/RzQT_9jcrx8?t=9314
Treasure CDP のユーザインタフェース構築に関するあれこれTsubasahttps://youtu.be/wdnNb3yZmro?t=483
Treasure Dataで構築したデータ分析基盤、この1年の振り返り戸井田明俊(株式会社リクルートマーケティングパートナーズ)https://youtu.be/wdnNb3yZmro?t=2557
消えゆくLegacy System ー Event Collectorの苦難と改善の歴史@komamitsu_twhttps://youtu.be/wdnNb3yZmro?t=4359
Planet-scale Data Ingestion Pipeline: Bigdam@tagomorishttps://youtu.be/wdnNb3yZmro?t=6060

トレジャーデータは2018年中に、虎ノ門、六本木、渋谷でも順次イベントを開催することを予定しています。次回は5月22日(火⁠⁠、23日(水)に虎ノ門ヒルズにて開催される予定です。ビッグデータ分析やデジタルマーケティングに少しでも興味をお持ちなら、同社の今後の活動に注目することをお勧めします。

おすすめ記事

記事・ニュース一覧