OpentTsdb官方文檔中文版----降采樣

??降采樣(或在信號處理中,抽?。┦墙档蛿?shù)據(jù)采樣率或分辨率的處理過程。例如,假設(shè)溫度傳感器每秒鐘都向OpenTSDB系統(tǒng)發(fā)送數(shù)據(jù)。如果用戶在一小時內(nèi)查詢數(shù)據(jù),他們將獲得3,600個數(shù)據(jù)點,這些數(shù)據(jù)點可以相當容易地繪制出來。但是現(xiàn)在,如果用戶要求整整一周的數(shù)據(jù),他們將獲得604,800個數(shù)據(jù)點,并且突然間圖形可能變得非?;靵y。使用降采樣器,單個時間序列在一個時間范圍內(nèi)的多個數(shù)據(jù)點在一個對齊的時間戳中與數(shù)學函數(shù)一起聚合成單個值。這樣我們可以將數(shù)量從604,800減少到168。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供高邑企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、做網(wǎng)站、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為高邑眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

??降采樣器至少需要兩個組件:

  • 時間間隔(interval)- 一個時間范圍(或存儲桶),用于聚合這些值。例如:我們可以將1分鐘或1小時甚至整整一天的多個值聚合。間隔以<Size><Units>格式指定,例如1h為1小時或30m為30分鐘。從2.3開始,現(xiàn)在可以用“all”將時間范圍內(nèi)的所有結(jié)果縮減為一個值。例如,0all-sum將從查詢開始到結(jié)束總結(jié)所有值。請注意,數(shù)值仍然是必需的,但它可以是零或任意其他值。
  • 聚合函數(shù)- 確定如何合并區(qū)間中的值的數(shù)學函數(shù)。與前述的聚合器一致。

??舉例說明:如下時間序列A和B。數(shù)據(jù)點覆蓋70秒的時間范圍,每10秒一個值。假設(shè)我們希望縮減到30秒,因為用戶正在查看更寬時間跨度范圍的圖。此外,我們使用sum聚合器將這兩個序列分組為一個。我們可以指定一個降采樣器30s-sum,它將創(chuàng)建30秒的桶并累計每個桶中的所有數(shù)據(jù)點。這將為我們提供每個序列的三個數(shù)據(jù)點:

時間序列T0T0+10sT0+20sT0+30sT0+40sT0+50sT0+60s
A 5 5 10 15 20 5 1
A sum降采樣 5+5+10=20 ? ? 15+20+5=40 ? ? 1
B 10 5 20 15 10 0 5
B sum降采樣 10+5+20=35 ? ? 15+10+0=25 ? ? 5
sum聚合結(jié)果 55 ? ? 65 ? ? 6

??正如你所看到的,對于每一個時間序列,我們會生成標準化的間隔邊界(每30秒),這樣我們就必須在時間戳t0,t0+30s和t0+60s合并序列的值。每個間隔或存儲桶將包含包含存儲桶時間戳(start)的數(shù)據(jù)點,并且不包括以下存儲桶的時間戳(end),即[start, end)半開半閉區(qū)間。在這種情況下,第一個桶將從 t0延伸到t0+29.9999s,使用提供的聚合器,將所有值合并為一個新值。例如,對于序列A,我們對t0,t0+10s并t0+20s的值求和得到新的值20在t0。最后,查詢使用sum進行分組,以便我們累加兩個合成的時間序列。此時,OpenTSDB總是在降采樣執(zhí)行后再執(zhí)行分組聚合。

注意:
?對于早期版本的OpenTSDB,新數(shù)據(jù)點的實際時間戳將是時間間隔范圍中每個數(shù)據(jù)點的時間戳的平均值。從2.1和更高版本開始,每個點的時間戳與基于當前時間的模和降采樣間隔的時間桶的開始對齊。

??降采樣時間戳基于原始數(shù)據(jù)點時間戳的剩余部分(差值)除以下采樣間隔(以毫秒為單位,即模數(shù))進行歸一化。在Java中代碼是:timestamp - (timestamp % interval_ms)。例如,給定時間戳1388550980000或1/1/2014 04:36:20 UTC,1小時間隔(相當于3600000毫秒),結(jié)果時間戳將舍入為1388548800000。在4至5 UTC之間的所有數(shù)據(jù)點將在4 AM桶中收尾。如果以1小時的間隔查詢一天的數(shù)據(jù)降采樣,則將會收到24個數(shù)據(jù)點(假設(shè)所有24小時都有數(shù)據(jù))。
?使用“0all-”間隔時,查詢的開始時間將成為結(jié)果的時間戳。
?歸一化(標準化)對于常見查詢非常有效,例如將一天的數(shù)據(jù)降采樣到1分鐘或1小時。但是,如果嘗試以奇數(shù)間隔(如36分鐘)降采樣,則由于模數(shù)計算的性質(zhì),時間戳可能看起來有點奇怪。給定36分鐘的時間間隔以及我們上面的示例,時間間隔為2160000毫秒,結(jié)果為時間戳1388549520或04:12:00 UTC。所有在04:12與04:48之間的數(shù)據(jù)點將收尾在一個桶中。

