日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
比較不同時序數(shù)據(jù)庫的優(yōu)劣與特點(時序數(shù)據(jù)庫比較)

時序數(shù)據(jù)庫是一種高效存儲時間序列數(shù)據(jù)的數(shù)據(jù)庫,它能夠有效地存儲和查詢時間序列數(shù)據(jù)。隨著物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)、金融科技等行業(yè)的發(fā)展,時序數(shù)據(jù)存儲和分析需求不斷增長,時序數(shù)據(jù)庫應運而生。本文將。

1. InfluxDB

InfluxDB是一種比較流行的開源時序數(shù)據(jù)庫,基于Go語言編寫。它的優(yōu)點是:易于使用、響應速度快、存儲數(shù)據(jù)的高效性強、支持高可用性和可擴展性。此外,InfluxDB支持多樣的數(shù)據(jù)存儲格式,包括ON格式、Line協(xié)議等,還支持在SD卡上運行。

然而,InfluxDB也存在一些缺點。它不支持跨機器數(shù)據(jù)的查詢,這意味著只能在本地或同一網(wǎng)絡內(nèi)進行查詢;InfluxDB缺乏細致且詳實的文檔,對于初學者而言不太友好。

2. OpenTSDB

OpenTSDB是一種高性能、分布式的時序數(shù)據(jù)庫,基于HBase和Zookeeper。它的優(yōu)勢在于:支持分布式存儲和水平擴展、支持大規(guī)模數(shù)據(jù)集的快速查詢和分析、具有多種靈活的查詢方式和圖形報表生成方式。此外,OpenTSDB還支持Java、Python等多語言的API接口,方便數(shù)據(jù)的讀寫和分析。

但OpenTSDB的局限性也不容忽視。它的數(shù)據(jù)存儲格式較為固定,只支持一些常用的格式,無法自定義;OpenTSDB的使用門檻較高,需要運維人員具有一定的技術水平。

3. TimescaleDB

TimescaleDB是一種流行的開源時序數(shù)據(jù)庫,基于PostgreSQL架構。它有效地兼顧了PostgreSQL的傳統(tǒng)強項:關系型、ACID兼容、擴展性穩(wěn)定等特點,以及時序數(shù)據(jù)庫的高效性和靈活性。TimescaleDB的優(yōu)勢在于:支持SQL查詢語言,給用戶提供了廣泛的查詢和分析工具;支持二次索引和壓縮算法,提高數(shù)據(jù)的存儲效率;支持插入式持久化模塊,方便數(shù)據(jù)的備份和恢復。

但TimescaleDB的缺陷也有所體現(xiàn)。它的支持者數(shù)量不多,開發(fā)團隊不夠強大,更新不夠及時;它對于查詢結果的排序和分組效率較低,需要使用高級索引技術才能提高效率。

4. KrosDB

KrosDB是一種基于Cassandra架構的開源時序數(shù)據(jù)庫,具有高效的數(shù)據(jù)存儲和查詢性能。它的優(yōu)點在于:支持多種數(shù)據(jù)存儲方式,包括ON、CSV等格式;支持多種查詢語言,包括SQL、CQL等;支持標簽查詢和時間范圍查詢,方便進行數(shù)據(jù)分析。

但KrosDB也存在一些不足之處。它的安全性和可靠性較低,存在數(shù)據(jù)丟失和損壞的風險;它的數(shù)據(jù)存儲和查詢效率較低,需要使用分布式計算和緩存技術才能提高效率。

總體來說,時序數(shù)據(jù)庫是一種重要的數(shù)據(jù)存儲和查詢工具,不同的時序數(shù)據(jù)庫有著各自的特點和優(yōu)缺點。使用者應該根據(jù)自身的需求和實際情況來選擇合適的時序數(shù)據(jù)庫,在使用時要注意安全性、穩(wěn)定性、可靠性等方面的細節(jié),才能充分利用時序數(shù)據(jù)庫的優(yōu)勢。

相關問題拓展閱讀:

  • 綜合使用時序數(shù)據(jù)與截面數(shù)據(jù)能解決多重共線性嗎?
  • 關系數(shù)據(jù)庫轉(zhuǎn)換為時序的方法

綜合使用時序數(shù)據(jù)與截面數(shù)據(jù)能解決多重共線性嗎?

時序數(shù)據(jù)與截面數(shù)據(jù)能解決多重共線性  請參考下面時序數(shù)據(jù)庫白皮書。

思極有容數(shù)據(jù)庫

時序數(shù)據(jù)庫技術白皮書

北京中電普華信息技術有限公司

2023年4月

目  錄

1 大數(shù)據(jù)時代的挑戰(zhàn) 1

2 產(chǎn)品特點 1

3 系統(tǒng)結構 2

4 存儲結構 4

5 數(shù)據(jù)分區(qū)、水平擴展 6

6 高可靠系統(tǒng) 7

7 STable:多表聚合 9

8 數(shù)據(jù)模型 10

9 實時流式計算 11

10 便捷的安裝、部署、維護 12

