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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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