Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

44
Data Management Platform構築に おける Redshift 活用事例 in Tokyo Webmining 29th @iktakahiro 2013-09-21 1

description

株式会社ALBERTがData Management Platform (DMP) 構築や データ分析の現場でどのようにAmazon Redshiftを活用しているかをお話します。 Redshiftのサービス概要や、実際に高い効果を出すために重要なこと・現場の運用ノウハウについても 赤裸々に解説します。

Transcript of Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Page 1: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Data Management Platform構築における Redshift 活用事例

inTokyo Webmining 29th

@iktakahiro2013-09-21

1

Page 2: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Agenda• 自己紹介(1分30秒)• DMP概略 (5分30秒)- Data Management Platform とは- ALBERTの考えるDMP構成要素- DMP構成例

• Redshift活用事例 (15分)- Amazon Redshift とは- Redshift 活用事例- Redshiftノウハウを赤裸々に

• スーパーデモタイム(時間調整)• まとめ (3分)

2

Page 3: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Agenda• 自己紹介(1分30秒)• DMP概略 (5分30秒)- Data Management Platform とは- ALBERTの考えるDMP構成要素- DMP構成例

• Redshift活用事例 (15分)- Amazon Redshift とは- Redshift 活用事例- Redshiftノウハウを赤裸々に

• スーパーデモタイム(時間調整) • まとめ (3分)

イマココ

3

Page 4: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

自己紹介

•株式会社ALBERT•分析力をコアとする マーケティングソリューションカンパニー

•池内 孝啓 / システム開発部 部長•@iktakahiro

4

Page 5: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

開発・分析環境

5

Java R Python VMS SPSS fluentd Javascript awk bash Mahout

Play_framework AngularJS JenkinsEC2 Redshift CloudFront MySQL MariaDB

PostgreSQL Redis Mercurial

Page 6: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

#TokyoWebmining 13th-Mahout・大規模解析・ビジネス展開 祭り-

の2011年07月以来でした...

大変ご無沙汰しておりました

6

Page 7: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Agenda• 自己紹介(1分30秒)• DMP概略 (5分30秒)- Data Management Platform とは- ALBERTの考えるDMP構成要素- DMP構成例

• Redshift活用事例 (15分)- Amazon Redshift とは- Redshift 活用事例- Redshiftノウハウを赤裸々に

• スーパーデモタイム(時間調整)• まとめ (3分)

イマココ

7

Page 8: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

DMP概略

8

Page 9: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Data Management Platform とは

•組織がデータを活用するための基盤•完全に整理体系化されているわけではないが、 - 広告DMP - プライベートDMP - 蓄積データ自体を商材とするDMPなどがある。

今回はプライベート・DMPにフォーカス9

Page 10: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

プライベート・DMPビッグデータ データ分析

データサイエンティスト アドテクDWH データ統合 DSP

マーケティング トリプルメディアデータ活用

etc...

10

Page 11: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

プライベート・DMPの要素

•データウェアハウス (DWH)•データマイニングエンジン•キャンペーンマネジメント•DSP(※広告主側広告効果支援システム)•ビジネスインテリジェンス(BI)

11

Page 12: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

ALBERT x プライベート・DMP•2013年05月ニュースリリース「ALBERT、データマネジメントプラットフォーム構築サービスを提供~ペタバイト規模対応、超並列、カラムナ型(*1)のクラウドデータベース、Amazon RedshiftをDWHに活用~ http://www.albert2005.co.jp/release/archives/201305/28_110038.html

12

Page 13: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

13

Page 14: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

メールマーケティングにおけるDMP構成例

DWH

顧客マスタ

Web閲覧ログ

メール開封ログ

メール配信システム

最適なメール14

Page 15: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Web・メールマーケティングにおけるDMP構成例

DWH

顧客マスタ

Web購買ログ

メール経由購買ログ

メール配信システム

レコメンデーションエンジン

Webレコメンデーション

15

Page 16: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Agenda• 自己紹介(1分30秒)• DMP概略 (5分30秒)- Data Management Platform とは- ALBERTの考えるDMP構成要素- DMP構成例

• Redshift活用事例 (17分)- Amazon Redshift とは- Redshift 活用事例- Redshiftノウハウを赤裸々に

• スーパーデモタイム(時間調整)• まとめ (1分)

イマココ

16

Page 17: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Redshift活用事例

17

Page 18: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Amazon Redshift とは

•クラウドコンピューティングサービスであるAmazon Web Service(AWS)が提供するクラウド型データウェアハウス(DWH)

•2TB, 15GBメモリの最小構成で $900~•容量・性能のスケールアウトが可能

AmazonRedshift

18

Page 19: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Amazon Redshift とは

• 大規模ログ分析における Amazon Web Servicesの活用(第27回TokyoWebmining 講演資料) by Shintaro Takemura

http://www.slideshare.net/stakemura/20130622-tokyo-webminingpublic

AmazonRedshift

19

Page 20: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

プライベート・DMPの要素

•データウェアハウス (DWH)•データマイニングエンジン•キャンペーンマネジメント•DSP(※広告主側広告効果支援システム)•ビジネスインテリジェンス(BI)

AmazonRedshift

20

Page 21: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

AWS x DMP

Redshiftログデータマスタデータ

マルチチャネル展開

S3

Glacier

Web / メールDM / DSP

BI

効果測定データ

21

Page 22: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

補足:

• ストレージサービス• 容量の実質無制限拡張• 堅牢性の担保

Amazon S3

Amazon S3

Amazon Glacier

AmazonGlacier

• データの閉架書庫的な• S3と連携できる

22

Page 23: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

