1000人規模で使う分析基盤構築 〜redshiftを活用したeuc

62
1000人規模で使う 分析基盤構築 ~Redshiftを活用したEUC~ 株式会社クラウドソース  宮島 一浩 1

Upload: miyazima

Post on 17-Aug-2015

1.208 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1000人規模で使う 分析基盤構築

~Redshiftを活用したEUC~

株式会社クラウドソース  宮島 一浩1

Page 2: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用プロセス(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

2

Page 3: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用プロセス(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

3

Page 4: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

自己紹介

•宮島 一浩

• 株式会社クラウドソース 代表取締役CloudSource, Inc.

• SINCE 2011/34

みやじま かずひろ on Facebook

1. はじめに

Page 5: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

こんなことやってます

•システム開発(Web / iOS / Android) アジア圏オフショア開発(ミャンマー・ベトナム・中国)

•AWSコンサルティング導入、設計、構築、運用支援

•データ分析サービス導入、ツール選定、設計、構築、運用支援

5

1. はじめに

Page 6: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

•システム開発(Web / iOS / Android) アジア圏オフショア開発(ミャンマー・ベトナム・中国)

•AWSコンサルティング導入、設計、構築、運用支援

•データ分析サービス導入、ツール選定、設計、構築、運用支援

こんなことやってます

6

1. はじめに

Page 7: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

今日の本題です

7

1. はじめに

Page 8: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1000人規模で使う 分析基盤構築

~Redshiftを活用したEUC~

8

1. はじめに

Page 9: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1000人規模で使う 分析基盤構築

~Redshiftを活用したEUC~

9

何これ?これが聞きたい

唯一目新しい?

End User Computing

1. はじめに

Page 10: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

今日の概要

1. いわゆるエンタープライズ寄りな内容が大半です

2. 具体的な分析内容などは出て来ません

3. インフラはもちろんAWS

10

1. はじめに

excuse

Page 11: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

今日の概要

1. いわゆるエンタープライズ寄りな内容が大半です • ある上場企業での取り組みのお話 • 売上2000億、社員1000人 • 業種:メインは卸売、制作~物流~小売M&Aでいろんな業態が混在。今後もM&Aで新規分野に参入

11

1. はじめに

Page 12: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

今日の概要2. 具体的な分析内容などは出て来ません • データ分析は、重回帰分析、ABC分析、時系列データ分析(SARIMA、移動平均など)くらい

• こんな感じでデータ活用しようとしている人達がいるよ、というお話です

• データ量はそれなりに多いですが、ペタ単位といった超大量でもないです(3年後で数十TB)

12

1. はじめに

Page 13: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

今日の概要3. インフラはもちろんAWS • ただしオンプレ基幹システムからデータ連携します • Redshift, DataPipeline, RDS, EC2, S3,Gracier, SQS, DirectConnect

• 可視化ツールはしょぼいので割愛 →Excel活用頻度は高いです→有力3製品の比較調査はやりましたが…→可視化ツールの話は議論でぜひ

13

1. はじめに

Page 14: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

14

Page 15: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

15

2. プロジェクトの概要

きっかけは、 基幹システムのリニューアル 当初、分析の「ぶ」の字もなかった

Page 16: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

16

2. プロジェクトの概要

きっかけは、 基幹システムのリニューアル

当初、分析の「ぶ」の字もなかった

新基幹システムは直近データのみ素早く扱う 開発も少数精鋭・アジャイル採用

Page 17: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

17

2. プロジェクトの概要

きっかけは、 基幹システムのリニューアル

当初、分析の「ぶ」の字もなかった

新基幹システムは直近データのみ素早く扱う 開発も少数精鋭・アジャイル採用

データ蓄積とレポートは後からゆっくり →DWH+BIの分析基盤を構築しよう!

Page 18: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

コンセプト

1. 営業が提案に使えるデータ基盤

2. 気付きと思考を続ける仕組み

3. データと分析結果の共有

18

2. プロジェクトの概要

Page 19: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

コンセプト

19

2. プロジェクトの概要

1. 営業が提案に使えるデータ基盤

• 卸業なので、基本はB2Bの商談ベースの営業どの商品を奨めるか、およびその根拠が肝 →提案型営業への移行

• 提案した商品の売上を収集・蓄積して、次回以降に活用蓄積・改善することで提案精度を高める

• 提案に活用できる「使えるデータはないか?」「収集した方がよいデータはないか?」を考えることが重要

Page 20: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

コンセプト

20

2. プロジェクトの概要

2. 気付きと思考を続ける仕組み

• 社員一人ひとりが、ルーチンワークだけではなく、より利益を上げるための工夫を続けようとする仕組み

• 「人が主役、システムは脇役」 考える・決めるのは人、システムはデータ・分析結果・可視化などで思考をサポート

• 理想は、売上の80%は仕組みで誰でも達成可能、残り20%を人の智恵で生み出す

Page 21: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

コンセプト

21

2. プロジェクトの概要

3. データと分析結果の共有

• 「誰か一人の智恵→全員に」全体の生産性向上、≠属人化・部分最適・現場最適

• システム部門としてのビジョン1. EUC実現: 自由度と満足度の提供2. ITサービスを提供する部門への転身: 利用料の徴収の仕組み化3. 社内のITリテラシー向上: システム部門→他部署に転属で実現         TCOの削減  (お前らちょっとしたことで問い合わせしてくんな…)

Page 22: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

コンセプト1. 営業が提案に使えるデータ基盤

2. 気付きと思考を続ける仕組み

3. データと分析結果の共有

22

2. プロジェクトの概要

上記を通じた意識の変革1. 常に考えろ

2. みんなのためになれ(個を評価)

3. 組織・会社全体の売上を意識せよ

Page 23: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

23

Page 24: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ概要

24

3. アーキテクチャ

EDI

受発注 &

販売在庫

入出庫 &

現物在庫

経理 &

資金回収

マスタデータ&ルール管理

DWH + BI

分析基盤

Page 25: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

受発注 &

販売在庫

入出庫 &

現物在庫

アーキテクチャ概要

25

EDI

DWH + BI

分析基盤

経理 &

資金回収

マスタデータ&ルール管理

ここが データの終着点

3. アーキテクチャ

Page 26: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ概要

26

DWH+BI

基幹 システム

RedshiftS3 EC2 (可視化ツール)

ExcelData PipelineData Pipeline

3. アーキテクチャ

Page 27: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ概要

27

DWH+BI

基幹 システム

RedshiftS3 Excel

新基幹 システム

あれ、スキーマ変わってる

EC2 (可視化ツール)

Data PipelineData PipelineData Pipeline X

3. アーキテクチャ

Page 28: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ概要

28

DWH+BI

基幹 システム

RedshiftS3 Excel

新基幹 システム

S3 Redshift

EC2 (可視化ツール)

あれ、データを 更新できないの?

Data PipelineData Pipeline

3. アーキテクチャ

Page 29: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ概要

29

DWH+BI

基幹 システム

RedshiftS3 Excel

新基幹 システム

S3

EC2 (可視化ツール)

ExcelEC2 (MartBuilder)

Redshift Redshift

Data PipelineData Pipeline

3. アーキテクチャ

Page 30: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

30

iDC

基幹システム

社内PC

社内N/W

専用線

Direct Connect

RDSRedshift

SG: db, common

VPC Private Subnet 10.200.0.0/24

SG: web, common

バッチ 起動

SG:batch,common

EC2

Auto scaling Group

Availability Zone CAvailability Zone A

VPC Public Subnet 10.200.2.0/24

NATS3

Data Pipeline

Glacier

Logging

Redshift

インスタンス化 &実行指示

VPC Private Subnet 10.200.3.0/24

VPC Public Subnet 10.200.1.0/24

2年以前分を バックアップ

10.200.0.151

テスト サーバ

10.200.3.151

アーキテクチャ(AWS的表現)3. アーキテクチャ

Page 31: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ

31

DWH+BI

基幹 システム

RedshiftS3 Excel

新基幹 システム

S3

EC2 (可視化ツール)

ExcelRedshift Redshift

Data PipelineData Pipeline

3. アーキテクチャ

EC2 (MartBuilder)

Page 32: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ

32

基幹 システム

RedshiftS3 Excel

新基幹 システム

S3

EC2 (可視化ツール)

ExcelEC2 (Uploader)

Redshift Redshift

Data PipelineData Pipeline Data Pipeline

DWH+BI

3. アーキテクチャ

Original

New Upload

data mart共通

Redshift内のスキーマ

Page 33: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ

33

基幹 システム

RedshiftS3 Excel

新基幹 システム

S3

EC2 (可視化ツール)

ExcelEC2 (Uploader)

Redshift Redshift

Data PipelineData Pipeline Data Pipeline

DWH+BI

3. アーキテクチャ

Page 34: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

アーキテクチャ

34

基幹 システム

RedshiftS3 Excel

新基幹 システム

S3

EC2 (可視化ツール)

ExcelEC2 (Uploader)

Redshift Redshift

Data PipelineData Pipeline Data Pipeline

DWH+BI

3. アーキテクチャ

Page 35: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

35

Page 36: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

データ活用プロセス

36

計画 データ 整備 実装 業務での

施策実行 効果検証 次策検討

4. データ活用

Page 37: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

データ活用プロセス

37

計画 データ 整備 実装 業務での

施策実行 効果検証 次策検討

誰が どの数値 なぜ、どう いつ どの程度 効果は?

人的プロセス

収集対象 更新者 取得頻度 加工内容

データの アップロード

計画実行

人が行動を 変える

予実比較 結果まとめ

継続/終了

継続なら 次策計画

4. データ活用

Page 38: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

データ活用プロセス

38

計画 データ 整備 実装 業務での

施策実行 効果検証 次策検討

人的プロセス

収集対象 更新者 取得頻度 加工内容

計画実行

人が行動を 変える

予実比較 結果まとめ

継続/終了

継続なら 次策計画

システム的プロセスデータ取込 ビュー作成 マート作成

桁型変換 単位揃え 日付付与 タイムシリーズ

レポート作成 予測精度検証データ測定

4. データ活用

誰が どの数値 なぜ、どう いつ どの程度 効果は?

データの アップロード

Page 39: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

データ活用プロセス

39

計画 データ 整備 実装 業務での

施策実行 効果検証 次策検討

人的プロセス

収集対象 更新者 取得頻度 加工内容

計画実行

人が行動を 変える

予実比較 結果まとめ

継続/終了

継続なら 次策計画

システム的プロセスデータ取込 ビュー作成 マート作成

桁型変換 単位揃え 日付付与 タイムシリーズ

レポート作成 予測精度検証データ測定分析基盤

4. データ活用

誰が どの数値 なぜ、どう いつ どの程度 効果は?

データの アップロード

Page 40: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

データ活用事例•ある地域だけで特定カテゴリの商品が売れている→ 商品特性と人口統計

•特定カテゴリの商品は、連休前に集中して売れている→ 商品特性と時期

•市場全体の規模はあまり変わらないので、あるヒット商品が出ると他の商品の売上が下がる→ ツリーマップ

•ある地域では定番商品が売れていない→ 視聴率(というか視聴可能エリア)と製品特性

40

4. データ活用

Page 41: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

41

データ 分析

気づき感覚

検証 発見

思考を続ける仕組み4. データ活用

Page 42: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

42

皆さんはどちらが多いですか?

「ナウい」のはこっち

データ 分析

気づき感覚

検証 発見

ちなみに…

多いのはまだこっち

4. データ活用

Page 43: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

43

Page 44: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

経営との考えの乖離

課題経営の考えが現場作業に反映されない現場での工夫や実績が経営に認められない

解決策中期経営計画と連動した部署毎の計画と現場の施策

44

5. 技術以外の課題

Page 45: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

経営との考えの乖離

45

5. 技術以外の課題

経営 GM 部長 リーダー中期経営計画 目標立案 行動立案 行動計画

年間数値目標 年間売上目標 年間売上目標 年間売上目標

日々の活動KPIKGIKSF

Page 46: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

部署間の調整

課題データのメンテナンス・有効性の担保各部署で作成したデータの全社共有化

解決策データ活用専門部署の組織化

46

5. 技術以外の課題

Page 47: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

データ分析の経験者不足

課題Excel分析アドインすら使える人がいない

解決策統計についての教育、育成機械学習活用の環境構築オープンデータを扱いやすいように整備(単位合わせ、時系列化)

47

5. 技術以外の課題

Page 48: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1. はじめに(3分) 2. プロジェクトの概要(10分) 3. アーキテクチャ(10分) 4. データ活用(5分) 5. 技術以外の課題(5分) 6. 技術的な課題(5分) 7. 質疑応答(20分)

目次

48

Page 49: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

AWS的スペック

•Redshift: dc1.large x 13ノード •EC2: r3.xlarge x 2台 •RDS: db.t2.micro x 2台 •DataPipeline: c3.large処理は4~5本

49

Page 50: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

RedshiftETL •独自のRuby+Javaコード •カラム・日本語ー英語名・型マッピング •DataPipelineで実行 •毎日差分取込→View経由→マート作成(これは毎日全入替) •毎日2GBB増加 •全プロセス完了まで2時間程度 •マート200GB、5億行

50

6. 技術的な課題

Page 51: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

Redshift同時接続数とパフォーマンス •1000人使ったときの性能予測 •Aurora検討も断念 •MySQLでindexとパラメータでチューニングしても、特定のクエリは良くなっても他がダメ → Redshiftすごい!

•dc1.8xlarge x 1ノードよりもdc1.large x 8ノードの方が安いし速い •そもそも1ノードで使えない(データ欠損)ので2ノード基本 •マートは非正規化 •正規化の場合と比較して10倍速い場合も •distkeyは未指定でラウンドロビン •allを指定したりしたが遅かった •sortkeyは主に日付カラム

51

6. 技術的な課題

Page 52: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

Redshiftデータ容量と利用料金性能 •料金予測 •圧縮方式 •独自でカラム毎に指定(AUTOでもよいのかも) •容量計算 •最低ブロックサイズがカラム数に応じて計算され、スライス数分確保される ←しかもこのサイズ分課金

•真っ先にリザーブドインスタンスを検討

52

6. 技術的な課題

Page 53: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

Redshiftデータ保持期間とバックアップ •会計データは2年オンライン、7年保持義務 •それ以外の過去データの分析要求 •3年分保持、その後Gracierへ •ただし、絶対3年以前のデータも見たいハズなので、様子見ながら保持期間決定

•バックアップは月1回S3に •S3でも30日後にGracierに自動移行設定

53

6. 技術的な課題

Page 54: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

Redshiftデータの中身 •文字コードとバイト数 •元テーブルのカラム定義がEBCDIC •半角の仮名文字は1バイト→3バイトに,標準漢字は2バイト→3バイトに

•元テーブル定義の3倍を確保 ←でも一応4倍してます •TimeZone •UTCに変換して入れるべし ←これ一択 •入出力はJSTをUTCとして扱っても問題ないが、システム時間を使う処理(バッチなど)で困る

54

6. 技術的な課題

Page 55: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

Redshiftデータの中身 •データ型と桁数 •DB2互換DB400のメタデータと合わせて解決 •char型で日付とか変換要 •何が正解? •既存データと数値がズレる →どっちが正しいの? •締め処理前後で数値が変わる →どっちが(ry •データが入っていない行、本来の使われ方ではない行 •アノマリーデータとするしかない

55

6. 技術的な課題

Page 56: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

RedshiftRedshiftとRails •ActiveRecordはNG •理由は…わかりますよね •ActiveRecordが使えないと、便利なgemの多くが使えないので困ることに

•COPYコマンドはキューで実行 • lambdaを検討したが1分の壁で断念→SQSで対応予定

56

6. 技術的な課題

Page 57: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

Redshift

新たな分類とマッピング •例えば商品に新たなカテゴリを設ける •大量の分類が必要 •分類指定→分類対象検索→ひもづけ、という一連の作業専用機能をMartBuilderに追加

57

6. 技術的な課題

Page 58: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

まとめ

58

Page 59: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1000人規模で使う 分析基盤構築

~Redshiftを活用したEUC~

59

まとめ

Page 60: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

1000人規模で使う 分析基盤構築

~Redshiftを活用したEUC~

60

意図伝わった?なんかわかった?

使えそう?

End User Computing

まとめ

Page 61: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

今後の展望

•統計的データ分析、機械学習の活用Pandasサポートまだかよ…

•外部データの取込拡大とAPI化AWS API Gateway活用

•MartBuilderの販売?61

Page 62: 1000人規模で使う分析基盤構築  〜redshiftを活用したeuc

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

62

[email protected] Facebook: Kazuhiro Miyajima