11 更多亮點 13

12 參數(shù)指標 13

13 應用場景 14

1 大數(shù)據(jù)時代的挑戰(zhàn)

隨著移動互聯(lián)網(wǎng)的普及,數(shù)據(jù)通訊成本的急劇下降,以及各種低成本的傳感技術和智能設備的出現(xiàn),除傳統(tǒng)的手機、計算機在實時采集數(shù)據(jù)之外,手環(huán)、共享單車、出租車、智能電表、環(huán)境監(jiān)測設備、電梯、大型設備、工業(yè)生產(chǎn)線等也都在源源不斷的產(chǎn)生海量的實時數(shù)據(jù)并發(fā)往云端。這些海量數(shù)據(jù)是企業(yè)寶貴的財富,能夠幫助企業(yè)實時監(jiān)控業(yè)務或設備的運行情況,生成各種維度的報表,而且通過大數(shù)據(jù)分析和機器學習,對業(yè)務進行預測和預警,能夠幫助企業(yè)進行科學決策、節(jié)約成本并創(chuàng)造新的價值。

仔細研究發(fā)現(xiàn),所有機器、設備、傳感器、以及交易系統(tǒng)所產(chǎn)生的數(shù)據(jù)都是時序的,而且很多還帶有位置信息。這些數(shù)據(jù)具有明顯的特征,1: 數(shù)據(jù)是時序的,一定帶有時間戳;2:數(shù)據(jù)是結構化的;3: 數(shù)據(jù)極少有更新或刪除操作;4:無需傳統(tǒng)數(shù)據(jù)庫的事務處理;5:相對互聯(lián)網(wǎng)應用,寫多讀少;6:用戶關注的是一搭簡滑段時間的趨勢,而不是某一特點時間點的值;7: 數(shù)據(jù)是有保留期限的;8:數(shù)據(jù)的查詢分析一定是基于時間段和地理區(qū)域的;9:除存儲查詢外,往往還需要各種統(tǒng)計和實時計算操作;10:數(shù)據(jù)量巨大,一天采集的數(shù)據(jù)就可以超過100億條。

看似簡單的事情,但由于數(shù)據(jù)記錄條數(shù)巨大,導致數(shù)據(jù)的實時寫入成為瓶頸,查詢分析極為緩慢,成為新的技術挑戰(zhàn)。傳統(tǒng)的關系型數(shù)據(jù)庫或NoSQL數(shù)據(jù)庫以及流式計算引擎由于沒有充分利用這些數(shù)據(jù)的特點,性能提升極為有限,只能依靠集群技術,投入更多的計算資源和存儲資源來處理,企業(yè)運營維護成本急劇上升。

2 產(chǎn)品特點

思極有容時序數(shù)據(jù)庫正是普華公司面對這一高速增長的物聯(lián)網(wǎng)大數(shù)據(jù)市場和技術挑戰(zhàn)推出的創(chuàng)新性的大數(shù)據(jù)處理產(chǎn)品,它不依賴任何第三方軟件,也不是優(yōu)化或包裝了一個開源的數(shù)據(jù)庫或流式計算產(chǎn)品,而是在吸取眾多傳統(tǒng)關系型數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫、流式計算引擎、消息隊列等軟件的優(yōu)點之后自主開發(fā)的產(chǎn)品,在時序空間大數(shù)據(jù)處理上,有著自己獨到的優(yōu)勢。

· 10倍以上的性能提升:定義了創(chuàng)新的數(shù)據(jù)存儲結構,單核每秒就能處理至少2萬次請求,插入數(shù)百萬個數(shù)據(jù)點,讀出一千萬以上數(shù)據(jù)點,比現(xiàn)有通用數(shù)據(jù)庫快了十倍以上。

· 硬件或云服務成本降至1/5:由于超強性能,計算資源不到通用大數(shù)據(jù)方案的1/5;通過列式存儲和先進的壓縮算法,存儲空間不到通用數(shù)據(jù)庫的1/10。

· 全棧時序數(shù)據(jù)處理引擎:將數(shù)據(jù)庫、消息隊列、緩存、流式計算等功能融合一起,應用無需再集成Kafka/Redis/HBase/HDFS等軟件,大幅降低應用開發(fā)和維護的復雜度成本。

· 強大的分析功能:無論是十年前還是一秒鐘前的數(shù)據(jù),指定時間范圍即可查詢。數(shù)據(jù)可在時間軸上或多個設備上進行聚合。臨時查詢可通過Shell, Python, R, Matlab隨時進行。

· 與第三方工具無縫連接:不用一行代碼,即可與Telegraf, Grafana, Matlab, R等工具集成。后續(xù)將支持MQTT, OPC等工具, 與BI工具也能夠無縫連接。

· 零運維成本、零學習成本:安裝、集群一秒搞定,無需分庫分表,實時備份。支持標準SQL語句,支持JDBC, RESTful連接, 支持Python/Java/C/C++/Go等開發(fā)語言, 與MySQL相似,零學習成本。

