highlight js

2013年6月14日金曜日

AWS Redshiftについてメモ書き 2013/06/14

sortkey

RDBで言う所のindex的な。
SELECT時のパフォーマンスに影響大。

ex. 1億件ちょっとでSELECTかけた際は、これの有るなしで
5sec 〜 200secくらい違った。

指定方法 ex
  created_at datetime NOT NULL sortkey

sample
http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_examples.html

diskey

multi node運用した際に、diskeyを指定したカラムが同じ場合に、
同じノードに保存される。
ので、joinする時などに効果ありみたい。。
ユーザIDとか、他と紐付ける事が多いテーブルにするべきなのかな
指定方法 ex
  user_id varchar(32) NOT NULL distkey,
上記に関してはこの記事参考
http://gihyo.jp/dev/serial/01/redshift/0004


なお、ALTERでは上記指定はできない模様。
CREATE時にやるか、後からSELECT INSERT (できるのか?

まるっとテーブルコピーできた。
INSERT INTO TABLE1 (SELECT * FROM TABLE2);


ANALYZE COMPRESSION;

圧縮方法の分析をかける。30万〜レコード無いと、よろしく分析されない模様。
また、圧縮方法の指定に関してはCREATE TABLE時に
custkey int encode delta,  
となる。






ノードのリサイズについて

データ量によると思うが、割と時間かかる。
参考程度に、20カラム 1レコード2k 1億5000万件程度のDBをマルチノードの2スレッドに
リサイズしたら1時間半かかった。ふむ。。
しかしながらsortkeyをかけていないカラムでの検索がチョッパヤに。
シングルノードで200秒かかっていたのが3秒程度に。。
データ量によるんだろうけど、マルチノードの威力絶大。