JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)

1,483 views

Published on

記念すべきJAWS UG中央線0回 でLTさせていただいたときの資料。

Amazon RedshiftのCompression Encodingsの話題です。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,483
On SlideShare
0
From Embeds
0
Number of Embeds
359
Actions
Shares
0
Downloads
2
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)

  1. 1. JAWS-UG中央線 LT Redshift Compression encodings 株式会社ALBERT @iktakahiro 2013-07-25
  2. 2. 自己紹介 •株式会社ALBERT •池内 孝啓 / Takahiro Ikeuchi •システム開発部 部長 •@iktakahiro •高円寺北4丁目在住
  3. 3. 株式会社ALBERT •2005年07月設立 •分析力をコアとする  マーケティングソリューションカンパニー
  4. 4. Redshift Compression encodings Amazon Redshift
  5. 5. Compression encodings • データ圧縮アルゴリズム • カラム毎に指定できる • アナライザも付属 http://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html
  6. 6. Encodings の種類 • Raw(無圧縮) • Byte Dictionary • Delta • Mostly • Run-length • Text
  7. 7. Raw • 無圧縮 • デフォルト設定 • データによってはRawが最も効率が良い ことも
  8. 8. Byte Dictionary • 1Blockサイズ毎に256個までなら辞書の Keyで参照できるようになるイメージ • 格納される文字列が限定的(都道府県名 や国名とか)な場合に有効 • 一覧表に記載はないけどVARCHARでは 有効にならない http://redshiftuser.wordpress.com/2013/01/02/compression-experiment-1/
  9. 9. Delta • 前のレコードとの差分でデータを保持する • 200 -> 201 -> 202 場合、 差分の+1だけを保持する • 差分が-127∼127(8bit)を超えると 起点としてリセットされる • 16bitまで扱えるDelta32Kもある
  10. 10. Mostly • 数値を効率的に取り扱える • 数値の絶対値が限定的な場合に有効 (1∼100で表現される採点結果とか)
  11. 11. Run-length • いわゆる連長圧縮 • 値が連続する場合に有効 • ALBERTが10回続く -> 10,ALBERT
  12. 12. Text • Byte DictionaryのVARCHAR版 • Text255とText32Kがある • UserAgentの格納に有効かも(未検証
  13. 13. Analyzer ANALYZE COMPRESSION [table_name]; カラム名 データ型 用途 推薦結果 log_data TIMESTAMP 日付 Delta uri VARCHAR(512) URI Runlength user_agent VARCHAR(512) UA Runlength user_id VARCHAR(255) ユーザーID Runlength type CHAR(1) 種別 Runlength product_id VARCHAR(255) 商品ID Runlength price INTEGER 価格 Delta32K
  14. 14. Analyzer カラム名 データ型 用途 推薦結果 感覚値 log_data TIMESTAMP 日付 Delta Delta uri VARCHAR(512) URI Runlength Text32K user_agent VARCHAR(512) UA Runlength Text255 user_id VARCHAR(255) ユーザーID Runlength Raw type CHAR(1) 種別 Runlength Runlength product_id VARCHAR(255) 商品ID Runlength Text32K price INTEGER 価格 Delta32K Mostly ? イマイチな気もする。。
  15. 15. まとめ Compression encodings を設計して 効率のよいデータ保存をしよう!
  16. 16. ご清聴ありがとうございました

×