采用思極有容時序數(shù)據(jù)庫,可將典咐慎型的物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)大數(shù)據(jù)平臺的整體成本降至現(xiàn)有的1/5。同樣的硬件資源,思極有容時知臘序數(shù)據(jù)庫能將系統(tǒng)處理能力和容量增加五倍以上。

3 系統(tǒng)結構

思極有容時序數(shù)據(jù)庫是基于硬件、軟件系統(tǒng)不可靠、一定會有故障的假設進行設計的,是基于任何單臺計算機都無足夠能力處理海量數(shù)據(jù)的假設進行設計的,因此思極有容時序數(shù)據(jù)庫從研發(fā)的之一天起,就是按照分布式高可靠架構進行設計的,是完全去中心化的。思極有容時序數(shù)據(jù)庫整個系統(tǒng)結構如下圖所示,下面對一些基本概念進行介紹。

物理節(jié)點:集群里的任何一臺物理機器(dnode),根據(jù)其具體的CPU、內(nèi)存、存儲和其它物理資源,思極有容時序數(shù)據(jù)庫將自動配置多個虛擬節(jié)點。

虛擬數(shù)據(jù)節(jié)點:存儲具體的時序數(shù)據(jù),所有針對時序數(shù)據(jù)的插入和查詢操作,都在虛擬數(shù)據(jù)節(jié)點上進行(圖例中用V標明)。位于不同物理機器上的虛擬數(shù)據(jù)節(jié)點可以組成一個虛擬數(shù)據(jù)節(jié)點組(如圖例中dnode0中的V0, dnode1中的V1, dnode6中的V2組成了一個組),虛擬節(jié)點組里的虛擬節(jié)點的數(shù)據(jù)以異步的方式進行同步,并實現(xiàn)數(shù)據(jù)的最終一致性,以保證一份數(shù)據(jù)在多臺物理機器上有拷貝,而且即使一臺物理機器宕機,總有位于其他物理機器上的虛擬節(jié)點能處理數(shù)據(jù)請求,從而保證系統(tǒng)運行的高可靠性。

虛擬管理節(jié)點:負責所有節(jié)點運行狀態(tài)的采集、節(jié)點的負載均衡,以及所有Meta Data的管理,包括用戶、數(shù)據(jù)庫、表的管理(圖例中用M標明)。當應用需要插入或查詢一張表時,如果不知道這張表位于哪個數(shù)據(jù)節(jié)點,應用會連接管理節(jié)點來獲取該信息。Meta Data的管理也需要有高可靠的保證,系統(tǒng)采用Master-Slave的機制,容許多到5個虛擬管理節(jié)點組成一個虛擬管理節(jié)點集群(如圖例中的M0, M1, M2)。這個虛擬管理節(jié)點集群的創(chuàng)建是完全自動的,無需任何人工干預,應用也無需知道虛擬管理節(jié)點具體在哪臺物理機器上運行。

集群對外服務IP:整個系統(tǒng)可以由多臺甚至數(shù)萬臺服務器組成,但對于應用而言,只需要提供整個集群中任何一臺或兩臺服務器的IP地址即可。 集群將根據(jù)應用的請求,自動的將請求轉(zhuǎn)發(fā)到相應的一個甚至多個節(jié)點進行處理,包括聚合、計算操作等。這些復雜的分發(fā)和路由對應用是完全透明的。

4 存儲結構

為提高壓縮和查詢效率,思極有容時序數(shù)據(jù)庫采用列式存儲。與眾多時序數(shù)據(jù)庫不同的是,思極有容時序數(shù)據(jù)庫基于時序數(shù)據(jù)的特點,將每一個采集點的數(shù)據(jù)作為數(shù)據(jù)庫中的一張獨立的表來存儲。這樣對于一個采集點的數(shù)據(jù)而言,無論在內(nèi)存還是硬盤上,數(shù)據(jù)點在介質(zhì)上是連續(xù)存放的,這樣大幅減少隨機讀取操作,減少IO操作次數(shù),數(shù)量級的提升讀取和查詢效率。而且由于不同數(shù)據(jù)采集設備產(chǎn)生數(shù)據(jù)的過程完全獨立,每個設備只產(chǎn)生屬于自己的數(shù)據(jù),一張表也就只有一個寫入者。這樣每個表就可以采用無鎖方式來寫,寫入速度就能大幅提升。同時,對于一個數(shù)據(jù)采集點而言,其產(chǎn)生的數(shù)據(jù)是時序的,因此寫的操作可用追加的方式實現(xiàn),進一步大幅提高數(shù)據(jù)寫入速度。

數(shù)據(jù)具體寫如流程如圖所示:

 

