2013年1月29日火曜日

「0.1秒で行われるリアルタイムトレード マイクロアド」雑感

gihyoにWeb広告配信のインフラを探るという記事の第1回を見つけたので雑感。

またまたマイクロアド。最近エンジニア獲得のプロモーションに力を入れているなぁ。
以前のマイクロアドエンジニアインタビューをより深耕した感じかも。
(この記事に関するエントリ「マイクロアドのエンジニアインタビュー記事雑感」はこちら

データベースに関する部分を備忘録をメモ。


------
同社ではもともとデータストアとしてMySQLを使っていましたが,それが処理上のボトルネックになることが少なくなかったと言います。そこで導入されたのがKVSで,現在はMySQLとKVSであるKyoto Tycoonが使い分けられている。

ふむ。KVSは処理が速いのか。


「リレーショナルである必要のないもので,かつ高速に参照したいものをKyoto Tycoonに入れています。具体的には,Webサイトを閲覧するユーザの属性情報などですね。
一方MySQLは,MicroAd BLADEを使って広告配信を行っている企業が設定した情報などの記録に利用しています(元井氏)」
つまり,パフォーマンスが求められるデータはKyoto Tycoon,信頼性が重要であるものはMySQLと,両者の特性に合わせて使い分けているわけです。

何か、ここらへんのDB構成は、どのDSPでも基本同じなのかな?
以前のエントリでも書いた様に、フリークアウトも同じだった気がするので。

レプリケーションできないデータ量を扱うものは,フロントサーバからリクエストを受ける必要があります。これを実現するために導入されたのがKVSであるKyoto TycoonやFusion-ioのioDriveだったというわけです。

このインフラ構成もフリークアウトと似た様な感じだった気がする。
図2 MicroAd BLADEのインフラ構成概要,フロントサーバにデータを複製している
MicroAd BLADEでは,ネットユーザの性別や居住地域,年代といったデモグラフィック情報や,広告主サイトへの興味の度合い,あるいは広告と各Webページの相性などの情報を利用し,RTBの入札内容を決定している

広告とWebページの相性って重要な要素だよな。
色々とヒアリングしていると、メディア側ってあまりここを考慮していない気がする。

膨大な情報の集計に使われているのがHadoopで,そこで解析した結果をKyoto Tycoonに取り込み,配信プログラムから参照しています。その具体例の1つにリターゲティング広告と呼ばれるものがあります。
収集したログをHadoopで1~2時間ごとに解析しています。ユーザの行動ごとに配信方法を選べ,たとえばWebサイトのトップページにアクセスした人全員に広告を配信,あるいは詳細ページに3回以上アクセスしたが商品購入はしていない人に広告を配信するといった,広告主の希望に応じたリターゲティング広告を実現しています。

配信プログラムっていうのが各DSPの差別化ポイントなんだな。
ていうか、Hadoopで1~2時間毎の解析してるんだ。
ここのデータ呼び出しとかの時間のボトルネック解消の為に上記の様なインフラ構成なのかな。
------


なかなか勉強になった。
インフラまわりもきちんと情報収集しないといかんなぁ。




















0 件のコメント:

コメントを投稿