1. 程式人生 > >OpenTSDB介紹——基於Hbase的分散式的,可伸縮的時間序列資料庫,而Hbase本質是列儲存

OpenTSDB介紹——基於Hbase的分散式的,可伸縮的時間序列資料庫,而Hbase本質是列儲存

1. 關於metric, tag name和tag value

    1) opentsdb的每個時間序列必須有一個metric和一個或多個(tag name, tag value)對,每個時間序列每小時的資料儲存為一行。

    2) Opentsdb的metric, tag name和tag value各自的UID數量上限為2^24個,該值可以通過改變原始碼重新編譯後進行修改,最多可以擴充套件到8位元組,即2^64個。不建議修改。

    3) tag name和tag value的UID分配是完全獨立的,例如,如果tag value的取值為整數2,那麼這個值完全可以被多個tag name所使用,例如cpu=2, interface=2, hdd=2等。

    4) 在設計系統時應該確保metric, tag name和tag value的可能取值在較小的範圍內,因為它們的數量影響到查詢速度。

    5) 注意事項:

           a. 減少它們的數量。

           b. 為每個metric使用同類的tag name

           c. 考慮系統常用的查詢方式,選擇合適的時間序列metric和tag

           d. 每個metric的tag數量維持在5個以內,最多不超過8個。

    6) 儲存時間序列資料的時候,每個資料點要包含以下內容:metric,至少一對tag,時間戳(自1970年起的秒或毫秒),一個數值(整數或浮點數)。

    7) 時間戳:一定是整數,且不超過13位。如果是13位表示毫秒,10位則表示秒。在一個序列中應該採用同樣單位的時間戳(都是秒或者都是毫秒),混合不同單位的時間戳會引起查詢緩慢,如無必要,應該用秒為單位,降低儲存空間的消耗。

    8) metric和tag的命名規則:大小寫敏感,不允許空格,只允許以下字元:字母,數字,減號,下劃線,點號,斜槓(/),長度不限,但是儘量短一些。

2. 資料點:

      1) 只能由數字和小數點組成,如果沒有小數點,則認為是整數,否則認為是浮點數。整數使用可變長度編碼方式,最少1位元組,最多8位元組。浮點數為4位元組單精度浮點數。由於浮點數是單精度型別,因此不支援需要精確值得浮點數,例如15.2會被儲存為15.199999809265137

      2) 寫入資料時不必按照時間順序寫入,時間戳在後的資料可以先寫入,再寫入時間戳在前的資料。

      3) 資料重複寫入的問題:

            a. 在同一小時內多次寫入相同的資料不會有問題。

            b. 如果設定和compaction操作,那麼如果前後兩次寫入的資料型別不同,則在查詢時一定會丟擲異常。如果兩次寫入的資料型別相同,那麼在該行還沒有進行compaction操作之前,前面的資料將被覆蓋掉。

       4) 資料寫入方式:

              資料有三種寫入方式:telnet, http post,用資料檔案批量匯入。

3. HBase的組建方式:

        1) 測試或容量較低時可以採用單機模式,這時HBase使用本地檔案系統作為儲存。              

        2) 大資料量的生產環境應該採用正式的多機叢集模式:Namenode雙機備份,3臺Zookeeper,HDFS節點採用JBOD儲存,HBase的Region節點和HDFS資料節點共用。

            各個節點之間採用千兆或萬兆網路連線,叢集位於一個數據中心。

4. 效能考慮:

       1) 每個TSD程序的處理能力大約為每秒幾千次寫,可以使用多個TSD程序實現更高寫入能力,前端採用DNS輪詢或Varnish快取實現負載均衡。當叢集專用於opentsdb時,TSD程序可以和HBase的Region server位於同一臺機器。

       2) 可以將TSD程序配置為持久連線,這就可以阻止每次寫入資料都經歷建立和關閉連線的過程。

       3) 關閉元資料和實時釋出功能,因為它們極大地影響到系統性能。

相關推薦

OpenTSDB介紹——基於Hbase分散式伸縮時間序列資料庫Hbase本質儲存

1. 關於metric, tag name和tag value    1) opentsdb的每個時間序列必須有一個metric和一個或多個(tag name, tag value)對,每個時間序列每小時的資料儲存為一行。    2) Opentsdb的metric, tag name和tag value各自

86、使用Tensorflow實現LSTM的時間序列預測預測正弦函數

ati pre win real testing could sqrt sha ima ‘‘‘ Created on 2017年5月21日 @author: weizhen ‘‘‘ # 以下程序為預測離散化之後的sin函數 import numpy as np impo

86、使用Tensorflow實現LSTM的時間序列預測預測正弦函式

''' Created on 2017年5月21日 @author: weizhen ''' # 以下程式為預測離散化之後的sin函式 import numpy as np import tensorflow as tf from tensorflow.contrib i

縱享絲滑滑動切換的周月日曆流暢滑動高度定製仿小米日曆基於 material-calendarview

