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;
Recent comments
17 weeks 2 days ago
27 weeks 21 hours ago
28 weeks 5 days ago
32 weeks 7 hours ago
34 weeks 2 days ago
43 weeks 5 days ago
45 weeks 2 days ago
46 weeks 2 days ago
46 weeks 3 days ago
49 weeks 1 day ago