日歷邊界

??從OpenTSDB 2.3開始,用戶可以指定基于日歷的降采樣而不是快速取模的方法。這對于報告目的更為有用,例如查看與人類可讀時間相關(guān)的值,例如數(shù)月,數(shù)周或數(shù)天。此外,降采樣可以考慮時區(qū),并納入夏時制時間偏移和時區(qū)偏移。
?要使用日歷邊界,請查看正在查詢的接口文檔。例如,V2版本的 URI接口具有指定要使用的特定時區(qū)的參數(shù),例如&timezone=Asia/Kabul,基于日歷的降采樣可通過將附加c到間隔時間單位中來啟用如&m=sum:1dc-sum:my.metric。對于JSON查詢,在頂層使用單獨的字段timezone以及useCalendar布爾標識。如果未提供時區(qū),則日歷將使用UTC時間。
?通過日歷降采樣,第一個時間間隔在指定時區(qū)的查詢年份捕捉到1月1日的00:00:00。從那里開始計算間隔桶直到查詢的結(jié)束時間。每個存儲桶都標有存儲桶開始的時間戳(包含,閉區(qū)間),并包括所有的值,直到下一個存儲桶開始為止。

填充策略

??降采樣通常用于對齊(調(diào)整)時間戳,以避免在執(zhí)行分組時進行插值。由于OpenTSDB不會對時間對齊或值存在時施加約束,因此必須在查詢時指定這些約束。使用降采樣執(zhí)行分組聚合時,如果所有序列都缺少預(yù)期間隔的值,則不會發(fā)出任何數(shù)據(jù)。例如,如果一個序列的以間隔每分鐘從t0到t0+6m寫入數(shù)據(jù),但由于某種原因源在t0+3m未能寫入數(shù)據(jù),只有5個值將被序列化時,用戶可能希望有6個值。在2.2及更高版本的填充策略中,您現(xiàn)在可以選擇任意值在t0+3m發(fā)出,用戶(或應(yīng)用程序)將看到的值特定時間戳缺少的值,而不必找出缺少哪個時間戳。只要降采樣桶為空,填充策略就會簡單地發(fā)出預(yù)定義的值。
?可用的策略包括:

  • None(none) –默認行為,在序列化過程中不會發(fā)出缺失值,并在聚合序列時執(zhí)行線性插值(或其他指定的插值)。
  • NaN(nan) –當序列中所有值都缺失時,在序列化輸出中發(fā)出NaN 。當值缺失時跳過聚合中的序列,而不是將整個組計算轉(zhuǎn)換為NaN組。
  • Null(null) – 除了在序列化過程中它發(fā)出的是一個null而不是NaN,與NaN有相同的行為。
  • Zero(zero) – 當缺少時間戳時以0替換。零值將被合并到聚合結(jié)果中。
    ?要使用填充策略,請將策略名稱(括號中的術(shù)語)附加到由連字符分隔的降采樣聚合函數(shù)的末尾。例如1h-sum-nan或1m-avg-zero。
    ?在這個例子中,我們每10秒鐘報告一次數(shù)據(jù),并且我們希望通過每10秒降采樣并通過NaN填充缺失值來執(zhí)行10秒報告的查詢 - 時間策略10s-sum-nan:
時間序列T0T0+10sT0+20sT0+30sT0+40sT0+50sT0+60s
A 15 5 ?
B 10 20 15 20
A sum 降采樣 NaN NaN NaN 15 NaN 5 NaN
B sum 降采樣 10 NaN 20 15 NaN NaN 20
sum 聚合結(jié)果 10 NaN? ?20 15 NaN ?5 20

??如果我們在沒有填充策略的情況下要求輸出,則在t0+20s或t0+40s將會沒有值或時間戳被發(fā)出。另外,B序列中在t0+30s和t0+50s的值將被線性插值,以填充要與序列A相加的值。

網(wǎng)頁題目:OpentTsdb官方文檔中文版----降采樣
文章轉(zhuǎn)載:http://bm7419.com/article4/pcgoie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、、網(wǎng)站收錄、網(wǎng)站設(shè)計公司電子商務(wù)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)