トレジャーデータ株式会社について(for all data_enthusiast!!)
DESCRIPTION
TRANSCRIPT
1
トレジャーデータ株式会社 2014/06/10
Takahiro Inoue (Chief Data Scien:st) taka@treasure-‐data.com
2
1. Introduc:on 1) 会社概要 2) 製品概要
2. Data Collec:on 3. Data Storage 4. Data Management 5. Data Processing
1) バッチクエリ 2) アドホッククエリ(TQA)
6. Data Mart 7. Data Visualiza:on
1) Metric Insights 2) Tableau
アジェンダ
5. Data Processing
7. Data Visualiza5on
3. Data Storage
2. Data Collec5on
Data Source
6. Data Mart
3
1. Introduc:on
4
1-‐1. Introduc:on – 会社概要
Big Dataの収集・保存・分析を一手に行う、業界初の
クラウドデータサービスを提供 • すぐ利用可能なクラウドサービスとしての提供を行う
• シンプルな機能セット,手厚いサポート
• 日米大手企業中心に、現在百数十社の企業顧客(メディア・広告、ゲーム、
自動車、小売等幅広い利用事例)
大手調査企業、メディアも注目 • “Cool Vendors in Big Data” 2014
(米 大手IT調査会社Gartnerが選定する世界4社中1社*)
• “Trend SeSng Products” (Database Trends and Applica:ons)
• “5 Hot Big Data Startups” (Enterprise Apps Today)
*出典:ガートナー 「Cool Vendors in Big Data, 2014」 堀内秀明 他共著、2014年4月28日 ガートナーは、ガートナー・リサーチの発行物に掲載された特定のベンダー、製品またはサービスを推奨するものではありません。また、
高の評価を得たベンダーのみを選択するようテクノロジの利用者に助言するものではありません。ガートナー・リサーチの発行物は、ガートナー・リサーチの見解を表したものであり、事実を表現したものではありません。ガートナーは、明示または黙示を問わず、本リサーチの商品性や特定目的への適合性を含め、一切の保証を行うものではありません。
5
会社概要
芳川裕誠 – CEO Open source business veteran
太田一樹 – CTO Founder of world’s largest Hadoop Group
Jeff Yuan – Director, Engineering LinkedIn, MIT / Michale Stonebraker Lab
Rich Ghiossi – VP Marke:ng VP Marke:ng, ParAccel and HP
主要投資家概要
Bill Tai Charles River Ventures, Twiderなどに投資
まつもとゆきひろ Ruby言語開発者
James Lindenbaum Heroku創業者
Sierra Ventures – (Tim Guleri) 企業向けソフト・データベース領域での有力VC
2011年12月、米Mountain Viewにて創業 • 従業員約50名(著名データベース技術者が多数所属)、
東京丸の内に日本支社
• Yahoo! Inc.創業者Jerry Yang氏を含む有力投資家・VCより約800万米
ドルを資金調達済
• 2012年後半に商用サービス提供開始
主要メンバー概要
Jerry Yang Yahoo! Inc. 創業者
古橋貞之 – Sofware Engineer MessagePack, Fluentd開発者
6
ガートナーの “Cool Vendor in Big Data” に選ばれました
“Why Cool: トレジャーデータは、データの取得、保存、分析に対応するクラウド型ビッグデータソリューションをエンドツーエンドのマネージドサービスとして提供しています。 トレジャーデータのユニークな特徴の一つはデータ収集ソリューションです。” !“Who should care: 大量のデータを管理するリソースやスキルが十分確保できない企業はこのベンダーからの提案を検討するとよいでしょう。”!
ガートナーは、ガートナー・リサーチの発行物に掲載された特定のベンダー、製品またはサービスを推奨するものではありません。また、最高の評価を得たベンダーのみを選択するよう テクノロジの利用者に助言するものではありません。ガートナー・リサーチの発行物は、ガートナー・リサーチの見解を表したものであり、事実を表現したものではありません。ガートナーは、明示または黙示を問わず、本リサーチの商品性や特定目的への適合性を含め、一切の保証を行うものではありません。
7
エンジニアリングチーム
高い技術力で、 Fluentd/Hadoopの他にも様々なOSSへの貢献
名称
MessagePack 多言語シリアライズライブラリ
Javassist Javaバイトコード生成ライブラリ
Huahin Framework
Hadoop MapReduce向け 汎用ライブラリ
D Language D言語
ZeroMQ Java版 ZeroMQ の実装 (jeromq)
Angular.JS JavaScript MVW フレームワーク
エンジニア自身がサポート業務も担当。 プロダクトへのPDCAサイクルの高速化を意識した体制。
8
1-‐2. Introduc:on – 製品概要
9
Treasure Data Service とは
ビッグデータの収集・保存・分析をワンストップで提供する、 業界初のデータマネジメントサービス(DMS)
“データ解析の世界をシンプルにしたい”
収集 保存 分析
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
10
Treasure Data Service
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
収集・保存・分析をワンストップに、柔軟なインターフェイスで提供。
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS
11
サービスポジショニング
自社 データ
センター
構造化データソース (取引履歴、会計、個人情報、etc)
非構造化、新しいデータ・ソース (Web、センサー、デバイス、etc)
マーケティングクラウド (DMP)
アプリケーションログのレポーティング、分析
センサーデータ/M2M Internet of Things
クラウド
自社データセンターで 保存・解析するには
コスト・人材面でマッチしない
セキュリティ/法律上 クラウドにデータが
上げられない事が多い
補完関係
12
実装の早さ、本質的な作業に集中
• 既存のデータウェアハウスの実装プロセス
• Treasure Dataのクラウドサービス
Data Collection ETL Data Warehouse BI/Reporting
6ヶ月 ~ 1年, 5-10億円+maintenance, ベンダーロックイン
Data Collection ETL Data Warehouse BI/Reporting
2 – 3週間
月額課金制での支払い
既存のBI/Reportingが利用可能
13
Q. データサイズが100億件/100GB以上?
Q. スキーマ/集計軸が月に一回以上変わる?
No
Q. スキーマ/集計軸が月に一回以上変わる?
Q. 集計データをクラウドに置ける?
Q. 集計データをクラウドに置ける?
Q. 集計データをクラウドに置ける?
Q. 集計データをクラウドに置ける?
Redshif
No
Yes No
No
クラウド環境 ローカル環境
オンプレミス
Quick Guide
14
2. Data Collec:on
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
15
Data Collec:on
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS Focus!
16
データソース
多い 少ない (データ量)
クローズ
オープン
(データの 機密性)
個人情報
財務・会計情報
オープンデータ
センサーデータ アクセスログ アプリログ システムログ
POSデータ
(RDB内) トランザクションデータ
デバイスデータ
クラウドOKなデータソースに対応
ccv ユーザー行動解析
M2M, Internet of Things
マーケティングクラウド(DMP)
17
Treasure Data Cloud
新しいデータソース 従来のデータソース
• 「新しいデータソース」 = 各自のアプリケーション
から Treasure Library を通して取得するデータ。 • 例:Heroku アプリケーションログ(Heroku
Plugin)・ソーシャルゲームログ・モバイルデバイ
スログ・センサーデータ・etc…。 • これらのデータはデータ量が変化しやすく,また
既に取得項目が構造化されている。
• 「従来のデータソース」 = 既に過去に蓄積され,
データベースなどに保存されているもの。 • 例:POSデータ,Site CatalystやMedia Mindなど
の分析ツールが裏で保持しているローデータ。 • 試験プロセスとして過去の特定の期間のデータ
をアップロードする場合。 • これらのデータは Bulk Import ツールを用いた
並列インポートで効率良く一気にクラウドスト
レージに送る。
2種類のインポートメソッド
Webログ
Appログ
センサー
Treasure Agent
ストリーミング ログコレクター
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
POS
18
並列バルクアップローダー
Treasure Data
Cloud
RDBMS App SaaS
FTP
CSV, TSV, JSON, MessagePack, Apache, regex, MySQL, FTP
Bulk Loader
Prepare > Upload > Perform > Commit
19
新しいデータ: “Event Based Logs”
# Applica:on Ruby Code ... # Post event to Treasure Data TD.event.post(’login', { :uid => 123, :device => ’smart phone’ ::me => 138959673 }) ... TD.event.post(’pay', { :uid => 123, :name => ’ItemA’, :sub_category => ’a’, :category => A, :count => 2, :price => 300, ::me => 138959673 }) ... TD.event.post(’invite', { :uid => 123, :invited_uid => 456, :campaign_name => ’invite_event_2’, ::me => 138959673 })
For Social Game Analy:cs # HTML Source ... # Post event to Treasure Data TD.event.post(‘login', { ‘uid’ : get_session(), ‘:me’ : 138959673 }) ... TD.event.post(’conversion', { ‘uid’ : 123, ‘conversion_id’ : ’conv_1’, ‘referer’ : ’www.top.html’, ‘:me’ : 138959673 }) ... TD.event.post(’add_cart', { ‘uid’ : 123, ‘product_name’ : ‘book1’, ‘cart_id’ : 1, ‘:me’ : 138959673 }) ... TD.event.post(’subscribe', { ‘uid’ : 123, ‘mail’ : ‘[email protected]’, ‘plan’ : ‘$300’, ‘:me’ : 138959673 })
For Web Analy:cs
Treasure Data Library Java, Ruby, PHP, Perl, Python, Scala, Node.js , JS Tag Library
20
# Java Code ... # Post event to Treasure Data TD.event.post(’igni:on_on', { ‘uid’ : 123, ‘longitude’ : 135, ‘la:tude’ : 36, ‘odometer’ : ‘100km’, ‘room_temperature’: 24 ‘last_igini:on_off_:me’ : 138959000, ‘:me’ : 138959673 }) ... TD.event.post(’airbag_on', { ‘uid’ : 123, ‘longitude’ : 135, ‘la:tude’ : 36, ‘:me’ : 138959673 }) ... TD.event.post(’pedal_accelerator', { ‘uid’ : 123, ‘longitude’ : 135, ‘la:tude’ : 36, ‘speed’ : ‘70km/h’, ‘accelera:on’ : ’1m/s^2’, ‘:me’ : 138959673 })
For Telema:cs Analy:cs # HTML Source ... # Post event to Treasure Data TD.event.post(‘pay', { ‘uid’ : get_session(), ‘price’ : 1000, ‘genka’ : 800, ‘area’ : ‘Tokyo’, ‘:me’ : 138959673 }) ... TD.event.post(’post_comment', { ‘uid’ : 123, ‘item_name’ : ’itemA’, ‘ra:ng’ : 4, ‘comment’ : ‘使いやすくてTD 高です!’, ‘:me’ : 138959673 }) ... TD.event.post(’visit_from_affiliate', { ‘url’ : ‘www.hoge.com’, ‘affliate_url’ : ‘www.sale.com’, ‘session_id’ : get_session(), ‘:me’ : 138959673 }) …
For EC Analy:cs
Treasure Data Library Java, Ruby, PHP, Perl, Python, Scala, Node.js , JS Tag Library
新しいデータ: “Event Based Logs”
21
ストリーミングログコレクター:Treasure Agent
Treasure Data Cloud
# Application Code ... ... # Post event to Treasure Data TD.event.post('access', {:uid=>123}) ... ...
Treasure Data Library Java, Ruby, PHP, Perl, Python, Scala, Node.js
Applica:on Server
Treasure Agent (local)
• Automa:c Micro-‐batching • Local buffering Fall-‐back • Network Tolerance
22
Project
• Treasure Data のデータコレクタ部分は、オープンソース化 – 2013年、国内外で広く浸透 – 世界中でデータを解析可能な形で収集するのに一役買っている
"We utilize Fluentd to collect a very large amount of logs. The logs are written into Hadoop HDFS clusters, and are also used to analyze various service statuses in realtime. We also use many plugins from rubygems.org to further enhance this mechanism." Fluentd is very similar to Apache Flume or Facebook’s Scribe [but] it’s easier to install and maintain and has better documentation and support than either Flume or Scribe”
"We use Fluentd to collect massive data logs for our platforms. Having developed a system based on Fluentd, we are now effectively monitoring and analyzing our services in real-time. We are very much satisfied with its flexibility, especially how easy it is to use in tandem with other systems."
Fluentd オープンソースプロジェクトのユーザー例
23
Before Fluentd: M x N 通りのデータ収集・活用方法
24
Afer Fluentd: M + N 通りに経路を集約して簡素化
Nagios
MongoDB
Hadoop
Alerting
Amazon S3
Analysis
Archiving
MySQL
Apache
Frontend
Access logs
syslogd
App logs
System logs
Backend
Databasesfilter / buffer / routing
25
まとめ
ストリーミングログコレクター 並列バルクアップローダー
• ほぼリアルタイムにログの収集が可能。 • あらゆるデータソースを接続口として持
つ(Fluentd In-Plugin)。 • あらゆるアウトプット形式に対応
(Fluentd Out-Plugin)。 • 定常的にネットワーク帯域を使える。 • ネットワークの遅延などにより,多少の
データロストがある場合がある。
• 数十GB〜数TBの大規模データに対応。 • 並列処理で高速にアップロード。 • データのロストが無く安心。
• これから取得するデータはストリーミング • 既に蓄積している数年分のデータは並列バルクローダー
26
3. Data Storage
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
27
Data Storage
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS
Focus!
28
Treasure Cloud Storage
5me v
1384160400 {“ip”:”135.52.211.23”, “code”:0}
1384162200 {“ip”:”45.25.38.156”, “code”:-‐1, “url”:”www.treasure.com”}
1384164000 {“ip”:”97.12.76.55”, “code”:99,”length”: 2}
Default (schema-‐less)
Schema applied ~30% Faster
• “スキーマレス” な JSON形式で保存 – 変更されたスキーマも既存の
テーブルへの保存が可能。 • 列指向データベースを採用。 • スキーマを定義する事でパフォーマ
ンスが大幅に上昇。 • 特に時間をキーにしたフィルタリン
グに強み。 • 「容量を気にすることなく,あらゆる
データをとにかく蓄積していく,必要なことものはそれから考えましょう」
*スキーマを定義することでパフォーマンスが 大幅にアップ。
5me ip: string code: int url: string Length: int
1384160400 135.52.211.23 0 null null
1384162200 45.25.38.156 -‐1 “www.” null
1384164000 97.12.76.55 99 null 2
29
Treasure Management Console によるデータ管理
Database Table
指定したDB名,Table名に対してHive (SQL-Like) Query を実行することによりデータの抽出および集計がストレージに対してダイレクトに行える。
New Query
30
Try & Error Itera:on:中間データをどこに保持するか
自社 データ
センター
ローデータ,クラウドに上げられないデータ
ローデータ,フィルタ済データ, 分析用中間データ,tempデータ
ローデータ
- フィルタ済データ
- 分析用中間データ - データキューブ
クラウド
様々な Try And Error の末に保存対象となったナレッジデータのみローカルに保存することでコスト減。
- テンポラリデータ 中間データ群を自社データセンターに保存するだけで大幅なコスト。
Try & Error Itera:on
31
データソースA データソースB
データソースC データソースD
データ連携
データ連携によってより高度で多様な分析
が可能になる。
データ横断分析
32
データ横断分析例:中古車相場データの連携
Car Sensor : B to C の中古車相場
業者間オークション : B to B の中古車相場
個人間オークション : C to C の中古車相場
新車カタログ : 新車価格,車両情報
レビューサイト : 車両レビュー
業者が卸してから販売 する際のマージンに注目
新車からの値落ち率と年式等との関係に注目
業者の販売値と個人間の販売値との乖離 = (整備・保証料) に注目
レビューの高さと中古車相場の関係に注目
33
データ横断分析例:複数のオンラインゲームを横断
複数ゲームのKPIを一覧できるダッシュボード:Metric Insights
34
The Internet of Things(IoT)
ログデータ
センサーデータ
The Internet of Things “モノのインターネット”
35
テレマティクスとは
• Telecommunica:on(通信) + Informa:cs(情報科学) – 自動車などの移動体に通信システムを組み合わせて、リアルタイム
に情報サービスを提供すること
• モダン・テレマティクスデータの特徴 – 車両のID(車載機)と、運転者のID(スマートフォン)を別々に管理す
ることができるため、どの車に誰が乗ったかを自動的に判別可能。
– 拡張性:車載器だけでなく,スマートフォンからも詳細なデータ取得
が可能に。モニターやカメラ、加速度センサーなど、スマートフォン
に搭載されているデバイスであれば、ハードの追加無く拡張可能。
並列アップロード Bulk Import
ストリーミングアップロード"Treasure Agent
36
Telema:cs Data Analysis 自動車保険: -‐ 走行距離連動型保険 -‐ 運転の雑さを指標化
電気スタンド需要 -‐ 駐車が多い施設の特定
電気自動車需要 -‐ 一回の走行距離・距離が 少ないエリアの特定
渋滞予測システム -‐ 車速や単位当たりの移動距離 から渋滞エリアを特定
-‐ 緯度・経度 -‐ アクセルON/OFF -‐ イグニッションON/OFF -‐ 車速・燃費
37
4. Data Management
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
38
Data Management
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS
Focus!
39
2つのデータマネジメントツール
Treasure Command Line Tools ( for Engineer )
Treasure Management Console ( for Analyst, Decision Maker )
• 豊富なコマンド群を通じて詳細な情報を得
ることが可能。
• シェルスクリプトなどと合わせて自動化が
できる。
• UIでなくコマンドラインでないと落ち着かな
いエンジニア向けに。
• Web UI からデータベースおよびテーブル
の状況を把握できる。
• 各テーブル内のデータサンプルを素早く
参照できる。
• クエリの記述・実行もここから可能。
• さらに Treasure Viewer によってすぐにグ
ラフ化することが可能。
Management Console の登場によって,より多くのアナリスト・意思決定者自身がCloud Databaseに触れる機会が増える。
40
Treasure Command Line Tools
41
Treasure Management Console
Treasure Data Serviceにサインアップした全てのユーザーにWeb上のマネジメントコンソールを提供。ここからあらゆるデータ操作が可能に。
42
データインポート
43
44
データベース一覧
データベースの一覧。データベース名,作成日,更新日の一覧。各データベース名をクリックすることでテーブル一覧へ。
45
テーブル一覧
特定のデータベースのテーブル一覧。レコード数,圧縮後のデータサイズ,更新日,作成日。各テーブル名をクリックすることでレコードの取得が可能。
46
レコード参照
特定のテーブルに格納されているレコードを参照できる。
47
ジョブ管理
現在実行されている・終了したジョブの一覧。クエリ内容やStatusの確認が可能。実行中・失敗・スロークエリの特定も可能。
48
ジョブスケジューリング
定型のバッチクエリはCRONライクな設定方法で,容易にスケジューリング可能。
49
レコード数やコア数のU:liza:on
現在のデータ使用状況・コア数等を表示するUtilization。
50
5. Data Processing
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
51
Data Processing
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS
Focus!
52
Big Data Infrastructure Big Data のインフラ構築は様々な技術レイヤーの深い理解が必要。 内製をすると多大な構築コストと人材コストは免れられない。
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
O/S
Hardware
Networking
Storage Layer
Frameworks
Processing Engines
Applica:on Interfaces
Streaming Collec:on Batch Collec:on Business Rules Data Integra:on Consump:on / Analy:cs
53
Hive
Pig
MapReduce
Dashboard
BI Tools
Data Analysis
Data Insight Deep
Date, Product Category, Area User Id
Granularity
Small
Auto
What Helps?
Human Decision
Machine Learning
Data Mart Aggregator Business Goal Batch Process Ad-‐hoc Process
Their Own Products
Enterprise
Open Source
Impala
Database
Cube
File / HDFS
Batch
Ad-‐hoc
分析にはビジネスゴールに応じたAggregator を用意する必要がある。
54
Data Insight Deep
Date, Product Category, Area User Id
Granularity
Small
Auto
What Helps?
Human Decision
Machine Learning
Dashboard
BI Tools
Data Mart Aggregator Business Goal Batch Process Ad-‐hoc Process
Batch
Ad-‐hoc
SQL-‐like
Que
ry Language
Database
Cube
File / HDFS Data Analysis
Treasure Batch Query (Hive)
Treasure Query Accelerator (Presto)
New!!
Treasure Scripted
Query (Pig)
Scrip
t
多段MapReduce
Treasure では用途に応じた Aggregator を全て用意。
55
Step 1 Step 2 Step 3
現状の可視化
定時レポート
原因探索
アドホック分析
改善
?
分析の基本 3 Step
大規模データ 全体を集計
中・小規模データ を抽出
Hive (バッチクエリ)
判断やアクションを行える 情報を生成可能
Treasure Query Accelerator (アドホッククエリ)
56
バッチ / アドホック型クエリ比較
バッチ型クエリ アドホック型クエリ
SQL-‐style Query Language -‐ ラーニングコストが低い -‐ 参考になる情報が溢れている -‐ Join, Group by, Where の概念は馴染み
やすい
〃
JDBC/ODBC Driver -‐ 多数のBIがJDBC/ODBCに対応 -‐ それ以外のBIでもコネクタを作る事が
可能
Yes! Interac5ve!! -‐ インタラクティブな操作が実現 -‐ クリック・ドラッグ操操作で直接
Treasure Cloud Storage へアクセスが
可能に
For R/Excel/SPSS -‐ 解析に必要なデータセットの抽出 -‐ Hiveの出力データ構造と解析ツールの
入力形式の親和性が良い -‐ 入力データ抽出→解析→入力データ修
正→… のイテレーション
For Automa5c System -‐ リコメンドエンジンや広告配信システム
など,常に結果を参照し続けるシステム
に対応
Monitoring
BI Tools
Data Analysis
57
バッチ型クエリ アドホック型クエリ
定時レポーティング • 顧客向けの定時パフォーマンスレ
ポーティング • 1時間に1回の更新、確実に終わら
せる事が重要
配信 適化 • 接続しているアドネットワークのパ
フォーマンスをリアルタイム集計 • 集計結果から広告配信のロジックをリ
アルタイムに 適化
定時レポーティング • 社内 / 子会社 / 経営層向けの定期
パフォーマンスレポーティング • 大量のKPIを定義し、毎日 / 毎時確
実に終わらせる事が重要
サポート業務効率化 • ユーザーからのサポートリクエストに
応じてその場でデータを集計 • サポートのレスポンス・対応業務を効
率化し、ユーザーの満足度向上に繋
げる
定時レポーティング • POS・Webサイト解析システム・タッ
チパネルシステムから上がってくる
データの定期レポーティング • 毎時確実に終わらせる事が重要
即時バスケット分析 • 過去数年分、数百億件のデータから、
その場でバスケット分析を実行可能 • 商品開発のミーティングの中で、過去
データを参照。データを元にした商品
開発活動を開始
オンライン広告
Web / Social
リテール
58
6. Data Mart
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
59
Data Mart
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS
Focus!
60
参照
集計済
結合
ー
蓄積
続
生
ー
DB1
DB2
DB3
Joined Data
集計・フィルタ済データ
Treasure Cloud Storage
バッチ集計 Visualiza:on
アナリスト
「バッチ」と「アドホック」のギャップ
バッチ型の大規模集計とアドホック型のフロントエンドの要求には大きな「ギャップ」がある。 バッチ集計ではどんなに早くても10秒の処理時間がかかり,アド
ホックに処理結果を得たい場合の1秒以内レスポンスの要請を満たすことはできない。
アドホック処理
61
「バッチ」と「アドホック」のギャップ
Data Processing
Data Visualiza:on
Data Storage
Data Collec:on
Data Source
Data Processing
Data Visualiza:on
Data Storage
Data Collec:on
Data Source
Data Mart
アドホック 処理
バッチ 処理
GAP
62
参照
集計済
結合
ー
蓄積
続
生
ー
DB1
DB2
DB3
Joined Data
集計・フィルタ済データ
Treasure Cloud Storage
バッチ集計 Visualiza:on
アナリスト
Data Mart
元データに対して直接アクセス
Data Mart と TQA の介在で双方のギャップを埋めることが可能に。
アドホック処理
TQA
クラウド環境
Redshif
ローカル環境
File
元データに対して 〜 1/100 のデータ規模
63
TQA
元データに対して 1/100 〜 のデータ規模
出力が1レコード:合計・個数(PV, 売上, etc)など,日別→月別へ切り替
え時に再集計を必要としない集計
数値
リスト
出力がリスト:ユニーク数・平均・移
動平均など,日別→月別へ切り替
え時に再集計を必要とする集計
出力が可変:生データに
対するアドホックな集計
←↓中間データとはいえ,数100GB〜のデータサイズに増大する可能性のあるケースが増えてきている。
←特定の期間の結果など,(現在のデータ量ではなく)将来のデータの増加量が抑えられるケース。
Data Mart (中間データストレージ)の分類
※TQA は「クエリエンジン」であって「データベース/ストレージ」では無い。
64
7. Data Visualiza:on
KPI
データ可視化・共有
分析ツール連携
他製品連携
RDBMS, Google Docs, AWS S3, FTP Server, etc.
Metric Insights, etc.
Tableau, Dr.Sum, Power BI, Excel, etc.
65
Data Visualiza:on
Result Output クエリ結果自動書込
データ収集 データ分析 データ保管
データ集計 SQL, Pig
ストレージ Flexible, Scalable, Columnar
Storage
バッチ型 分析
アドホック型 分析
分析エンジン Hadoop, Treasure Query Accelerator
データ抽出 REST API
ODBC/JDBC (SQL, Pig)
Webログ
Appログ
センサー
CRM
ERP
RDBMS
TD Toolbelt
並列バルク アップローダー
Treasure Agent
ストリーミング ログコレクター
POS
Focus!
66
7-‐1. Learning Data Visualiza:on
67
Visualiza:on Types(入力データに基づく分類)
Raw Data
Aggregated Data
Cross Tables
Analyzed Data
Scader Plot
Map Plot
Math Graph
2-‐Dimensional Graph
N-‐Dimensional Graph
Sta:s:cal Graph
どのプロセスでの可視化を行いたいのか,で可視化の種類は変わってくる。
Scader Plot(散布図) (for Rawdata)
データレコードの任意の数値変数2項目をプロットし,関係を発見する。
Map Plot (for Rawdata)
位置情報(緯度,経度)を持つデータポイントを地図上にマッピングし,データの密集度などを参考にする。
Math Graph (for Rawdata)
データの「関係」を数学的グラフによって表現。
68
Raw Data Explana:on
2-‐Dimensional Graph (for aggregated data)
主に X-‐軸,Y-‐軸 (,Y2-‐軸)を用いて表現される,バーグラフや円グラフなどの平面チャート。
N-‐Dimensional Graph (for cross tables)
X-‐軸,Y-‐軸,Z-‐軸 を用いて表現されるグラフ。Z-‐軸は半径や色,奥行き,凡例などによって表現される。
Sta:s:cal Graph (for analyzed data)
統計分析によって導いた分布やモデル,パターンなどを図示する。
69
Processed Data Explana:on
表計算
統計ソフト
Dashboard
BI
プログラミングライブラリ
抽象化
70
Graphの種類とツールの対応表
Map Plot
Map Plot
Scader Plot
Scader Plot
Scader Plot
Math Graph
2-‐Dimensional Graph
2-‐Dimensional Graph
2-‐Dimensional Graph
2-‐Dimensional Graph
Sta:s:cal Graph
Sta:s:cal Graph
N-‐Dimensional Graph
N-‐Dimensional Graph
N-‐Dimensional Graph
N-‐Dimensional Graph 2-‐Dimensional Graph Scader Plot
部門 ツール名 OS 描画手続き
表計算 aabel3 Mac Chart Library
統計ソフト ggplot2 (R Library) Windows, Mac, Linux The Grammar of Graphics + Layer of Graphics
Dashboard Metric Insights Web UI Widget Tutorial / Chart Library & Import JS
BI Tableau Windows (, Mac) VizQL
プログラミングライブラリ
D3.js (JavaScript) -‐ Data Driven Documents
抽象化 Neo4j (Java: Graph Database)
-‐ Property Graph
71
代表的な可視化ツール
※Coming Soon !!
部門 ツール名 OS 描画手続き
表計算 aabel3 Mac Chart Library
統計ソフト ggplot2 (R Library) Windows, Mac, Linux The Grammar of Graphics + Layer of Graphics
Dashboard Metric Insights Web UI Widget Tutorial / Chart Library & Import JS
BI Tableau Windows (, Mac) VizQL
プログラミングライブラリ
D3.js (JavaScript) -‐ Data Driven Documents
抽象化 Neo4j (Java: Graph Database)
-‐ Property Graph
72
Treasure Data Service OEM
※Coming Soon !!
Treasure Data Service は, • Dashboard: Metric Insights を OEM 提供。また,TDと共に活用さ
れている事例のあるTableauの紹介
73
Dashboard と BI の違い
Dashboard BI
用途
• 毎日更新されるデータ (KPI) を素早く参照する
• 解析者に関わらず全てのユーザーが参照する
• 異常値やイベントなどの効果を素早く把握する
• Smart Phone や Tablet からも参照する
• 様々な切り口・セグメントの組み合せでデータを閲覧
• インタラクティブな操作でドリルダウンなどを行う
• 様々なチャートとテーブルを組合わせた表現を行う
• プレゼンに耐えうるクオリティの高いレポートを作成
する
機能
• 異常検出機能,およびアラート機能
• チャートへのアノテーション機能
• チャートの一覧性・わかりやすさ
• (任意の時間インターバルでの)データ自動更
新機能
• 素早く編集可能な互いに独立したパネル(ウィ
ジェット)
• 様々なデータベース・ファイル形式と接続でき
るコネクタ
• インタラクティブな操作
• 豊富なチャートライブラリ,ダッシュボードエディタの
実装
• 適化された中間データ構造(Data Mart) を保持,
アクセスする仕組み
• マウス操作によってデータの深堀りや切り口の切り
替え
• JDBC / ODBC コネクタを初めとした様々なデータソー
スとのコネクタ
74
7-‐2. Metric Insights
75
Metric Insights: Overview
76
異なるデータソースの共存が可能
77
• Treasure API キー • 接続するデータベース名 • 集計インターバル • チャートタイプ • 集計クエリ
ウィジェット A • Treasure API キー • 接続するデータベース名 • 集計インターバル • チャートタイプ • 集計クエリ
ウィジェット B
各々のウィジェットに異なるデータベース・テーブルからの集計結果を表示することが可能。
異なるデータベース・テーブルの共存が可能
78
ウィジェット設定
設定アイコンを クリック
79
ウィジェット設定
1. 集計インターバルを設定
2. メジャーの種類を設定
3. カテゴリを設定
80
4. Plug-inを選択
5. 接続するデータソースを指定
6. クエリを記述
7. Sample Result を確認
ウィジェット設定
81
チャートウィジェット(時系列データ)
82
チャートウィジェット(その他のデータ)
83
レポートウィジェット(複数のチャートとテーブルの統合)
84
レポートウィジェット(複数のチャートとテーブルの統合)
85
レポートウィジェット(複数のチャートとテーブルの統合)
86
オンラインゲームソリューション
オンラインゲームソリューションとして, 複数ゲームの様々なKPIを一覧できるダッシュボード:Metric Insights を提供。
87
7-‐3. Tableau
88
Tableau Overview
CFOダッシュボード 製品開発 サポートセンター ウェブ分析 サプライチェーン分析 マーケティング分析
人事分析 開発分析 営業分析 ビッグデータ分析 SNS分析 その他分析
89
コンセプト
直感を大事にする
深く掘り 下げる
視点を 変える
関連付ける
90
コンセプト
直感を大事にする
深く掘り下げる
91
コンセプト
視点を変える
関連付ける
92
Tableau を使った情報配信の種類
データ ソース
Tableau Desktop • ワークブック作成 • アドホック分析の実施 • 抽出ファイル作成 • パッケージファイル作成
Tableau Server • オンライン対話型操作 • ライブ/抽出ファイル接続 • セキュリティ • スケジュール処理
Tableau Reader • 無料 • オフライン • 対話型 • パッケージファイル
エクスポート • イメージデータ
(PNG,JPG) • PDFファイル • Excelファイル
Web Browser / Mobile • オンライン対話型操作 • オンライン編集 • セキュリティ • ゼロフットプリント
接続
ワークブック・データソース定義の
パブリッシュ/エクスポート
接続
Tabcmd • コマンドライン • 各種ファイルエクスポート • 抽出ファイル更新
情報配信
データソース 定義への接続
93
Discussion & Q and A