View
1.214
Download
3
Category
Preview:
Citation preview
MediaMind Data feed Analytics Infrastructure on
AWS
Yoshihiko Miyaichi
cyber communications inc.
はじめに
• Profile
– Yoshihiko Miyaichi
– General Manager, Platform Strategycyber communications inc.
– Facebook, Twitter, LinkedIn: miyaichi
• Session Agenda想定オーディエンス: 代理店の方や、3PASを实施している方
内容:MediaMindをはじめとする3PAS(第三者配信)は、複数の媒体出稿効果を理解するのに有効な手段である。しかしながら、深い分析をするには、大量のフィードデータ処理が必要で、ハードルが高い。しかし、AWSとTRESURE DATAのサービスを組み合わせて分析環境を構築すれば、大量のデータを安価に高速に簡単に扱えるようになる。
MediaMind data feed
• 3PAS(第三者配信)サービスを提供するMediaMindは、配信レポートUIを提供するだけではなく、ログデータ(Cookie Level Log Data)のフィードサービスを提供している。費用は配信費(CPM)の10%。
• データは4種類 1)スタンダードイベント・ローデータ、2)リッチイベント・ローデータ、3)コンバージョン・ローデータ、4)マッチフアイル・階層データ
• これらのログデータがあれば、プレイスメント毎のフリケンシー集計や、他の成果データと紐付けた深い分析などが可能となる。
分析の現場は
• ファインディングスには試行錯誤が必要。
• データを使った試行錯誤には、PowerPivotが欠かせないが、扱えるデータサイズは4GB、5,000万レコード程度。
• コンバージョンイベントなら良いが、インプレッションも対象とすると、扱うデータは5,000倍(CTR 0.2%)。
• 目的に合わせたETL(Extract/Transform/Load)が不可欠。
• 外注可能だがコストがかかるので、案件サイズに制限。
やりたくてもなかなかできない。
Pentahoの活用
• Pentaho Community Editionは無料。
• PCに簡単にインストールできる。
• GUIでETL処理を定義・实行。
• 40万レコード/日(zipで40M弱)なら、1ヶ月のデータ処理が2時間程度。
• 成果データなど、他の紐付けも容易。
とはいえ、データが増えたらどうする。
で、何が足りないのか
• 大量のデータを取り回すインフラ
– 取得・蓄積 Fetch, Archive
– 加工 ETL(Extract/Transform/Load)
– 処理 Query
Fetch, Archive
要件
• MediaMindのftp serverからログデータを取得。
• 適宜、S3/Gracerにアーカイブ。
EC2 + EBS + S3 (Glacier)が最適
• EC2(とりあえずマイクロ)、EBS(とりあえず1TB)、S3(とりあえず1TB)、Glacier。
• 月間費用は230USD程度。
• ftp serverの監視、ダウンロード、アーカイブは、shell scriptで。
月額230USD + スクリプト
Bucket
EC2
ftp
Glacier Archive
EBS
EMR
Bucket EMR
EC2
ftp
EBS
要件
• S3にアーカイブしたデータをEMRで処理。
• S3上にHiveが認識できる形でファイルを配置し、パーティションを構成する。
EMRで、Hiveを起動
• EMR(とりあえずエクストララージ15GBMem, 8ECU)を4台。
• 時間費用は0.48USD。
• クライアントPCからEMRにsshで接続し、HQLを实行。
• EventDateなどの日付をJSTに変換しておくといいのだが、パーティション作成までを考えると、色々面倒。
月額230USD + スクリプト+時間あたり 0.48USD
EMR(Hive)の起動とアクセス
$ elastic-mapreduce --create –alive --hive-interactive --name "Hive Session” ¥
--instance-type m1.xlarge --num-instances 4
Created job flow j-2TOYJYK51DYJY
$ elastic-mapreduce --ssh j-2TOYJYK51DYJY
ssh -o ServerAliveInterval=10 -o StrictHostKeyChecking=no hadoop@ec2-54-238-97-187.ap-northeast-1.compute.amazonaws.com
Warning: Permanently added 'ec2-54-238-97-187.ap-northeast-1.compute.amazonaws.com,10.121.9.96' (RSA) to the list of known
hosts.
Linux (none) 2.6.35.11-83.9.amzn1.x86_64 #1 SMP Sat Feb 19 23:42:04 UTC 2011 x86_64
--------------------------------------------------------------------------------
Welcome to Amazon Elastic MapReduce running Hadoop and Debian/Squeeze.
Hadoop is installed in /home/hadoop. Log files are in /mnt/var/log/hadoop. Check
/mnt/var/log/hadoop/steps for diagnosing step failures.
The Hadoop UI can be accessed via the following commands:
JobTracker lynx http://localhost:9100/
NameNode lynx http://localhost:9101/
--------------------------------------------------------------------------------
hadoop@ip-10-121-9-96:~$ hive
Logging initialized using configuration in file:/home/hadoop/.versions/hive-0.8.1/conf/hive-log4j.properties
Hive history file=/mnt/var/lib/hive_081/tmp/history/hive_job_log_hadoop_201309162032_1159926161.txt
hive>
TRESURE DATA
BucketEBS
EC2
Bulk Import
ftp
要件
• ダウンロードしたファイルをBulk ImportでTRESURE DATAに転送。
• CUI(TDコマンド)でHQLでデータ処理。
TRESURE DATA
• ビジネスアカウントは、容量が2TB、処理コア数は、8コア保証、他が空いていれば、32コアまでスケール。
• Bulk Importの際に、EventDateなどの日付をJSTに変換しておくとその後の処理がすべてJSTでできる。
• TRESURE DATAのビジネスアカウントは、月額3,000USD。
• クライアントPCにPentahoをインストールし、JDBCでTRESURE DATAと接続。
月額3,230USD + スクリプト
Glacier Archive
TRESURE DATAへのアクセス
$ td database:list
+-----------+------------+
| Name | Count |
+-----------+------------+
| mmdb | 1287225160 |
+-----------+------------+
1 rows in set
$ td table:listmmdb
+-----------+---------------------------------------+------+---------------+-----------+-------------+--------------------+------------+
| Database | Table | Type | Count | Size | Last import |Last log timestamp| Schema |
+-----------+---------------------------------------+------+---------------+-----------+-------------+--------------------+------------+
| mmdb | mm_cld_conversion_advertiser | log | 405,767 | 0.01 GB | | | |
| mmdb | mm_cld_standard_advertiser | log | 417,714,825 | 31.5 GB | | | |
+-----------+-----------------------------------------+-----+--------------+-----------+-------------+--------------------+------------+
2 rows in set
$ td query -dsmoj_vaio \
"SELECT t1.v[ 'UserID' ] AS userid
,t1.v[ 'PlacementID' ] AS placementid
,t1.v[ 'EventTypeID' ] AS eventtypeid
FROM
mm_cld_standard_advertiser t1 LEFT SEMI JOIN mm_cld_conversion_advertiser t2
ON t1.v[ 'UserID' ] = t2.v[ 'UserID' ]"
Job 4777827 is queued.
Use 'td job:show 4777827' to show the status.
4億レコードx 40万レコードの join で 40分弱
Pentahoを使ったETL設計
まとめ
• 3PAS(第三者配信)サービスを提供するMediaMindは、配信レポートUIを提供するだけではなく、ログデータ(Cookie Level Log Data)のフィードサービスを提供している。費用は配信費(CPM)の10%。
• ログデータは、ファインディングスにとっての宝の宝庫だが、インプレッションデータは、コンバージョンデータの5,000倍(CTR 0.2%)のサイズがあり、扱いにくい。
• AWSのインフラを使えば、ログデータを収集、分析するインフラが簡単に、安価に、構築できる。
• 更に、TRESURE DATAを活用すれば、より簡単に大規模なデータ分析が可能となる。
ご成長ありがとうございました。
Recommended