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

五分鐘掌握TDengine時序數(shù)據(jù)的保留策略

小?T?導讀:在《這幾個神秘參數(shù),教你TDengine集群的正確使用方式》這篇文章中,我們講到了如何利用合理的配置vnode完成TDengine Database的數(shù)據(jù)分片,本期我們來繼續(xù)講講TDengine如何從時間維度去對數(shù)據(jù)進行管理。

首先,先看看官網(wǎng)的相關(guān)描述:

“TDengine除vnode分片之外,還對時序數(shù)據(jù)按照時間段進行分區(qū)。每個數(shù)據(jù)文件只包含一個時間段的時序數(shù)據(jù),時間段的長度由DB的配置參數(shù)days決定。這種按時間段分區(qū)的方法還便于高效實現(xiàn)數(shù)據(jù)的保留策略,只要數(shù)據(jù)文件超過規(guī)定的天數(shù)(系統(tǒng)配置參數(shù)keep),將被自動刪除。而且不同的時間段可以存放于不同的路徑和存儲介質(zhì),以便于大數(shù)據(jù)的冷熱管理,實現(xiàn)多級存儲?!?/p>

五分鐘掌握TDengine時序數(shù)據(jù)的保留策略 - TDengine Database 時序數(shù)據(jù)庫

可以看出,時序數(shù)據(jù)的保留策略是由keep和days這兩個參數(shù)牢牢把控的。但是,如果我們想更加深入地理解TDengine時序數(shù)據(jù)的存儲邏輯,從而優(yōu)化性能的話,只知道上面這些是不夠的。

官方文檔關(guān)于keep和days的描述是這樣的:

keep:數(shù)據(jù)庫中數(shù)據(jù)保留的天數(shù),單位為天,默認值:3650

days:一個數(shù)據(jù)文件存儲數(shù)據(jù)的時間跨度,單位為天,默認值:10

TDengine通過keep和days嚴格控制插入數(shù)據(jù)的時間戳范圍:對于過去的數(shù)據(jù),不可以超出當前時間減去keep的時間戳值;對于未來的數(shù)據(jù),不可以超出當前時間加上days的時間戳值。

我們假設(shè)某數(shù)據(jù)庫的keep參數(shù)為7,days參數(shù)為3,當前時間為某月9日的0點0分。

由于keep為7,所以2日(9-7)之前的數(shù)據(jù)一定是不可以寫入的。再加上限制未來時間數(shù)據(jù)的插入,12日(9+3)之后的數(shù)據(jù)也是不可以插入的。通過這樣的方式,就有了TDengine當前可處理數(shù)據(jù)的時間范圍time range(彩色范圍),當你試圖寫入位于灰色時間區(qū)域的數(shù)據(jù)時——就會看到“timestamp out of time range”的提示了。

這組圖代表了隨著當前時間軸的移動,數(shù)據(jù)文件的分布情況和可寫入數(shù)據(jù)范圍的變化。

五分鐘掌握TDengine時序數(shù)據(jù)的保留策略 - TDengine Database 時序數(shù)據(jù)庫
五分鐘掌握TDengine時序數(shù)據(jù)的保留策略 - TDengine Database 時序數(shù)據(jù)庫

隨著時間的推移,數(shù)據(jù)的時間戳會與系統(tǒng)時間做計算,一旦超過keep天數(shù),就會被識別為過期數(shù)據(jù),等到這個數(shù)據(jù)文件內(nèi)的所有數(shù)據(jù)都過期后,這個數(shù)據(jù)文件才會被從計算機上清除。

以上述組圖為例,由于2日和4日的數(shù)據(jù)是在同一個數(shù)據(jù)文件(Data File 1)中,4日的數(shù)據(jù)最多可以保留到11日結(jié)束,所以2日的數(shù)據(jù)同樣也要保留到11日結(jié)束。所以我們可以看到,12日的時候,Data File 1已經(jīng)被刪除掉了。

細心的讀者可能會問,假如我寫入3日的數(shù)據(jù),我是如何知道這個數(shù)據(jù)會落在345這個區(qū)間,還是123,或是234呢。其實是這樣——TDengine是從1970年1月1日0時0分0秒起(EpochTime)開始,每3天劃一個分區(qū)。因此,對任何一個時間戳都是“劃到哪一片就算到哪一片”。

由于上述的機制刪除粒度較粗,所以為了優(yōu)化用戶的體驗,在2.1.5.0版本后,我們通過默認設(shè)置SQL查詢的where timestamp的起始時間大于過期時間來實現(xiàn)用戶側(cè)完全可控的“過期數(shù)據(jù)刪除”。所以,現(xiàn)在凡是過期的數(shù)據(jù)對用戶都是不可見的。

雖然在物理層面上,數(shù)據(jù)仍然是以數(shù)據(jù)文件為單位刪除的。但是除了對存儲空間有極其精細要求的用戶,絕大多數(shù)用戶都是沒有感知的。本次優(yōu)化過后,用戶不再需要為刪除粒度的粗細而產(chǎn)生顧慮。只要安心根據(jù)自己的業(yè)務類型,靈活設(shè)置days參數(shù)的大小以找到性能最優(yōu)的狀況就好了。

此外,由于給定了可寫入數(shù)據(jù)的時間范圍(now-keep到now+days),給定了數(shù)據(jù)切分的時間范圍(days),所以只要vnode目錄下面的數(shù)據(jù)文件組數(shù)量小于等于keep/days向上取余+1,就可以認為自動刪除機制是在正常工作的。

以上就是官方文檔上所說的:“給定days與keep兩個參數(shù),一個vnode總的數(shù)據(jù)文件數(shù)目最多為:keep/days+2”的含義。

從概念上來說,“TDengine是通過vnode以及時間兩個維度,對大數(shù)據(jù)進行切分,便于并行高效的管理,實現(xiàn)水平擴展?!钡侨绾巫尶菰锏母拍钅苻D(zhuǎn)化成自己正確的理解,還是需要學習的。《這幾個神秘參數(shù),教你TDengine集群的正確使用方式》與本文正是分別從這兩個維度切入TDengine原理的,可以說是比較核心的知識點了。

對于TDengine Database,我們希望大家可以知其然,也知其所以然。