Search

OakieTags

Who's online

There are currently 0 users and 41 guests online.

Recent comments

Affiliations

Teradata MulTi-Value Compression

ExadatのHybrid Columnar Compression(HCC)とと呼ばれるカラム単位のCompress機能をTeradataではMulTi-Value Compressionと呼ぶ。また機能もExadataより多い:

1.Dictionary-based Compression
頻繁に登場するパターンをDictionaryで管理し実データを持たない。


CREATE TABLE Customer
(Customer_Account_Number INTEGER
,Customer_Name VARCHAR(50) COMPRESS
(‘Joe’,‘Mary’)
,Customer_Address CHAR(200));

上記の例では一般的な人名のリストを同時に定義し人名の実データをレコードに持たせない。
これを応用すれば商品マスターなども持つ必要もなくなる。

2.Algorithmic Compression  コンプレスアルゴリズムを設定する機能
繰り返し文字やブランクの数などが圧縮効率を左右してしまう。そこで、実データに適したコンプレス・アルゴリズムを明示的に指定し、圧縮率を上げることが可能となる。


CREATE TABLE Customer
(Customer_Account_Number INTEGER,
Customer_Name VARCHAR(50),
Customer_Address CHAR(200) CHARACTER SET UNICODE
COMPRESS USING TransUnicodeToUTF8
DECOMPRESS USING TransUTF8ToUnicode);

上記の例ではUnicodeに適したアルゴリズムを明示的に指定することにより、Unicodeで成り立つカラムの圧縮率を上げている。

3.Block-level compression(BLC) 最も圧縮率の高い圧縮法
データロード時にブロック単位でコンプレスを行い、他のコンプレスより圧縮率が高い(5倍)。
その代わりにUncompress時にCPUを余計に消費するので、アクセス頻度の低いデータ向けとなる。

データロード時のBLC例


Turn BLC ON
SET QUERY_BAND = ‘BLOCKCOMPRESSION=YES;’ FOR SESSION;

Insert into empty table
INSERT INTO target_table
SELECT * FROM source_table;;

Turn BLC OFF
SET QUERY_BAND = ‘BLOCKCOMPRESSION=NO;’ FOR SESSION;

Teradata Magagine Q4/2010より