寫入數(shù)據(jù)時,先將數(shù)據(jù)點寫進Commit日志,然后轉(zhuǎn)發(fā)給同一虛擬節(jié)點組里的其他節(jié)點,再按列寫入分配的內(nèi)存塊。當內(nèi)存塊的剩余空間達到一定臨界值或設定的commit時間時, 內(nèi)存塊的數(shù)據(jù)將寫入硬盤。內(nèi)存塊是固定大小(如16K)的, 但依據(jù)系統(tǒng)內(nèi)存的大小,每個采集點可以分配一個到多個內(nèi)存塊,采取LRU策略進行管理。在一個內(nèi)存塊里,數(shù)據(jù)是連續(xù)存放的,但塊與塊是不連續(xù)的,因此思極有容時序數(shù)據(jù)庫為每一個表在內(nèi)存里建立有塊的索引,以方便寫入和查詢。

數(shù)據(jù)寫入硬盤是以添加日志的方式進行的,以求大幅提高落盤的速度。為避免合并操作,每個采集點(表)的數(shù)據(jù)也是按塊存儲,在一個塊內(nèi),數(shù)據(jù)點是按列連續(xù)存放的,但塊與塊之間可以不是連續(xù)的。思極有容時序數(shù)據(jù)庫對每張表會維護一索引,保存每個數(shù)據(jù)塊在文件中的偏移量,起始時間、數(shù)據(jù)點數(shù)、壓縮算法等信息。每個數(shù)據(jù)文件僅僅保存固定一段時間的數(shù)據(jù)(比如一周,可以配置),因此一個表的數(shù)據(jù)會分布在多個數(shù)據(jù)文件中。查詢時,根據(jù)給定的時間段,思極有容時序數(shù)據(jù)庫將計算出查找的數(shù)據(jù)會在哪個數(shù)據(jù)文件,然后讀取。這樣大幅減少了硬盤操作次數(shù)。多個數(shù)據(jù)文件的設計還有利于數(shù)據(jù)同步、數(shù)據(jù)恢復、數(shù)據(jù)自動刪除操作,更有利于數(shù)據(jù)按照新舊程度在不同物理介質(zhì)上存儲,比如最新的數(shù)據(jù)存放在SSD盤上,最老的數(shù)據(jù)存放在大容量但慢速的硬盤上。通過這樣的設計,思極有容時序數(shù)據(jù)庫將硬盤的隨機讀取幾乎降為零,從而大幅提升寫入和查詢效率,讓思極有容時序數(shù)據(jù)庫在很廉價的存儲設備上也有超強的性能。

為減少文件個數(shù),一個虛擬節(jié)點內(nèi)的所有表在同一時間段的數(shù)據(jù)都是存儲在同一個數(shù)據(jù)文件里,而不是一張表一個數(shù)據(jù)文件。但是對于一個數(shù)據(jù)節(jié)點,每個虛擬節(jié)點都會有自己獨立的數(shù)據(jù)文件。

5 數(shù)據(jù)分區(qū)、水平擴展

為處理每日高達數(shù)億條的海量數(shù)據(jù),數(shù)據(jù)必須在多個節(jié)點存放。在思極有容時序數(shù)據(jù)庫里,數(shù)據(jù)是按照每個采集點(表)來存放的。一張表(一個采集點)的數(shù)據(jù),即使每秒產(chǎn)生一百個字節(jié)的數(shù)據(jù)量,一年也才3G的數(shù)據(jù)量,壓縮后,往往還不到300M,因此在思極有容時序數(shù)據(jù)庫里,一個表的數(shù)據(jù)是不跨節(jié)點存儲的,以便于單張表的快速高效的插入、查詢和計算。

為更好的數(shù)據(jù)分區(qū),思極有容時序數(shù)據(jù)庫采用了虛擬數(shù)據(jù)節(jié)點的設計。一個虛擬數(shù)據(jù)節(jié)點包含多個表,表的數(shù)量可以配置。根據(jù)其計算和存儲資源,一個物理節(jié)點將被劃分為多個虛擬數(shù)據(jù)節(jié)點。虛擬數(shù)據(jù)節(jié)點的設計帶來幾大優(yōu)勢:

1)更好的支持硬件異構環(huán)境,資源多的服務器可以創(chuàng)建更多的虛擬節(jié)點;

2)恢復一個宕機的節(jié)點,可以讓眾多的其他節(jié)點參與進來,大大加快速度;

3)如果撤掉一個數(shù)據(jù)節(jié)點,該節(jié)點上的虛擬節(jié)點將被相當均勻的遷移到其他節(jié)點上去;

4)新增一個數(shù)據(jù)節(jié)點,負載過熱的節(jié)點的上的部分虛擬節(jié)點將被整體遷移過來。這一切讓負載更加均衡,讓數(shù)據(jù)同步變得更加高效。

與傳統(tǒng)的數(shù)據(jù)庫相似,用戶可以創(chuàng)建多個數(shù)據(jù)庫,每個庫里面,可以創(chuàng)建多個表。一個庫可以橫跨多個虛擬數(shù)據(jù)節(jié)點,但一個虛擬數(shù)據(jù)節(jié)點僅僅屬于一個數(shù)據(jù)庫。當用戶添加一個表時,管理節(jié)點將查看已經(jīng)分配的虛擬節(jié)點里是否還有空位,如果有,就將該表分配到這虛擬節(jié)點。如果這個庫的所有虛擬節(jié)點都沒有空位,管理節(jié)點將根據(jù)負載均衡的策略(隨機、輪詢等)來分配一個新的虛擬節(jié)點給該庫,然后將該表分配到新的虛擬節(jié)點里。由于一臺物理主機有多個虛擬數(shù)據(jù)節(jié)點,這種策略能保證負載均勻分布。

