六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

存儲(chǔ)空間緊張?來(lái)看 TDengine TSZ 壓縮算法如何顯著提升壓縮率

TSZ 壓縮算法是 TDengine 為浮點(diǎn)數(shù)據(jù)類型提供的可選壓縮算法,可以實(shí)現(xiàn)浮點(diǎn)數(shù)有損至無(wú)損全狀態(tài)壓縮,相比默認(rèn)壓縮算法,TSZ 壓縮算法壓縮率更高,即使切至無(wú)損狀態(tài),壓縮率也會(huì)比默認(rèn)壓縮高一倍。一般來(lái)說(shuō),TSZ 壓縮算法是通過(guò)數(shù)據(jù)預(yù)測(cè)技術(shù)完成的壓縮,所以更適合有規(guī)律變化的數(shù)據(jù)。同時(shí) TSZ 壓縮時(shí)間會(huì)更長(zhǎng)一些,在我們的服務(wù)器 CPU 空閑、存儲(chǔ)空間緊張的情況下適合選用。

在此前發(fā)布的《壓縮比提高5倍!貢獻(xiàn)者+1》一文中,華中科技大學(xué)、武漢光電國(guó)家研究中心的碩士研究生鐘宇為大家詳細(xì)介紹了其在近期發(fā)表的學(xué)術(shù)論文中,針對(duì) TDengine TSZ 壓縮算法進(jìn)行的相關(guān)改進(jìn)。本篇文章中,我們將就如何在 TDengine 中開啟 TSZ 壓縮算法進(jìn)行詳細(xì)說(shuō)明,并會(huì)針對(duì) TSZ 壓縮算法展開功能測(cè)試,為大家驗(yàn)證其在實(shí)際業(yè)務(wù)場(chǎng)景中的更優(yōu)性能。

在 TDengine 中開啟 TSZ 壓縮算法

TDengine 3.2.0.0 及以上版本中支持此壓縮算法。在 taos.cfg 配置中增加以下內(nèi)容,即可開啟 TSZ 壓縮算法,功能打開后,會(huì)替換默認(rèn)算法。以下表示字段類型是 float 及 double 類型都使用此壓縮算法,也可以單獨(dú)只配置一個(gè)。

lossyColumns     float|double

配置成功后需要重啟服務(wù)才能生效,當(dāng) Taosd 日志輸出以下內(nèi)容時(shí),即表明功能已生效:

02/22 10:49:27.607990 00002933 UTL  lossyColumns     float|double

配置參數(shù)

FLOAT 類型精度控制:

存儲(chǔ)空間緊張?來(lái)看 TDengine TSZ 壓縮算法如何顯著提升壓縮率 - TDengine Database 時(shí)序數(shù)據(jù)庫(kù)

DOUBLE 類型精度控制:

存儲(chǔ)空間緊張?來(lái)看 TDengine TSZ 壓縮算法如何顯著提升壓縮率 - TDengine Database 時(shí)序數(shù)據(jù)庫(kù)

TSZ 壓縮中可選擇的算法 FSE,默認(rèn)為 HUFFMAN:

存儲(chǔ)空間緊張?來(lái)看 TDengine TSZ 壓縮算法如何顯著提升壓縮率 - TDengine Database 時(shí)序數(shù)據(jù)庫(kù)

但需要注意的是,打開 TSZ 后生成的存儲(chǔ)數(shù)據(jù)格式,在回退至 3.2.0.0 之前的版本后數(shù)據(jù)將不能被識(shí)別。

TDengine TSZ 壓縮算法功能測(cè)試

數(shù)據(jù)正確性

首先我們需要驗(yàn)證寫入數(shù)據(jù)被 TDengine 存儲(chǔ)后再次讀取出來(lái)的正確性:

  • 通過(guò) 0-others/compress_tsz1.py 實(shí)現(xiàn);
  • 寫入 10 個(gè)子表, 每子表 10 萬(wàn)數(shù)據(jù),分別寫入 float 和 double 字段指定的隨機(jī)值,寫入完成后全部再讀取出來(lái),和原來(lái)寫入時(shí)的值進(jìn)行比較。原來(lái)寫入的值把整數(shù)及小數(shù)部分分別在兩個(gè) int64 的字段中保存,驗(yàn)證時(shí)再讀取出來(lái)合成一個(gè)浮點(diǎn)數(shù)進(jìn)行驗(yàn)證。驗(yàn)證的誤差 float 為 1e-6, double 為 1e-12;
  • 驗(yàn)證通過(guò),數(shù)據(jù)完全正確。

數(shù)據(jù)兼容性

首先我們需要先寫入打開 TSZ 壓縮的數(shù)據(jù),然后再寫入關(guān)閉 TSZ 壓縮的數(shù)據(jù),此階段測(cè)試預(yù)期是不管 TSZ 選項(xiàng)打開或關(guān)閉,原來(lái)使用 TSZ 寫入的及沒有使用 TSZ 寫入的都能正確讀取出來(lái)。

測(cè)試步驟如下:

  1. 配置 TSZ 選項(xiàng)為打開 lossyColumns float|double
  2. 啟動(dòng) taosd
  3. 創(chuàng)建數(shù)據(jù)庫(kù)及表,表中包括 float 及 double 字段
  4. 寫入 100 萬(wàn)條數(shù)據(jù)
  5. 寫入成功后讀取并查看數(shù)據(jù)正確性
  6. 退出 taosd 并關(guān)閉 TSZ 選項(xiàng)
  7. 啟動(dòng) taosd 并寫入新數(shù)據(jù)到表中

測(cè)試結(jié)果顯示原來(lái)的數(shù)據(jù)及新寫入數(shù)據(jù),都正常為符合預(yù)期,反復(fù)打開及關(guān)閉 TSZ,不影響已寫入數(shù)據(jù)的正常存取。

性能比較

我們對(duì)本次新引入的 FSE 算法、原來(lái)的算法,及關(guān)閉 TSZ 壓縮后的三個(gè)場(chǎng)景作為三種方案進(jìn)行對(duì)比測(cè)試,驗(yàn)證打開 TSZ 算法及使用 TSZ 新的 FSE 算法的效果。本次測(cè)試的數(shù)據(jù)規(guī)模如下:1 個(gè)超級(jí)表,2 個(gè)子表,每子表 100 萬(wàn)條數(shù)據(jù),子表為 25 列 (其中 float 11 列、double 11 列)。

下表為最終測(cè)試結(jié)果:

存儲(chǔ)空間緊張?來(lái)看 TDengine TSZ 壓縮算法如何顯著提升壓縮率 - TDengine Database 時(shí)序數(shù)據(jù)庫(kù)

從上表可知,方案一中新增的 FSE 算法打開后寫入性能優(yōu)于原來(lái)的算法,符合預(yù)期;其次,TSZ 壓縮算法打開比關(guān)閉時(shí),在寫入性能、查詢及壓縮率方面均有小幅提升,此結(jié)論也符合預(yù)期。

寫在最后

在閱讀完本篇文章后,你一定對(duì)在 TDengine 中開啟 TSZ 壓縮算法及如何打造更優(yōu)質(zhì)性能有了更深入的了解,現(xiàn)在你可以進(jìn)行操作了。如果在實(shí)操過(guò)程中碰到任何問題或難點(diǎn),可以添加小T vx(tdengine),和我們的資深研發(fā)工程師進(jìn)行面對(duì)面溝通。