リクルートライフスタイル流!
分析基盤との賢い付き合い⽅
⽩⼦ 佳孝
秋本 ⼤樹
ネットビジネス本部
データマネジメントグループ
データプラットフォームチーム
⽩⼦ 佳孝 (シラコ ヨシタカ)
株式会社 リクルートライフスタイル
ネットビジネス本部
データマネジメントグループ
データプラットフォームT
Twitter: @y0shirak0
2012年5⽉
サンフランシスコ州⽴⼤学を卒業
2013年4⽉
新卒として中堅SIerに⼊社
客先に常駐し、システム運⽤・インフラ/ミドルウェア構築を
主に担当Treasure Dataや、RedHat Openstackといった
次世代インフラ導⼊案件にも携わる
2017年6⽉
リクルートライフスタイルに転職
社内分析基盤の運⽤チームリーダを担当
分析基盤上の課題を運⽤で解決した話
本⽇お話しすること
リクルートライフスタイルの分析基盤ってどんなの?
各プロダクトの選定理由と利⽤⽤途は?
分析基盤上の課題をシステムを⽤いて解決した話
リクルートライフスタイルってどんな会社?
リクルートライフスタイル
ってどんな会社?
リクルートライフスタイルが持つデータ
リクルートライフスタイルの
分析基盤
ってどんなの?
SPSS Tableau
Mail
Publisher
Marketing
Cloud
Salesforce ・・・
事業DB SCログ 外部データ ⼿⼊⼒ Firebase ・・・
データ
プロデューサー
分析基盤
Datamart
DWH
データ
アナリスト
データ
サイエンティス
ト
CRM 営業
マーケティング最適化
KPIマネジメント
可視化
分析
集約・集計
⼊⼒
出⼒
出⼒拡⼤
⼊⼒拡⼤
組
織
拡
⼤
社内の現状
増えるデータとデータソース
抱える課題は様々
増える利⽤者・組織
多様化する利⽤⽤途
増える連携先・出⼒先
求められるスピード・耐障害性
⾊々な課題をクリアし、
30もあるサービスのデータ
を収集し計算している
分析基盤が
構成図
HPB HPG
JLN
事業データ
CSV
外部データ
S3
Redshift (本番)
Redshift (退避)
BigQuery
アクセスログ
アプリログ Treasure Data
Exadata
Cloud Storage
分析基盤の通称:XXX
世界最速の分析基盤になるという決意を込めて
世界最速のある⼈から名前を拝借
BLT (ボルト)
⼊⼒ 出⼒処理
データ利活⽤の3⼤要素
「⼊⼒・処理・出⼒」
BLT分析基盤はリクルートライフスタイルの処理部分を⼀括で担っている
HPB HPG
JLN
事業データ
CSV
外部データ
S3
Redshift (本番)
Redshift (退避)
BigQuery
アクセスログ
アプリログ Treasure Data
Exadata
Cloud Storage
⼊⼒ 出⼒処理
⾏動ログデータや事業データの
レコード総数
約4,500億件
BLT
ユーザアカウント数
1,200
クエリ数
20,000/day
テーブル数(データマートも含む)
約4,000
利⽤状況
各プロダクト(DWH)の
選定理由と利⽤⽤途は?
利⽤しているDWHたち
HPB HPG
JLN
事業データ
CSV
外部データ
S3
アクセスログ
アプリログ
Cloud Storage
Redshift (本番)
Redshift (退避)
BigQuery
Treasure Data
Exadata
Redshift (本番)
Redshift (退避)
BigQuery
Treasure Data
Oracle Exadata
HPB HPG
JLN
事業データ
CSV
外部データ
S3
アクセスログ
アプリログ
Cloud Storage
Exadata
Exadata間でのDataGuardのよる冗⻑構成
DBLINKでのOracleDBとのシームレスな接続
スタンダードなSQLが利⽤可能
もちろんCRUD処理もお⼿の物
選定理由
初期投資費⽤
ハードウェアやミドルウェアの運⽤が発⽣する
(Oracle職⼈が必要。。。)
スケールアウトが容易にできない
(あくまでオンプレなので)
⾟い点
売上直結のバッチ処理専⽤環境
売上に直結するバッチ処理を動かしている
アドホッククエリが処理に影響しないよう、
⼀般ユーザには開放していない
事業側OracleDBとDBLINK経由でデータを抽出
利⽤⽤途
BigQuery
Treasure Data
Exadata
Amazon Redshift
HPB HPG
JLN
事業データ
CSV
外部データ
S3
アクセスログ
アプリログ
Cloud Storage
Redshift (本番)
Redshift (退避)
ODBC/JDBCを利⽤して
外部のBIツールとの接続が可能
CRUD処理が可能
マネージドサービス
他AWSサービスとの連携が容易
イニシャルコストを⼤幅削減
選定理由
メンテナンスの時間指定が曜⽇+時間帯のみ
コンピュートノードを追加するとデータのリバランスが発⽣し、その
間の処理がRead Onlyに
キャパシティプランニングが必要
⾟い点
データマート作成およびアドホック分析環境
ユーザに⼀般開放
アドホック分析やデータマート作成に利⽤
TableauなどのBIツールでの分析
利⽤⽤途
※アドホック = 特定の⽬的のための、その場限りの
Redshift (本番)
Redshift (退避)
Treasure Data
Exadata
Google BigQuery
HPB HPG
JLN
事業データ
CSV
外部データ
S3
アクセスログ
アプリログ
Cloud Storage
BigQuery
キャパシティプランニングが不要
他の組織、他社とでもデータ共有が容易
データロード処理とクエリ処理が影響し合わない
定額料⾦契約を使えば、料⾦を気にせずクエリを実⾏できる
SLAが99.9%
⽂字列型のバイト指定不要
選定理由
CRUD処理に制限
テーブル単位のアクセス制御ができない
BigQueryのエンジニアが少ない
⾟い点
⾏動ログ収集およびアドホック分析環境
サイトカタリストの⾏動ログを収集
毎⽉約100億レコード増加
Firebaseのログも連携開始中
アドホック分析⽤として⼀般ユーザにも開放中
利⽤⽤途
※アドホック = 特定の⽬的のための、その場限りの
Redshift (本番)
Redshift (退避)
BigQuery
Exadata
Treasure Data
HPB HPG
JLN
事業データ
CSV
外部データ
S3
アクセスログ
アプリログ
Cloud Storage
Treasure Data
SDKが充実している
対応している連携サービスが多い
ハードやミドルウェアのメンテ不要
初期投資不要
選定理由
PrestoやHiveに若⼲クセがある
⽇付パーティションのタイムゾーンがUTCなので、
毎回JSTに変更が必要
(契約によるが)同時接続数がコア数に依存するため、
アドホックな分析環境としてユーザに開放するのが難しい
⾟い点
アプリのSDKログ収集環境
アプリのSDKログをストリームで取り込んでいる
Treasure Dataで収集・分析した結果を
RedshiftやBigQueryにも連携
利⽤⽤途
利⽤⽤途まとめ
データマート作成およびアドホック分析環境
⾏動ログ収集およびアドホック分析環境
アプリのSDKログ収集環境
売上直結のバッチ処理専⽤環境Exadata
リクルートライフスタイルのBLT分析基盤では
⼀つの製品に固執するのではなく、
それぞれのDWHの強みを理解した上で、
組み合わせで最適な
マルチクラウド分析基盤を構成している
Conclusion
秋本 ⼤樹
株式会社 リクルートライフスタイル
ネットビジネス本部
データマネジメントグループ
データプラットフォームT
Facebook: daiki.akimoto.50
2011年 ユーザ系SIerに⼊社
• 客先常駐でインフラ構築のPM
• 購買データを⽤いたデータ分析
2014年 ゲーム会社に転職
• ゲームデータ分析基盤の構築
• 社内KPI算出の⾃動化
2017年12⽉より現職
分析基盤の運⽤は
カンタン
だと思いますか?
実は…
タイヘン
です!
Start Up
とりあえず分析できる環境
⽤意しといて
BigQueryとRedashで
サクッと作りました
神!
クラウドを利⽤すれば
⽐較的簡単に分析基盤は作れる
Recruit Lifestyle
とりあえずデータ
溜めといてよ
最近重くない?
今度はあのデータも
⼊れたいな
⻑年分析基盤の運⽤を続けると
様々な課題が積み上がる
増えるデータ
複雑な連携
増える負荷
本⽇お話したいこと
分析基盤上の課題を
システムと
運⽤で
どう解決していくか
システムでの解決
Data Lake
Data Lake
Data Lake
Single
Store
Various
Data
Data
Hub
様々なデータを⼀箇所に集めることで
⾊々なところに連携しやすくする
Data Lake
Single
Store
Various
Data
Data
Hub
様々なデータを⼀箇所に集めることで
⾊々なところに連携しやすくする
AWSとの親和性と安価なことから
当社はS3を採⽤
増えるデータ
増える負荷
複雑な連携
Redshift Spectrum
Migaloo
(社内PJ)
BigQuery
退避Redshift
当社の分析基盤上の課題を解決する
DataLakeを⽤いた仕組みとは
増えるデータの解決
Redshift Spectrum
HPB HPG
JLN
事業データ
CSV
外部データ
Redshift (退避)
BigQuery
アクセスログ
アプリログ Treasure Data
Exadata
Cloud Storage
Redshift Spectrum
Redshift (本番)
S3
Redshift Spectrum
5ドル/1TB
で参照可能
S3Redshift
クエリ
S3上の⼤量データを
今まで通りRedshiftへのクエリのみで
参照できるようになる仕組み
Redshift Spectrum
5ドル/1TB
で参照可能
S3Redshift
クエリ
⼤量データをS3に持たせることで
増えるデータの課題に対応できる
⼤量データ
Redshift Spectrum
Redshift S3
頻繁に使われるホットデータと
ユーザから⼀時参照が多いコールドデータで
使い分けることが⼤切
ホットデータ
定期的に
たくさん使われる
コールドデータ
ユーザからの
⼀時参照が多い
複雑な連携の解決
Migaloo(社内PJ)
Redshift (退避)
アプリログ Treasure Data
Exadata
Migaloo(社内PJ)
HPB HPG
JLN
事業データ
CSV
外部データ
BigQuery
アクセスログ
Redshift (本番)
S3
Cloud Storage
Migaloo(社内PJ)
BigQuery
Redshift
BigQuery⽤
ロードサーバ
Redshift⽤
ロードサーバ
DB1
DB2
DB3
連携元が増えるとサーバごとに
設定する必要があり⼤変
Migaloo(社内PJ)
BigQuery
Redshift
S3
DB1
DB2
DB3
S3をデータハブとすると
連携元データを1つ追加するだけで良い
Migaloo(社内PJ)
BigQuery
Redshift
DB1
DB2
DB3
将来的に良い製品が出てくると
連携元の分だけ設定を増やす必要がある
とても良い
新製品
新製品⽤
ロードサーバ
Migaloo(社内PJ)
BigQuery
Redshift
S3
DB1
DB2
DB3
S3をデータハブとすると
S3からの連携のみ考えればよい
とても良い
新製品
増える負荷の解決
BigQuery
退避Redshift
HPB HPG
JLN
事業データ
Exadata
Redshift (本番)
CSV
外部データ
アクセスログ
Redshift (退避)
アプリログ Treasure Data
BigQuery
BigQuery
S3
Cloud Storage
BigQuery
S3 Redshift
DB
WEBサーバ
アクセスログ
DBデータ
Redshiftに対し
アクセスログとDBデータを両⽅⼊れると
負荷が上がる
アクセスログ
DBデータ
BigQuery
S3
Redshift
DB
WEBサーバ
DBデータ
BigQueryを導⼊し
アクセスログはBigQueryに⼊れることで
負荷を分散する
BigQuery
アクセスログ
アクセスログ
DBデータ
BigQueryへのロードの仕組み
最新の技術を取り⼊れ
マルチクラウドをうまく活⽤して
BigQueryへのロードを実現
HPB HPG
JLN
事業データ
Exadata
Redshift (本番)
CSV
外部データ
アクセスログ
BigQuery
S3
Cloud Storage
アプリログ Treasure Data
退避Redshift
Redshift (退避)
本番Redshift
S3
本番
Redshift
⼀⽇⼀回
ロード
データの
鮮度
新鮮な
データ
負荷 ⾼い
レスポンス 遅い
⼀⽇⼀回のロードで
ユーザは新鮮なデータを使えるが
レスポンスは遅い
退避Redshift
S3
本番
Redshift
⼀⽇⼀回
ロード
退避
Redshift
毎週⼟曜
同期
毎週⼟曜に本番Redshiftの
スナップショットを⽤いて
退避Redshiftを作成する
退避Redshift
S3
本番
Redshift
⼀⽇⼀回
ロード
鮮度を求めないデータに関しては
退避を使うことで
ユーザはレスポンスを早くできる
退避
Redshift
毎週⼟曜
同期
本番Redshift
(⼀⽇⼀回)
退避Redshift
(毎週⼟曜)
データの
鮮度
新鮮なデータ 古いデータ
負荷 ⾼い 低い
レスポンス 遅い 速い
運⽤での解決
Not Data Swamp
Not Data Swamp
Not Data Swamp
いかにデータを使うか
溜め続けるだけだと
データは濁る
Chatbotの利⽤
George(社内PJ)
HPB HPG
JLN
事業データ
Exadata
Redshift (本番)
CSV
外部データ
アクセスログ
BigQuery
Cloud Storage
アプリログ Treasure Data
George(社内PJ)
Redshift (退避)
S3
George(社内PJ)
本番Redshift
(⼀⽇⼀回)
退避Redshift
(毎週⼟曜)
データの
鮮度
新鮮なデータ 古いデータ
負荷 ⾼い 低い
レスポンス 遅い 速い
新鮮なデータとレスポンスの速さを
両⽴してほしいという
ユーザからの要望がある
George(社内PJ)
本番Redshift
(⼀⽇⼀回)
退避Redshift
(毎週⼟曜)
データの
鮮度
新鮮なデータ
負荷 ⾼い 低い
レスポンス 遅い 速い
ユーザがSlackで呟くことで
S3を介して新鮮なデータが
退避Redshiftにも⼊る
呟く
Slack
S3
新鮮なデータ
ユーザライクな操作
Event Driven Upload
Redshift (退避)
HPB HPG
JLN
事業データ
Exadata
アクセスログ
BigQuery
Cloud Storage
アプリログ Treasure Data
Event Driven Upload
Redshift (本番)
CSV
外部データ
S3
Event Driven Upload
①S3への
アップロード
②Redshift
へのロード
CSV
S3 Redshift
ユーザがRedshiftに
データを⼊れるためには
ある程度専⾨的な知識が必要だった
S3 Redshift
Event Driven Upload
簡単な
ブラウザ上の
操作
Event
Driven
Upload
CSV
複雑なことを裏で⾃動的に⾏うので
ブラウザ上での簡単な操作のみで
ユーザはデータを⼊れることができる
Conclusion
Data Lake
増える課題に対応
Not Data Swamp
いかにデータを使うか
http://engineer.recruit-lifestyle.co.jp/recruiting/
⼤募集!!
⼀緒に分析基盤を作ろう!

リクルートライフスタイル流!分析基盤との賢い付き合い方