管理節(jié)點負責整個系統(tǒng)的負載均衡,包括虛擬數(shù)據(jù)節(jié)點的增加、刪除、遷移、合并與拆分。管理節(jié)點并不保存每個采集點采集的數(shù)據(jù),只是管理虛擬節(jié)點,即使宕機,也不會影響現(xiàn)有各虛擬節(jié)點的數(shù)據(jù)插入和查詢操作。各個采集點或應用從管理節(jié)點獲取分配的虛擬數(shù)據(jù)節(jié)點信息后,然后直接與虛擬數(shù)據(jù)節(jié)點通訊,直接將數(shù)據(jù)插入數(shù)據(jù)庫,對于查詢操作也是如此。因此,系統(tǒng)容量以及吞吐率與虛擬數(shù)據(jù)節(jié)點的個數(shù)成正比,整個系統(tǒng)是水平擴展的

6 高可靠系統(tǒng)

為保證數(shù)據(jù)節(jié)點的高可靠性,思極有容時序數(shù)據(jù)庫引入了虛擬數(shù)據(jù)節(jié)點組的概念,并采用異步的方式進行數(shù)據(jù)同步。一個虛擬節(jié)點組由處于不同物理主機上的虛擬數(shù)據(jù)節(jié)點組成,虛擬數(shù)據(jù)節(jié)點個數(shù)就是數(shù)據(jù)冗余的個數(shù)(Replication Factor,一般大于2)。在一個虛擬節(jié)點組里,各個虛擬數(shù)據(jù)節(jié)點通過心跳包實時知道對方的狀態(tài)。如果一個虛擬數(shù)據(jù)節(jié)點收到數(shù)據(jù)寫入的請求,該請求會被立即轉(zhuǎn)發(fā)給其他虛擬數(shù)據(jù)節(jié)點,然后在本地存儲處理。當應用連接思極有容時序數(shù)據(jù)庫系統(tǒng)時,對于要操作的任何一張表,系統(tǒng)會給應用提供該表所屬的虛擬數(shù)據(jù)節(jié)點組里各個虛擬節(jié)點的IP地址(如果replication factor為3,就會有3個IP地址),如果鏈接其中一個失敗或者操作失敗,應用會嘗試第二個、第三個,只有所有節(jié)點失敗才會返回失敗。這樣保證虛擬數(shù)據(jù)節(jié)點組里任何一臺機器宕機,都不會影響對外的服務。這些復雜的重新連接流程都被思極有容時序數(shù)據(jù)庫 Driver包裝隱藏起來,應用開發(fā)者無需寫程序來實現(xiàn)。

為保證效率,思極有容時序數(shù)據(jù)庫采取異步方式實現(xiàn)多個副本之間的實時數(shù)據(jù)同步,采取的是最終一致性,而不是強一致。當一臺主機重啟時,每個虛擬數(shù)據(jù)節(jié)點都會檢查自己數(shù)據(jù)的版本是否與其他虛擬節(jié)點一致,如果版本不一致,需要同步后才能進入對外服務狀態(tài)。在運行過程中,由于各種原因,數(shù)據(jù)仍然可以失去同步,這種不同步會在收到轉(zhuǎn)發(fā)的寫入請求時被發(fā)現(xiàn),一旦被發(fā)現(xiàn),版本低的虛擬數(shù)據(jù)節(jié)點將馬上停止對外服務,進入同步流程,同步完后,才會重新恢復對外服務。同步過程中,高版本的節(jié)點還可以正常的對外提供服務。 

 

管理節(jié)點負責存儲Meta數(shù)據(jù),同時根據(jù)每個數(shù)據(jù)節(jié)點狀態(tài)來負責負載均衡,因此也要保證其高可靠性。多個虛擬管理節(jié)點組成一個虛擬管理節(jié)點組,因為Meta數(shù)據(jù)可以被多個應用同時更新,因此思極有容時序數(shù)據(jù)庫采用的是Master-Slave模式實現(xiàn)虛擬管理節(jié)點的數(shù)據(jù)同步。寫的操作,只有Slave節(jié)點寫入成功后,Master節(jié)點才會返回成功,從而保證數(shù)據(jù)的強一致性。如果Master節(jié)點宕機,系統(tǒng)有機制保證其中一個Slave會立即被選舉為Master, 從而保證系統(tǒng)寫操作的高可靠性。

由于Meta數(shù)據(jù)量并不大,Meta數(shù)據(jù)雖然需持久化存儲,但將其完全保存在內(nèi)存,以保證查詢操作的高效。在應用側,為避免每次數(shù)據(jù)操作都訪問管理節(jié)點,思極有容時序數(shù)據(jù)庫 Driver將必要的Meta數(shù)據(jù)都會緩存在本地,只有當需要的Meta數(shù)據(jù)不存在或失效的情況下,才會訪問管理節(jié)點,這樣大大提高系統(tǒng)性能。

