Treasure Dataの新機能(Data Tank)をAudienceOneのレポート機能で利用した話


Data Tankとは?

Treasure Dataの新機能でTreasure Dataのプラットフォーム上に構築されたデータマートです。
Tableau等のBIツールとの接続を想定されており、AWSでいうところのRedshift的なものだと考えるとわかりやすいかと。
Data TankはPostgresql9.4をベースに拡張にされており、ストアドや9.1から追加されたForeign Data Wrapperも利用可能になっています。

AudienceOneについて

AudienceOneは、いわゆるDMP(Data Management Platform)で、どちらかというと、Public DMPに分類されています。
基本的な機能としては、Webデータの収集や分析、セグメンテーション、外部データ(3rdPartyデータ)との掛け合わせ分析、また、セグメンテーションしたデータをDSPなどの配信システムと連携する、といった機能を備えています。
詳しくはこちらを御覧ください

Data Tankの利用について

AudienceOneでは10/8のアップデートで複数のセグメントの重複率の分析を行うレポートでData Tankを活用しました。
最初に実際のレポートUIを見たほうがわかりやすいと思うので説明すると、
以下のようにベン図を用いて任意のセグメントについての重複率や重複ユーザ数の分析を行うことができます。
データについては大きいものでも数秒で出力することができます。

aone_report_1008

このレポートに使用しているデータは実に単純で、各セグメントA,B,Cに対して集合演算(A∩B、A∩C、B∩C、A∩B∩C)を行っているだけです。

ロジック自体はとても単純なんですが、AudienceOneには全体で4億以上のCookieデータがあり、10万を超えるセグメントがあります。
ユーザ x セグメントで直近1ヶ月を対象にすると、約120億レコードにもなります。
なので、事前にすべて組み合わせの集計をやろうと思ってもなかなか大変です。というより無理でした。。
とはいえ、非同期でやってしまうとスピーディーな分析ができず、PDCAサイクルを高速でまわすことができなくなってしまいます。

アドホックにセグメント間の重複分析できるようにするためにData Tankを利用しました。

システム構成としてはざっくりですが、以下のようになっており、Treasure Data上にあるログデータやAudienceOneで推計しているデモグラフィックデータなどをまとめてHiveQLで中間集計を行い、その結果をData Tankに出力しています。
そしてAudienceOneのコンソールから直接Data Tankに接続してデータを取得しています。

aone_datatank

データ量としては、HiveQLで処理するデータが上記で書いた通り約120億レコードで中間集計を行った結果が1,000万弱のレコード数となっています。
HiveQLの実行からData Tankに入れるまでの処理時間はだいたい1~2時間くらいです。

中間テーブルのデータの持ち方が一番工夫したポイントなので、具体的なテーブルの構成についてはご紹介できませんが、当初はRedshiftでの構築を検討していました。
ところが、ご存知のとおりRedshiftでは使える関数が限られており事前に考えた方法での実現が難しく、ちょうど困っていたところでData Tankを紹介いただいて、今回採用に至りました。

パフォーマンスについては、Data Tankの採用を決める前にちょっとだけやってみましたが、Redshiftと同等、ないしはData Tankのほうが早かったです。
もちろん、データ量やデータの内容、クエリによって全然異なると思いますが。
今回の採用した一番のポイントはPostgresqlの関数がすべて使える、という点だったのでまだちゃんと検証できていないというのが本音です。
個人的にはData Tankを利用することでTreasure Dataのプラットフォームですべて完結できるってのもいいなと思いました。

今後について

現状、Treasure Data+Redshift+Tableauという構成で構築しているものもあるので、
Treasure Data+Data Tank+Tableauとの比較検証もしてみたいと思います。
また、今後も継続してAudienceOneのレポート機能を拡充していくので、うまく活用したいと思っています。
Foreign Data Wrapperも今回利用しなかったので、マスタデータとの突合など機会があれば利用したいと思います。

おまけ

弊社ではエンジニアの募集もしておりますが、学生エンジニアインターンの募集もはじめました。
興味ある方がいればぜひ!
ネット広告業界のプロを目指したい、学生エンジニアインターンWanted!