monthweekmaterialcalendarview 專案地址:idic779/monthweekmaterialcalendarview  簡介:縱享絲滑滑動切換的周月日曆,可流暢滑動高度定製,仿小米日曆,基於 material-calendarview (Android

基於react開發的伸縮tabs選項卡

title: 基於react開發的可伸縮tabs date: 2018-06-17 16:57:33 tags: react 1.效果如下所示: 2.自己安裝檢視效果 先克隆該專案 git clone https://github.com/suwu150/r

40套PSD歐美扁平化網頁模板二次編輯開發精品

40套PSD歐美扁平化網頁模板,可二次編輯開發,絕對精品,下載地址:百度網盤, https://pan.baidu.com/s/1uMF4MM_3UC2Q6mbyNomLfQ 模板內容預覽:

Android 仿美團網,大眾點評購買框懸浮效果仿美團詳情頁下拉放大圖片向上滾動圖片鬆手有動畫

先看效果圖 直接上程式碼註釋都寫到程式碼裡面了: 自定義的ScrollView package mm.shandong.com.testmtxqcomplex.myui; import android.content.Context; import andro

使用z-index和position:absolute實現DIV覆蓋和重疊實現半透明背景上邊漂浮一層不透明的div層。

Div的重疊和覆蓋可以使用z-index和position:absolute決定定位來實現,具體實現程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3

時間伺服器中適用於國內的 NTP 伺服器地址用於時間同步或 Android 加速 GPS 定位

NTP 是什麼?   NTP 是網路時間協議(Network Time Protocol),它用來同步網路裝置【如計算機、手機】的時間的協議。 NTP 實現什麼目的?   目的很簡單,就是為了提供準確時間。因為我們的手錶、裝置等,經常會時間跑著跑著就有誤差,或快或慢

一個JavaScript WEB日曆控制元件支援IE6FireFox支援不同語言版本目前支援中英文。

轉自 謝謝! 網上的WEB日曆控制元件很多,功能也很強大,可惜大都不支援FireFox,自己閒時寫了一個,有如下特色: 特色: 一、支援IE6,FireFox 二、支援中、英文日曆、可自由擴充套件其它語言 三、遇到Select 下拉框的時候,採取隱藏的方法 四、採用div作為日曆容器,不會被瀏覽器攔截

jquery圖片輪播點選左右按鈕輪播控制是否自動播放是否迴圈輪播(自寫)

<!DOCTYPE html> <html lang="zh-CN"> <head>     <meta charset="UTF-8">     <title>輪播</title>     <

基於Keras的LSTM多變數時間序列預測 (學習筆記)

本文翻譯自Jason Brownlee的部落格https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/ 本部落格主要參考以下中文版部落格 https://blog.csdn.net/qq_280

基於Keras的LSTM多變數時間序列預測(北京PM2.5資料集pollution.csv)

                             基於Keras的LSTM多變數時間序列預測   傳統的線性模型難以解決多變數或多輸入問題

Python時間獲取詳解Django獲取時間詳解模板中獲取時間詳解(navie時間和aware時間

# 1、Python獲取到的時間 import pytz from datetime import datetime now = datetime.now() # 這個時間為navie時間(自己不

關於“鎖”的問題專案比較大的情況下不能直接隨便的加樂觀鎖不想麻煩改資料庫不想用lock排隊等

    private static Dictionary<int, object> lockObj = new Dictionary<int, object>();         private object getObj(int bedId)  

(轉)一次血的教訓阿里雲rds mysql 資料庫本地化並日志恢復已刪除的兩天資料

原文連結 參考阿里雲幫助文件 案例背景,勿刪公司線上資料庫使用者表(阿里去rds mysql),情急之下,將其恢復至最近備份(兩天前,阿里雲自動備份策略),恢復完後的第二天發現,備份與刪庫期間有些資料是重要且有用的,於是領導強烈希望能恢復期間資料,以減少公司損失,

Spring MVC上傳圖片Java二進位制圖片寫入資料庫生成略縮圖

步驟:1.將圖片上傳到伺服器的一個磁碟目錄下。 2.將剛才上傳好的圖片寫入資料庫image欄位。 一、上傳圖片:使用的是spring mvc 對上傳的支援。 jsp 頁面: <form name="uploadForm" id="uploadForm" m

阿里雲釋出時間序列資料庫TSDB關於時序你瞭解多少?

概要介紹 時間序列資料是一種表示物理裝置,系統、應用過程或行為隨時間變化的資料,廣泛應用於物聯網,工業物聯網,基礎運維繫統等場景。阿里雲TSDB 時間序列資料庫可以解決大規模時序資料的可靠寫入,降低資料儲存成本,實時靈活的完成業務資料聚合分析。 什麼是時序資料

JDBC的API在class中連線資料庫得到需要的資料查詢資料

api: 1,java.sql.Connection 資料庫連線 提供了訪問資料庫的連線物件 2 , java.sql.Statement Statement 主要用於載入sql 3 , java.sql.ResultSet 書寫: String driver=com.mysql.jdb

記錄vue開發webapp 使用cordova +Crosswalk打包時出現使用者操作時間越長反應越慢最後卡死的現象

有朋友在用vue開發webapp 使用cordova +Crosswalk打包時出現,使用者操作時間越長,反應越慢,最後卡死的現象 解決方案:使用谷歌瀏覽器的 memory(使用可參考https://www.jb51.net/article/142537.htm