管理節(jié)點在集群中存在,但對于應用和系統(tǒng)管理員而言,是完全透明的。整個系統(tǒng)會自動在物理節(jié)點上創(chuàng)建虛擬管理節(jié)點以及虛擬管理節(jié)點組。

7 STable:多表聚合

各個數(shù)據(jù)采集點的時鐘是很難同步的,為保證其時序,而且為保證單一采集點的數(shù)據(jù)在存儲介質(zhì)上的連續(xù)性,思極有容時序數(shù)據(jù)庫要求每個數(shù)據(jù)采集點單獨建表,這樣能極大提高數(shù)據(jù)的插入速度以及查詢速度,但是這將導致系統(tǒng)表的數(shù)量猛增,讓應用對表的維護以及聚合、統(tǒng)計操作難度加大。為降低應用的開發(fā)難度,思極有容時序數(shù)據(jù)庫引入了STable超級表的概念。

STable是表的,包含多張表,而且這個里每張表的Schema是一樣的。同一類型的采集設備可創(chuàng)建一個STable。與表一樣,包含Schema,但還包含標簽信息。Schema定義了表的每列數(shù)據(jù)的屬性,如溫度、壓力等,而標簽信息是靜態(tài)的,屬于Meta Data,如采集設備的型號、位置等。思極有容時序數(shù)據(jù)庫擴展了標準SQL的table的定義,創(chuàng)建時,除指定Schema外,還可以帶關鍵詞tags來指定有哪些標簽。如:

create table m1(ts timestamp, pressure int, rpm int) tags (model binary(8), color binary(8))

上述SQL創(chuàng)建了一個STable m1, 帶有標簽model和標簽color。為某一個具體的采集點創(chuàng)建表時,可以指定其所屬的STable以及標簽的值,比如:

create table t1 using m1 tags (‘a(chǎn)pple’, ‘red’)

上述SQL以STable m1為模板,創(chuàng)建了一張表t1,這張表的Schema就是m1的Schema,但標簽model設為apple,標簽color設為red。插入數(shù)據(jù)時,仍然按照正常的方式進行插入。但查詢時,除傳統(tǒng)的表的查詢外,還可以基于標簽對STable進行各種聚合查詢或統(tǒng)計。如:

select avg(pressue) from m1 where model=’apple’ interval(5m) group by color

上面這個SQL語句表示將標簽model值為apple的所有采集點的記錄的每5分鐘的平均值計算出來,并按照標簽color進行分組。

對于STable的查詢操作,完全與正常的表一樣。但一個定義的STable可以包含多張表(多個數(shù)據(jù)采集點),應用可通過指定標簽的過濾條件,對一個STable下的全部或部分表進行聚合或統(tǒng)計操作,這樣大大簡化應用的開發(fā)。其具體流程如下圖所示:

 

1) 、應用將一個查詢條件發(fā)往系統(tǒng);

2) 、Driver將查詢的過濾條件發(fā)往Meta Node(管理節(jié)點);

3) 、管理節(jié)點將符合查詢過濾條件的表的列表發(fā)回Driver(包含每個表對應的數(shù)據(jù)節(jié)點的IP地址);

4) 、這些返回的表可能分布在多個數(shù)據(jù)節(jié)點,Driver將計算的請求發(fā)往相應的多個數(shù)據(jù)節(jié)點;

5) 、每個數(shù)據(jù)節(jié)點完成相應的聚合計算,將結果返回給Driver;

6) 、Driver將多個數(shù)據(jù)節(jié)點返回的結果做最后的聚合,將其返回給應用。

8 數(shù)據(jù)模型

思極有容時序數(shù)據(jù)庫采用的仍然是傳統(tǒng)的關系型數(shù)據(jù)庫的模型。用戶需要根據(jù)應用場景,創(chuàng)建一到多個庫,然后在每個庫里創(chuàng)建多張表,創(chuàng)建表時需要定義Schema。對于同一類型的采集點,為便于聚合統(tǒng)計操作,可以先定義超級表STable,然后再定義表。

不同的采集點往往具有不同的數(shù)據(jù)特征,比如有的采集點數(shù)據(jù)采集頻率高,有的數(shù)據(jù)保留時長較長,有的采集數(shù)據(jù)需要3份備份,而有的數(shù)據(jù)一份備份即可,有的采集點一條記錄很大,而有的采集點的記錄僅僅16個字節(jié),很小。為讓各種場景下思極有容時序數(shù)據(jù)庫都能更大效率的工作,思極有容時序數(shù)據(jù)庫建議將不同數(shù)據(jù)特征的表創(chuàng)建在不同的庫里。創(chuàng)建一個庫時,除SQL標準的選項外,應用還可以指定保留時長、數(shù)據(jù)備份的份數(shù)、cache大小、是否壓縮等多種參數(shù)。

