More Related Content Similar to db-tech-showcase-sapporo-b24-20150911p (20) More from Satoru Ishikawa (13) db-tech-showcase-sapporo-b24-20150911p1. B:24 Amazon Redshift
石川 覚 ソリューションアーキテクト
クラスメソッド株式会社
Ⓒ Classmethod, Inc.
2015年09月11日
事例でわかるデータ分析基盤の活用
∼ Amazon Redshift の最新動向
db tech showcase
Sapporo HOKKAIDO SEP 10-11, 2015
1
#dbts2015 #be_crazy_about_db_tech
2. 石川 覚(いしかわ さとる)
2Ⓒ Classmethod, Inc.
メーカー系SE、VoIP関連ベンチャー企業を経て
CMに2014/06 join
札幌出身、東京に8年
Linux, Java, MySQL, Redshift
マイブームは 統計学、R
クラスメソッド株式会社
ソリューションアーキテクト
13. 13Ⓒ Classmethod, Inc.
Amazon Redshiftの特長
クラウド内で完全に管理された、ペタバイト規模のDWHサービス
バックアップ、パッチ適用、モニタリング、ディスク・ノード障害自動復旧
大容量:160GB∼1.6PB
高速:カラムナ型+列圧縮、超並列演算(MPP)、シェアードナッシング
インスタンスの従量課金(ライセンス不要)
15. 15Ⓒ Classmethod, Inc.
クラスタの構成
Leader Node
- SQL Endpoint
- メタデータの管理
- クエリ実行の連携
Compute Nodes
- カラムナ・ストレージをローカルに保持
- クエリーを並列実行
- S3, DynamoDB, EMR, SSHを経由して、
- データのロード・アンロード、
- バックアップ・リストア
2つのHWプラットフォーム
- データ処理に最適化した
- DC1 SSD 0.16TB~326TBまでスケール
- DC2 HDD 2TB~2PBまでスケール
17. 1. 分析データ(ファイル)をS3に 置く
2. ETL処理する
3. ETL後データ(ファイル)をS3に 置く
4. COPYコマンドでデータを高速ロード
5. Analyze&Vacuumを実行(必要に応じて)
6. BIツール経由でSQLを投入して利用開始
17Ⓒ Classmethod, Inc.
基本的な利用の流れ
分析データ ETL
EC2/EMRS3
データ
(ETL済み)
Redshift
データ
S3 BIツール
(Tableau)
分析
Analyze&Vacuumを実行管理者
18. 18Ⓒ Classmethod, Inc.
データのロード(COPY)
COPY from S3
- S3に置いてそのファイルをRedshiftに取込む
- ETL済みのデータ
COPY from EC2
- EC2上のファイルをRedshiftに取込む
- マニフェストファイルはS3に事前に置く必要がある
- VPC内でデータを渡せる
その他のデータソース
- DynamoDB、EMR(Elastic Map Reduce)、Treasure Data
31. 31Ⓒ Classmethod, Inc.
主キー・ソートキーの指定
主キー
- RDBと同様に一意に識別できるキーを指定する
ソートキー
- 主キーに加えて、集計したい列を順に追加
- ファクトテーブルは日付など増加する値が一般的
外部キー、一意キー
- 必要に応じて設定する
制約は有効にならないが、クエリプランナーによって利用され
るので設定したほうが良い
圧縮分析(ANALYZE COMPRESSION)の判定に利用される
32. 32Ⓒ Classmethod, Inc.
分散キーの選定
EVEN
- 各レコードをラウンドロビンでスライスに蓄積する
DISTKEY
- 各レコードの明示的に指定したカラム(一つのみ)のハッシュ値に基づ
きスライスにデータを蓄積する
ALL
- 全てのノードにデータを蓄積する
クラスタ内のスライスに対し、均等にデータを配置する
ジョイン対象となるテーブルとのコロケーション考慮する
データサイズが小さなマスタテーブルやディメンションはALL
ファクトテーブルはDISTKEYを指定、不可能な場合はEVEN
33. 33Ⓒ Classmethod, Inc.
列圧縮タイプ
データ投入済みテーブルの分析して推奨列エンコーディングをレポート出力
- ANALYZE COMPRESSIONの例 エンコードタイプ キーワード
raw(非圧縮) RAW
バイトディクショナリ BYTEDICT
デルタ DELTA
DELTA32K
LZO LZO
mostlyn MOSTLY8
MOSTLY16
MOSTLY32
ランレングス RUNLENGTH
テキスト TEXT255
TEXT32K
labdb=> ANALYZE COMPRESSION users COMPROWS 1000000;
Table | Column | Encoding
-------+---------+----------
users | id | delta32
users | name | lzo
users | age | bytedict
(3 行)
最も圧縮率の高いエンコードタイプで速いものではない
エンコードタイプを設定してテーブルの再作成して、データをCOPYコ
マンドで再投入する必要があり
COPYコマンドでCOMPUPDATE ON COMPROWS n を指定すると推
奨列エンコードで再作成される
37. 37Ⓒ Classmethod, Inc.
ノードタイプの名称変更・追加
高密度ストレージノードタイプ(HDD)
- より大容量のデータストレージが必要な場合
高密度コンピューティングタイプ(SSD)
- パフォーマンス重視の作業負荷用に最適化
vCPU
メモリ[GiB]
(スライス)
ストレージ
(スライス)
I/O
dc1.large 2
15
(7.5)
0.16TB SSD
(0.08TB SSD)
0.20GB/s
dc1.8xlarge 32
244
(7)
2.56TB SSD
(0.08TB SSD)
3.70GB/s
ds2.xlarge 4
31
(7.75)
2TB HDD
(1TB HDD)
0.50GB/s
ds2.8xlarge 36
244
(6.77)
16TB HDD
(1TB HDD)
4.00GB/s
42. 42Ⓒ Classmethod, Inc.
Interleaved Sortkey
Interleaved Sortkeyが有効なケース
– どのキーがWHERE句で指定されるか絞り切れないケース
– 複数キーのAND条件で検索されるケース
データマートのテーブルにINTERLEAVED SORTKEYを指定することで、
M-OLAP(Multi Dementional OLAP)ほどの重い事前集計が不要で、
M-OLAPのような高速かつ柔軟なデータディスカバリが実現
44. 44Ⓒ Classmethod, Inc.
Interleaved Sortkey
運用時の考慮
– VACUUM REINDEXが必須 (VACUUM FULLではダメ)
– 大きなテーブルのVACUUM REINDEXは時間を要する
– 初期のテーブルに対してINSERT INTO … SELECTでデー
タ挿入しても、ソートされない
Interleaved Sortkeyは、あまり大きくないテーブルや、
頻繁に更新しないテーブルに対して利用に向いている
46. Dynamic と Static の区別が用意され、Dyamic Parameter は
Redshift を再起動せずにパラメータ変更が可能になりました。
Dynamic Parameter
Concurrency(並列実行数)
Percent of memory to use (メモリ使用量)
Static Parameter
User groups
User group wildcard
Query groups
Query group wildcard
Timeout
46Ⓒ Classmethod, Inc.
動的ワークロードマネジメント(WLM)
49. Amazon Redshift 専用 ODBC/JDBC のリリース
Query Visualization for Amazon Redshift
Avroフォーマットのデータロードをサポート
LISTAGG関数/LISTAGG Window関数
49Ⓒ Classmethod, Inc.
その他のトピック
50. Amazon Redshift 専用 ODBC/JDBC のリリース
Query Visualization for Amazon Redshift
Avroフォーマットのデータロードをサポート
LISTAGG関数/LISTAGG Window関数
50Ⓒ Classmethod, Inc.
その他のトピック
10月には re:Invent 2015が開催
新機能が登場します(例年通りだと)
52. 52Ⓒ Classmethod, Inc.
まとめ
データのアクセス要件に合致したDBを見極め、最適なAWSのサービスを組合せる
- ACIDで高可用性が求められる業務データ 、柔軟な条件指定が必要
- Amazon RDS(Oracle、MySQL、PostgreSQL、SQL Server)
- Amazon RDS for Aurora(ElasticなRDBサービス)
- BASEだがレイテンシやスケールが必須 、KeyValue指定でデータ取得
- Amazon ElastiCache (Memcached、Redis)
- Amazon DynamoDB(ElasticなKVSサービス)
- 大量の非構造化データの分析
- Amazon EMR(Elastic Map Reduce)
- 大量の構造化データの分析、検索、BIツールの連携
- Amazon Redshift(ElasticなDWHサービス)
- 大量のファイルの保存
- Amazon S3(Elasticなファイルサービス)
Amazon Redshift は、性能・
運用・コストの点で優れ、
大規模な構造化データの管理・
分析に最も適したサービス