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