DACエンジニア採用情報

  関連記事

20140930220910
AudieneOneでアドブロック利用者を抽出する訪問者セグメントを作ろう

はじめに iOS 9のコンテンツブロッカーによって盛り上がったアドブロック論争。アドブロック自体はPCブラウザ用プラグインで昔からできていたことなのですが、さらに普及していくのかもしれません。 アドブロックの仕組みが普及するのはインターネット業界全体の損失につながりかねない話ではあるのですが、その一 …

Chrome
アドブロッカーに対抗してアドチェッカーを作ってみた

iOS9のSafariでコンテンツブロック機能が登場し、サイト上の広告を非表示にするアドブロックの存在が世に広まりました。 これを機にCrystalを始めとする数々のアドブロッカーアプリが登場しています。 PCブラウザでもAdblock Plusを始め、ブラウザの拡張機能で広告を非表示にして表示速度 …

Apple-Releases-Safari-10-Developer-Beta-3-for-OS-X-Yosemite-and-El-Capitan
Safari10(iOS10)のインライン動画再生についてまとめてみた

はじめに Safari10からvideoタグを用いたインライン動画再生ができるようになったので、挙動を調べてみました。 Safari 10.0 検証環境 項目 詳細 開発環境 Xcode8.0 検証端末 iPhone7 Simulator ブラウザ iOS Safari / UIWebView / …

SCA_and_Discovery_after_return_to_flight,_2005
【DMP】ピギーバックってなに

アドテクに関わる方であれば、よく耳にするであろう「ピギーバック」をシンプルに説明してみようと思います。 「piggyback/ピギーバック」は 「おんぶ」「背負う」に当たる言葉です。 アドテクでピギーバックというと、タグのピギーバックのことを指すことが多いように思います。 タグは、サイトに導入する小 …

big-brother2
オトナの常識、消費者プライバシー保護(後編)

プライバシーが保護されていると期待できなくなってしまった国とは? 『オトナの常識、消費者プライバシー保護(前編)』はこちらから             正解はアメリカです。 スノーデン事件といえば、ご存じの方もいらっしゃるかと思います。 & …

cookie
【DMP】クッキー連携ってなに

  アドテクに関わる方であれば、必ず耳にするであろう「クッキー連携」をシンプルに説明してみようと思います。 クッキー連携は cookie sync(クッキーシンク、cookie synchronization の略)と呼ばれることも多いです。 Googleは cookie matching …

hashed_potato
【DMP】IDのハッシュってなに

アドテクに関わる方であれば、よく耳にするであろう「ハッシュ」をシンプルに説明してみようと思います。 とはいえ「ハッシュ」は広いので、ここでは「IDのハッシュ」に焦点を当てます。 「ハッシュ/hash(動詞)」はそもそも「細切れにする」というような意味を持ちます。(名詞だと「細切れのもの」) ハッシュ …

no image
【動画広告】VASTって何?

こんにちは、FlexOne推進部の近江です。 私は新卒入社2年目でアドサーバーや動画ソリューション(OVP)のサポート、開発を担当しています。 今回は動画広告のプロトコル「VAST」について書かせて頂きます。   ここ数年動画のくるくる詐欺がありましたが、昨年はHulu、ユーチューバー、見 …

redshift
Amazon Redshiftのパフォーマンスチューニング #1 アーキテクチャ概要

ご挨拶 こんにちは。システム開発部の中村です。 現在新卒入社2年目で、普段は受託開発の要件定義等の業務が主担当だったりします。 このブログの発起人というか、まあ言い出しっぺという事で初稿を上げさせて頂きます。 今回はAmazon Web ServiceのDWHサービス、Redshiftのパフォーマン …

14391226325_8c35c2a652_z
D3.jsとその活用事例について

D3.jsとは? D3とは「Data Driven Document」の略で、データに基づいてドキュメントを操作するための JavaScript ライブラリです。 ご存知の方も多いと思いますが、ちょっとだけD3.jsの基本的な使い方、そして弊社プラットフォームでの利用についてご紹介したいと思います。 …