なぜRedshiftが有効か?

23

Page 24: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

•多くは自社サービスのデータではなく、他社の- ECサイト行動ログ- POSデータ- マスタデータなど

ALBERTの取り扱うログの傾向

24

Page 25: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

DB1 DB2 DB3 DB4

PCサイト顧客マスタ

カタログ顧客マスタ 商品マスタ 購買ログ

DB5

メール開封ログ

AmazonRedshift

統合DWH

25

Page 26: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

•拡張できるシステムか?拡張時のコストは?•容量に限界はあるか?•バックアップは?• "用途はないが捨てるのは惜しいデータ"をどう扱うか...

ログデータの保持をどうするか問題

26

Page 27: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

•データが増えたときのことは後で考える?•パーティショニングはどうする?•バックアップやアーカイブ化は?•パラメータ設定, チューニング etc...

データベース(DWH)の運用をどうするか問題2013

27

Page 28: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

•初期投資のインパクト•計画が縮小、中止になった場合のリスク•導入しても、活用できるかどうか不安

DWHの初期投資をどうするか問題

28

Page 29: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

•以上の問題が、自社ではなくクライアントの予算・意思決定と密接に関わっている。

29

Page 30: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

•2TB, 15GBメモリの最小構成で $900~•容量・性能のスケールアウトが可能•やめたくなったらすぐ停止•カラム型データベース -> 集計処理や圧縮性能にすぐれる

そう、Redshiftならね

30

Page 31: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Redshift + S3 + Glacier

Amazon S3

UPLOAD

AmazonGlacier

AmazonRedshift

分析処理へCOPY

アーカイブS3:Lifecycle1day : Move to Glacier

(Redundancy Storage)

31

Page 32: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Redshiftノウハウを赤裸々に...

32

Page 33: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• SQLのナレッジがそのまま活かせる• Hiveの代替として考えてよいと思う...• PostgreSQL 8 +α 相当という感じ• 一部関数が非対応だったり、完全互換ではない点に注意が必要

基本編

33

Page 34: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• DISTKEY(値をもとにデータが分散配置される)、SORTKEYは重要

• パフォーマンスに特化した超非正規化は個人的にはおすすめしない => 運用コストがかかるので..

• S3との連携が前提。データのインポートとアウトプットはS3経由で行う。

設計編

34

Page 35: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• 圧縮関連についての話題には下記スライドをご覧ください。

設計編

Redshift Compression Encodings(圧縮アルゴリズム)についてもっと調べてみたhttp://www.slideshare.net/iktakahiro/redshift-compression-encodings

35

Page 36: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

SQL

CREATE TABLE log ( adviertise_id CHAR(6) DISTKEY, -- 広告主ID log_data TIMESTAMP SORTKEY, -- 日時 request_uri VARCHAR(512), -- URI user_agent VARCHAR(512), -- ユーザーエージェント user_id VARCHAR(255), -- ユーザーID session_id VARCHAR(255), セッションID log_type CHAR(1), -- ログ種別 product_id VARCHAR(255) --商品ID );

COPY log FROM 'S3://hogeadreco/2013/07/16/' CREDENTIALS 'aws_access_key_id=hogehoge;aws_secret_access_key=hogehoge' DELIMITER '\t' TIMEFORMAT 'YYYY-MM-DD HH:MM:SS' GZIP;

36

Page 37: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• アプリケーション側からはPostgreSQLのつもりでいれば大体は使える。- Python + SQLAlchemy + pycycopg2

• COPYコマンドなど独自の構文もあるので必要に応じてクエリべた書きも。

• DBの開発ツールも接続OK- Navicatがおすすめ(有償だけど)

開発編

37

Page 38: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• ログデータ用のテーブルは実ログ相当のデータがないと適切な圧縮設計が行えないこともある=> 運用が始まったあとで調整する、くらいの 心構えが必要

• 全体的にナレッジはまだまだ足りない感。Connection周りではまったりもする

• ミニマム構成でもそこそこの性能が出る

運用編

38

Page 39: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• 意外に小出しで機能追加されている。マニュアルのhistory(※1)を追うのがおすすめ

• 全体的にナレッジは出尽くしていない感。Connection周りではまったりもする

• ブログ(※2)に少しづつ書いてます※1 http://docs.aws.amazon.com/redshift/latest/dg/doc-history.html

※2 http://librabuch.jp/tag/redshift/

ドキュメント

39

Page 40: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Agenda• 自己紹介(1分30秒)• DMP概略 (5分30秒)- Data Management Platform とは- ALBERTの考えるDMP構成要素- DMP構成例

• Redshift活用事例 (17分)- Amazon Redshift とは- Redshift 活用事例- もっと Redshift

• スーパーデモタイム(時間調整)• まとめ (1分)

イマココ

40

Page 41: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

Agenda• 自己紹介(1分30秒)• DMP概略 (5分30秒)- Data Management Platform とは- ALBERTの考えるDMP構成要素- DMP構成例

• Redshift活用事例 (17分)- Amazon Redshift とは- Redshift 活用事例- もっと Redshift

• スーパーデモタイム(時間調整)• まとめ (1分) イマココ

41

Page 42: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

まとめ

42

Page 43: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

• プライベート・DMPは5つの要素で構成される• その中でも、ビッグデータ時代にはDWHの重要性が更に高まっている

• Amazon Redshiftを使うと低コストでDWHの構築と運用が行える

• 設計は引き続き重要。ナレッジはまだまだなのでみんなでシェアしよう

43

Page 44: Data Management Platform構築におけるRedshift徹底活用 in #TokyoWebmining 29th

ご清聴ありがとうございました

44