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

存儲空間緊張?來看 TDengine TSZ 壓縮算法如何顯著提升壓縮率

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

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

在 TDengine 中開啟 TSZ 壓縮算法

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

lossyColumns     float|double

配置成功后需要重啟服務才能生效,當 Taosd 日志輸出以下內容時,即表明功能已生效:

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

配置參數(shù)

FLOAT 類型精度控制:

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

DOUBLE 類型精度控制:

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

TSZ 壓縮中可選擇的算法 FSE,默認為 HUFFMAN:

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

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

TDengine TSZ 壓縮算法功能測試

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

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

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

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

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

測試步驟如下:

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

測試結果顯示原來的數(shù)據(jù)及新寫入數(shù)據(jù),都正常為符合預期,反復打開及關閉 TSZ,不影響已寫入數(shù)據(jù)的正常存取。

性能比較

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

下表為最終測試結果:

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

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

寫在最后

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