思極有容時序數(shù)據(jù)庫對庫的數(shù)量、STable的數(shù)量以及表的數(shù)量沒有做任何限制,而且其多少不會對性能產(chǎn)生影響,應用按照自己的場景創(chuàng)建即可。

9 實時流式計算

在存儲的原始數(shù)據(jù)上,思極有容時序數(shù)據(jù)庫可以做各種計算,目前支持的主要操作包括:

· Avg:以每個采樣時間范圍內(nèi)的value的平均值作為結果

· Dev:以每個采樣時間范圍內(nèi)的value的標準差作為結果

· Count:以每個采樣時間范圍內(nèi)的點的數(shù)目作為結果

· First:以每個采樣時間范圍內(nèi)的之一個value作為結果

· Last:以每個采樣時間范圍內(nèi)的最后一個value作為結果

· LeastSquares:對每個采樣時間范圍內(nèi)的value進行最小二乘法的擬合

· Max:以每個采樣時間范圍內(nèi)的value的更大值作為結果

· Min:以每個采樣時間范圍內(nèi)的value的最小值作為結果

· Percentile:每個采樣時間范圍內(nèi)的value的第p百分位數(shù)作為結果。

· Sum:以每個采樣時間范圍內(nèi)的value的總和作為結果

· Diff:以每兩個相鄰的value的差值作為結果

· Div:以每個value除以一個除數(shù)作為結果

· Scale:以每個value乘以一個倍數(shù)作為結果

· 基于多個采集點數(shù)據(jù)的四則運算表達式

思極有容時序數(shù)據(jù)庫還可對一個或多個數(shù)據(jù)流進行實時聚合、統(tǒng)計等計算,并將計算出的衍生數(shù)據(jù)當做新的數(shù)據(jù)保存進思極有容時序數(shù)據(jù)庫,以便后續(xù)的操作。實時計算與聚合查詢很類似,只是后臺定時進行,并自動滑動計算窗口的起始點。工作方式與其他流式計算引擎的Sliding Window相似。

實時計算可以通過一個簡單的創(chuàng)建表的操作來實現(xiàn)。如:

create table d1 as select avg (pressure) from t1 interval (60s) sliding(10s)

上述SQL表示將表t1里字段pressure每10秒鐘(每次滑動的時間間隔)將過去的60秒鐘(聚合計算的時間間隔)的數(shù)據(jù)平均值計算出來并寫入表d1。計算出的衍生數(shù)據(jù)可以與其他原始數(shù)據(jù)或計算出的衍生數(shù)據(jù)進行再次計算。

10 便捷的安裝、部署、維護

思極有容時序數(shù)據(jù)庫是在Linux上開發(fā)的,任何Linux系統(tǒng)都可以運行,而且不依賴任何第三方軟件,也不是在某個開源項目上包裝出來的產(chǎn)品。獲得安裝包并解壓后,只需執(zhí)行安裝腳本就一切搞定,極其簡單。

安裝后,會在安裝的機器上自動創(chuàng)建虛擬數(shù)據(jù)節(jié)點和管理節(jié)點,開發(fā)者就可以使用了,能滿足一般性的需求。但如果數(shù)據(jù)量大,就需要將軟件安裝到多臺主機。這時也只需要在每臺機器配置好Master IP, 系統(tǒng)管理員打開思極有容時序數(shù)據(jù)庫Shell, 將新添加的主機添加進系統(tǒng)即可。如果要撤銷一個物理節(jié)點,登錄思極有容時序數(shù)據(jù)庫 Shell, 將其刪除即可,極其簡單。傳統(tǒng)數(shù)據(jù)庫所需要的數(shù)據(jù)分區(qū)、數(shù)據(jù)遷移等等都一概不存在。

因為數(shù)據(jù)是自動同步到多個節(jié)點的,系統(tǒng)管理員不用擔心數(shù)據(jù)的丟失,也不用制定備份和數(shù)據(jù)恢復策略,一切全自動進行。

如果軟件需要升級,只要在思極有容時序數(shù)據(jù)庫Shell里將新版本上傳即可。管理節(jié)點將挨個把每個節(jié)點的軟件進行升級,而且整個系統(tǒng)的服務將不停止,服務不受任何影響。如果要更換設備,只需將其拔除,安裝上軟件后,將新設備重新插入即可。換言之,思極有容時序數(shù)據(jù)庫完全支持在線升級以及硬件的熱插拔,從而保證服務的7*24的不間斷運行。

開發(fā)人員需要做的是定義表的結構,根據(jù)具體場景,配置好各種參數(shù),讓系統(tǒng)性能達到更優(yōu)。系統(tǒng)管理員只需要關注與硬件相關的報警信息,對于經(jīng)常出問題的服務器或硬盤,進行更換而已。使用思極有容時序數(shù)據(jù)庫, 整個系統(tǒng)的運維工作變得極為簡單,將大大降低運營成本。

11 更多亮點

