Amazon Redshiftを使ったデータ分析

1,437 views

Published on

第七回 中国地方DB勉強会 in 松江、発表資料

Published in: Data & Analytics
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,437
On SlideShare
0
From Embeds
0
Number of Embeds
395
Actions
Shares
0
Downloads
18
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Amazon Redshiftを使ったデータ分析

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

×