TERADATA數(shù)據(jù)壓縮

數(shù)據(jù)壓縮

概況

本章描述了幾種數(shù)據(jù)壓縮選項(xiàng),它能夠幫助你減少磁盤空間的使用,在某種情況下,還可以提高I/O性能。

  • 多值壓縮(MVC)
  • 算法壓縮(ALC)
  • 行壓縮
  • 行標(biāo)題壓縮
  • 自動壓縮
  • 哈希索引和連接索引行壓縮
  • 塊級壓縮(BLC)

壓縮的目標(biāo)是利用最少的位數(shù)(bits)來準(zhǔn)確的表示信息。
壓縮方法可分為物理方法和邏輯方法。
物理方法獨(dú)立于數(shù)據(jù)本身意義對其進(jìn)行重新編碼, 而邏輯方法則通過一個更緊湊的集合來替換。

壓縮通過在單位物理容量中存儲更多的邏輯數(shù)據(jù)來降低存儲成本。壓縮產(chǎn)生更小的行,因此每個可以數(shù)據(jù)塊存儲更多行以減少數(shù)據(jù)塊數(shù)量。

壓縮還可以提高系統(tǒng)性能,因?yàn)槊總€查詢返回更少的物理數(shù)據(jù),同時壓縮過的數(shù)據(jù)在內(nèi)存中保持壓縮狀態(tài),因此FSG[1]緩存可容納更多行,從而減少磁盤I/O的大小。

[1]FSG cache: File Segment cache, a Teradata caching approach.

算法壓縮可以是有損或者是無損的,這取決于所選用的的算法。

TD的壓縮有一個很小的初始成本,但是即使對于小表的查詢,只要選擇的壓縮方法能過減小表的大小,這就是一個凈贏。

識別未壓縮,單值壓縮和多值壓縮表

SELECT dbt.DATABASENAME, dbt.TABLENAME,
  MAX(CASE WHEN (compressvaluelist IS NOT NULL)
                      THEN (CASE WHEN INDEX(compressvaluelist,',') >0
                                             THEN '3. MVC '
                                              ELSE '2, SVC '
                                              END)
                       ELSE '1. NONE'
                       END) AS COMPRESS_TYPE,
    MIN(pds.Current_Perm) AS Current_Perm
FROM DBC.Columns AS dbt, (
    SELECT t.DATABASENAME, t.TABLENAME,SUM(ts.CurretPerm) AS Current_Perm
    FROM DBC.Tables as t, DBC.TableSize AS ts
    WHERE t.DATABASENAME = ts.DATABASENAME
    AND t.TABLENAME = ts.TABLENAME
    AND ts.TABLENAME <> 'ALL'
    HAVAING Current_Perm > 15000000000
GROUP BY 1,2) AS pds
WHERE dbt.DATABASENAME IN ('aaaa','bbbb')
AND dbt.DATABASENAME = pds.DATABASENAME
AND dbt.TABLENAME = pds.TABLENAME
---- HAVING COMPRESS_TYPE = '1. None'
GROUP BY 1, 2
ORDER BY 1, 3, 4 DESC, 2;

多值壓縮

在列定義時,你可以指定一個壓縮值列表,MVC將列中這些重復(fù)出現(xiàn)的值壓縮。
MVC是一種無損的邏輯數(shù)據(jù)壓縮形式,

塊級壓縮

數(shù)據(jù)塊是I/O基本物理單位,用于定義TD如何處理數(shù)據(jù)。
當(dāng)你指定了塊級壓縮選項(xiàng),TD將以壓縮格式存儲數(shù)據(jù)來減少存儲空間。

BLC可以應(yīng)用到這幾種類型的表:

  • 主要數(shù)據(jù),回退,甚至是無法重新啟動的表

BLC還可以應(yīng)用于這幾種類型的子表:

  • BLOB, CLOB, XML, JOIN INDEX, HASH INDEX和Reference index.

BLC獨(dú)立應(yīng)用于其他任何應(yīng)用于相同數(shù)據(jù)的壓縮類型。
BLC可以使用更多的CPU來動態(tài)壓縮和解壓數(shù)據(jù),所以查詢性能是否隨BLC而增強(qiáng)取決于性能是否受I/O帶寬或CPU使用率的限制。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容