o 通過預(yù)降精度,對歷史數(shù)據(jù)做聚合,節(jié)省存儲空間。
。 高并發(fā)寫入:
o 數(shù)據(jù)批量寫入,降低網(wǎng)絡(luò)開銷;
o 數(shù)據(jù)先寫入內(nèi)存,再周期性的dump為不可變的文件存儲,提高寫入速度。
。 低查詢延時,高查詢并發(fā):
o 優(yōu)化常見的查詢模式,通過索引等技術(shù)降低查詢延時;
o 通過緩存、routing等技術(shù)提高查詢并發(fā)。
2.2 開源時序數(shù)據(jù)庫對比
目前行業(yè)內(nèi)比較流行的開源時序數(shù)據(jù)庫產(chǎn)品有 InfluxDB、OpenTSDB、Prometheus、Graphite等,其產(chǎn)品特性對比如下圖所示:
從上表可以看出,開源的時序數(shù)據(jù)庫存在如下問題:
。 沒有free、易用的分布式版本(OpenTSDB支持分布式部署,但依賴系統(tǒng)過多,維護成本高);
。 聚合能力普遍較弱,而時序數(shù)據(jù)大多需要來做統(tǒng)計分析;
。 沒有free的權(quán)限管理;
。 沒有針對時間序列的多維度對比分析工具。
四、歷經(jīng)每日萬億寫入吞吐,騰訊云CTSDB技術(shù)架構(gòu)
騰訊CTSDB(Cloud Time Series Database)是一種分布式、高性能的時序數(shù)據(jù)庫,針對時序數(shù)據(jù)的高并發(fā)寫入、存在明顯的冷熱數(shù)據(jù)、IoT用戶場景等做了大量優(yōu)化,同時也支持各行業(yè)的日志解析和存儲。在騰訊內(nèi)部支撐騰訊云等每日萬億寫入吞吐的場景,經(jīng)過嚴(yán)苛的壓力打磨。其架構(gòu)如下圖所示:
1. CTSDB主要特點
。 高性能:(具體性能數(shù)據(jù)參考后文測試部分)
o 支持批量寫入、高并發(fā)查詢,以及強大的分析聚合能力;
o 通過橫向擴展,線性提升系統(tǒng)性能;
o 支持sharding、routing,加速查詢。
。 高可靠:
o 分布式系統(tǒng),支持多副本;
o 機架感知,自動錯開機架分配主從副本。
。 易使用:
o 豐富的數(shù)據(jù)類型,REST接口,數(shù)據(jù)寫入查詢均使用json格式;
o 原生分布式,彈性可伸縮,數(shù)據(jù)自動均衡;
o 權(quán)限系統(tǒng):支持用戶名密碼、機器白名單的權(quán)限系統(tǒng)。
。 低成本:
o 支持列存儲,高壓縮比(0.1左右),降低存儲成本;
o 支持?jǐn)?shù)據(jù)預(yù)降精度:降低存儲成本的同時,提高查詢性能。
o 副本數(shù)可按需調(diào)整。
。 兼容開源生態(tài):
o 兼容Kibana/Logstash/Beat等組件,方便數(shù)據(jù)采集及可視化分析;
o 支持從MySQL、Kafka等開源生態(tài)同步數(shù)據(jù),方便遷移。
2. 競品性能對比測試
這里選用業(yè)界較為流行的InfluxDB來與CTSDB做性能對比測試。
2.1 寫入性能測試
(1) CTSDB單節(jié)點集群與InfluxDB單機版寫入性能對比
橫坐標(biāo):并發(fā)數(shù)(寫入線程數(shù)) ,縱坐標(biāo):QPS(單位:萬次/s)
結(jié)論: CTSDB單節(jié)點寫入性能最高在19w,InfluxDB在15w.
(2) CTSDB單節(jié)點集群與CTSDB雙節(jié)點集群寫入性能對比
橫坐標(biāo):并發(fā)數(shù)(寫入線程數(shù)) ,縱坐標(biāo):QPS(單位:萬次/s)
結(jié)論:CTSDB單節(jié)點集群寫入最高可達20w,雙節(jié)點集群寫入性能34w.
2.2 查詢性能測試
(1) CTSDB單節(jié)點集群與InfluxDB單機版查詢性能對比
橫坐標(biāo):并發(fā)數(shù)(查詢線程數(shù)) ,縱坐標(biāo):QPS(單位:次/s)
結(jié)論:
。 CTSDB查詢性能整體比InfluxDB好很多,當(dāng)并發(fā)數(shù)較高時(40),CTSDB查詢性能比InfluxDB高出近4倍,在2w左右。
。 在并發(fā)線程數(shù)達到50時,InfluxDB出現(xiàn)鏈接錯誤,拒絕查詢請求;此時,CTSDB可正常查詢。
(2) CTSDB單節(jié)點集群與雙節(jié)點集群查詢性能對比
橫坐標(biāo):并發(fā)數(shù)(查詢線程數(shù)) ,縱坐標(biāo):QPS(單位:次/s)
結(jié)論:在并發(fā)數(shù)較高的情況下,雙節(jié)點集群查詢性能較單節(jié)點集群有了大幅度提升,呈現(xiàn)了查詢性能線性擴展的趨勢。
關(guān)于我們
1. 我們的現(xiàn)狀