ハンズオン ハッカソン データコンペ アウトプット …データ同化ハンズオン データ分析ハッカソン スポーツデータ解析コンペティション
Amazon Redshiftを使ったデータ分析
-
Upload
tomohiro-yamaguchi -
Category
Data & Analytics
-
view
450 -
download
2
Transcript of Amazon Redshiftを使ったデータ分析
![Page 1: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/1.jpg)
Amazon Redshift を使ったデータ分析モンスター・ラボ 島根開発拠点 山口友洋
![Page 2: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/2.jpg)
自己紹介
株式会社モンスター・ラボ サービス開発事業部所属
Webアプリケーション開発(Ruby, PHP,AWS)
2014年7月3日に、島根開発拠点立ち上げ(松江テルサ別館)
![Page 3: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/3.jpg)
Amazon Redshiftとは
Amazon Web Serviceで提供されいている、大規模データ分析用途向け分散RDB
2013年6月から運用開始
![Page 4: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/4.jpg)
Amazon Redshiftとは
億円単位で導入していたDWHが、年額100万円~で利用可能に
スタートアップなどの小規模なビジネスでもビッグデータ分析が可能に
![Page 5: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/5.jpg)
Redshiftの料金
月額3万円程度から、スタートできる
![Page 6: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/6.jpg)
国内導入事例
広告配信、ソーシャルゲーム
クックパッド「たべみる」
クラウド会計ソフト「freee」
![Page 7: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/7.jpg)
2015年のアプリ・モバイルトピック
ものが繋がる(Intenet of Things)
Beacon/ロケーションサービス
ウェアラブル
![Page 8: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/8.jpg)
データの分析と活用がさらに進む
人間の身体に関わるデータ
人間の行動に関わるデータ
自動車・家電その他から得られるデータ
![Page 9: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/9.jpg)
分散RDBとはどういうものか
10億~100億行以上の巨大なデータを扱い高速にレスポンスを返す
1.2TBのデータサイズに対して約150秒のレスポンスタイム(hadoopの10倍)
PostgreSQL互換インターフェース
![Page 10: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/10.jpg)
MySQL、PostgreSQLと同じ点
ODBCやJDBCから接続しSQLを実行できる
テーブルを結合(JOIN)できる
INSERT,SELECT,UPDATE,DELETEのSQL実行できる
O/Rマッパからでも使える
![Page 11: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/11.jpg)
MySQL, PostgreSQLとの違い
複数のノードを1つのデータベースとして扱う
データが各ノードに分散配置される
ノードを増やすとクエリ性能が向上する
![Page 12: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/12.jpg)
Redshiftを上手に使うには
ミドルウェアが持つ制限を知る
アーキテクチャーを理解して、設定・チューニングを行う
![Page 13: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/13.jpg)
Redshiftに存在する制限
同時接続数が少ない
バイナリ型が使えない
カラムの変更ができない
![Page 14: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/14.jpg)
Redshiftが向かないシステム
たくさんのユーザが同時接続し、多くのクエリを発行するシステム
柔軟なデータ型が求められるシステム
![Page 15: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/15.jpg)
おさえておきたいアーキテクチャ
ノード構成
データ分散方式
![Page 16: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/16.jpg)
ノード構成図
![Page 17: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/17.jpg)
リーダーノードとコンピュートノード
![Page 18: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/18.jpg)
リーダーノードとコンピュートノード
リーダーノードは接続を受付、コンピュートノードに実行プログラムを配布する
コンピュートノードはデータを保持し、プログラムを実行する
![Page 19: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/19.jpg)
ノードスライス
![Page 20: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/20.jpg)
ノードスライスとは
Redshiftの並列処理単位
CPUコア数=ノードスライス数
ノードスライスは独自にCPUコア、メモリ、ストレージを持つ
ノードスライス間では、データ共有できない
![Page 21: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/21.jpg)
データ分散の方法
均等方式
分散キー方式
ALL 分散
![Page 22: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/22.jpg)
均等分散
テーブルが結合に関与しない場合に向いている
![Page 23: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/23.jpg)
分散キー方式
列の値が一致するとき 物理的に同じ場所に格納される
![Page 24: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/24.jpg)
ALL分散
更新頻度・範囲が少ないデータに適している
![Page 25: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/25.jpg)
再分散とは
異なるノードスライス間でJOINするとき、 一時テーブルに、必要な全データを転送する処理
![Page 26: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/26.jpg)
再分散が発生するケース(低速)
結合に使うキーと分散キーが異なる場合
![Page 27: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/27.jpg)
再分散が発生しないケース(高速)
結合に使うキーと分散キーが同じ場合
![Page 28: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/28.jpg)
データ分散の目標
ノード間でワークロードを均等に分散させる
クエリ実行中のデータ移動を最小限にとどめる
![Page 29: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/29.jpg)
パフォーマンス・チューニング
1. 最適な分散方式の選択
2. 最適な分散キーの選択
3. 最適なソートキーの選択
![Page 30: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/30.jpg)
分散キーのチューニング
特定のノードに行が集中しないように、偏りのないカラムを分散キーにする(CPU)
同じノードに配置されたデータでJOINできるように、結合キーを分散キーにする(ネットワーク)
同じノードに配置されたデータで集約できるように、GROUP BYに使うカラムを分散キーにする(ネットワーク)
![Page 31: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/31.jpg)
AWSシステム構成例
![Page 32: Amazon Redshiftを使ったデータ分析](https://reader030.fdocuments.net/reader030/viewer/2022032616/55a8bb6b1a28ab9d418b4784/html5/thumbnails/32.jpg)
Redshiftを使ったデモ
松江市人口統計データを S3経由でRedshiftにインポートし、
ビジュアライズツールtableauで可視化する