jaws ug中央線 lt redshift compression encodings(圧縮アルゴリズム)
DESCRIPTION
記念すべきJAWS UG中央線0回 でLTさせていただいたときの資料。 Amazon RedshiftのCompression Encodingsの話題です。TRANSCRIPT
![Page 1: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/1.jpg)
JAWS-UG中央線 LT
RedshiftCompression encodings
株式会社ALBERT
@iktakahiro2013-07-25
![Page 2: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/2.jpg)
自己紹介
•株式会社ALBERT•池内 孝啓 / Takahiro Ikeuchi•システム開発部 部長•@iktakahiro•高円寺北4丁目在住
![Page 3: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/3.jpg)
株式会社ALBERT
• 2005年07月設立•分析力をコアとする マーケティングソリューションカンパニー
![Page 4: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/4.jpg)
RedshiftCompression encodings
AmazonRedshift
![Page 5: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/5.jpg)
Compression encodings
• データ圧縮アルゴリズム
• カラム毎に指定できる
• アナライザも付属
http://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html
![Page 6: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/6.jpg)
Encodings の種類
• Raw(無圧縮)
• Byte Dictionary
• Delta
• Mostly
• Run-length
• Text
![Page 7: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/7.jpg)
Raw
• 無圧縮
• デフォルト設定
• データによってはRawが最も効率が良いことも
![Page 8: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/8.jpg)
Byte Dictionary
• 1Blockサイズ毎に256個までなら辞書のKeyで参照できるようになるイメージ
• 格納される文字列が限定的(都道府県名や国名とか)な場合に有効
• 一覧表に記載はないけどVARCHARでは有効にならない
http://redshiftuser.wordpress.com/2013/01/02/compression-experiment-1/
![Page 9: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/9.jpg)
Delta
• 前のレコードとの差分でデータを保持する
• 200 -> 201 -> 202 場合、差分の+1だけを保持する
• 差分が-127~127(8bit)を超えると起点としてリセットされる
• 16bitまで扱えるDelta32Kもある
![Page 10: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/10.jpg)
Mostly
• 数値を効率的に取り扱える
• 数値の絶対値が限定的な場合に有効(1~100で表現される採点結果とか)
![Page 11: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/11.jpg)
Run-length
• いわゆる連長圧縮
• 値が連続する場合に有効
• ALBERTが10回続く -> 10, ALBERT
![Page 12: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/12.jpg)
Text
• Byte DictionaryのVARCHAR版
• Text255とText32Kがある
• UserAgentの格納に有効かも(未検証
![Page 13: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/13.jpg)
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
![Page 14: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/14.jpg)
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 ?
イマイチな気もする。。
![Page 15: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/15.jpg)
まとめ
Compression encodings を設計して効率のよいデータ保存をしよう!
![Page 16: JAWS UG中央線 LT Redshift Compression Encodings(圧縮アルゴリズム)](https://reader034.vdocuments.mx/reader034/viewer/2022042607/55893fddd8b42abb5b8b4668/html5/thumbnails/16.jpg)
ご清聴ありがとうございました