訂閱模式:與標準的數(shù)據(jù)庫不同,思極有容時序數(shù)據(jù)庫還提供一種訂閱模式。應用程序可以訂閱數(shù)據(jù)庫某張表的內(nèi)容,一旦該表有新的記錄,應用將立即得到通知。同一個表可以被多個應用訂閱。與流行的消息中間件Kafka一樣,訂閱采取的是pull而不是push模式。Kafka的publish操作由數(shù)據(jù)庫插入操作代替。由于思極有容時序數(shù)據(jù)庫具有極高的插入速度, 通過采用訂閱模式,思極有容時序數(shù)據(jù)庫本身也可以作為一個消息隊列中間件來使用。

異步插入:為避免網(wǎng)絡延遲帶來的性能下降,更好的提高數(shù)據(jù)插入速度,思極有容時序數(shù)據(jù)庫還提供一組API讓應用異步插入數(shù)據(jù)。當應用調(diào)用插入API時,將立即得到反饋,等記錄成功插入后,思極有容時序數(shù)據(jù)庫將調(diào)用應用提供的回調(diào)函數(shù)通知應用。采用異步插入,性能將大幅提高。

Nagle算法:時序數(shù)據(jù)應用場景里,每條記錄一般都很小,很多不到20字節(jié),因此整個系統(tǒng)處理的是大量的小數(shù)據(jù)包。為了更進一步提高性能,減少網(wǎng)絡IO次數(shù),思極有容時序數(shù)據(jù)庫采用了類似TCP協(xié)議的Naggle算法,客戶端將緩存插入請求,只有記錄的大小超過一定的大小或者緩存時間超過100毫秒,被緩存的插入請求才會被發(fā)往系統(tǒng)。對于時間要求很高的應用,該功能可以關閉。

12 參數(shù)指標

· 支持數(shù)據(jù)類型:tinyint, allint, int, bigint, float, double, binary

· 單記錄更大長度:4096字節(jié)

· 更大記錄條數(shù):僅受存儲空間限制

· 更大表的個數(shù):僅受節(jié)點個數(shù)限制

· 更大數(shù)據(jù)備份數(shù):5份

· 單節(jié)點插入速度:3萬條/秒(單核,16字節(jié)每記錄,每次一條,無同步備份)

· 單節(jié)點查詢速度:2023萬條/秒(單核,16字節(jié)每記錄,全內(nèi)存)

· 更多指標將陸續(xù)提供

13 應用場景

思極有容時序數(shù)據(jù)庫作為一個基礎性的軟件,應用范圍及其廣泛,原則上,所有使用機器、設備、傳感器采集數(shù)據(jù)的地方都可以用上。一些典型場景羅列如下:

· 公共安全:上網(wǎng)記錄、通話記錄、個體追蹤、區(qū)間篩選

· 電力行業(yè):智能電表、電網(wǎng)、發(fā)電設備的集中監(jiān)測

· 通訊行業(yè):話費詳單、用戶行為、基站/通訊設備監(jiān)測

· 金融行業(yè):交易記錄、存取記錄、ATM、POS機監(jiān)測

· 出行工具:火車/汽車/出租/飛機/自行車的實時監(jiān)測

· 交通行業(yè):實時路況,路口流量監(jiān)測,卡口數(shù)據(jù)

· 石油石化:油井、運輸管線、運輸車隊的實時監(jiān)測

· 互聯(lián)網(wǎng):服務器/應用監(jiān)測、用戶訪問日志、廣告點擊日志

· 物流行業(yè):車輛、集裝箱的追蹤監(jiān)測

· 環(huán)境監(jiān)測:天氣、空氣、水文、地質(zhì)環(huán)境等監(jiān)測

· 物聯(lián)網(wǎng):電梯、鍋爐、機械、水表、氣表等各種聯(lián)網(wǎng)設備

· 軍工行業(yè):各種軍事裝備的數(shù)據(jù)采集、存儲

· 制造業(yè):生產(chǎn)過程管控,流程數(shù)據(jù)、供應鏈數(shù)據(jù)采集與分析

網(wǎng)頁鏈接

 技術白皮書網(wǎng)頁鏈接請單擊查看!

關系數(shù)據(jù)庫轉(zhuǎn)換為時序的方法

關系數(shù)據(jù)庫轉(zhuǎn)換為時序的方法如下。

1、下載插件,加載插件。顫搏孝茄稿

2、DolphinDB的MySQL插件提銀鋒供了以下接口函數(shù):connect,showTables,extractSchema,load,loadEx。

3、可以通過以調(diào)用插件的接口函數(shù)。

4、創(chuàng)建MySQL連接,返回MySQL的連接句柄。我們建議MySQL用戶的AuthenticationType為mysql_native_password。

5、使用MySQL插件把數(shù)據(jù)導入到DolphinDB時,會做相應的類型轉(zhuǎn)換。

關于時序數(shù)據(jù)庫比較的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。


當前文章:比較不同時序數(shù)據(jù)庫的優(yōu)劣與特點(時序數(shù)據(jù)庫比較)
標題網(wǎng)址:http://www.dlmjj.cn/article/coopsos.html