【廣告】
BlueSky時間序列化數(shù)據(jù)庫時序數(shù)據(jù)庫對IoT的價值
BlueSky時間序列化數(shù)據(jù)庫時序數(shù)據(jù)是指基于時間的一系列數(shù)據(jù),隨著IoT、5G等技術的發(fā)展,工業(yè)物聯(lián)網(wǎng)、智能家居、監(jiān)控等行業(yè)對時序數(shù)據(jù)的需求呈現(xiàn)爆發(fā)式的增長,而傳統(tǒng)關系型數(shù)據(jù)庫難以對此進行有效的處理。不僅因為數(shù)據(jù)量比之前可能要多數(shù)萬倍,實時采集、高頻度、高密度的動態(tài)數(shù)據(jù)也導致模型隨時可變。
為了更好的支持時序數(shù)據(jù)的存儲分析,各種時序數(shù)據(jù)庫(TimeSeries Database)應運而生,時序數(shù)據(jù)庫可以基于時間區(qū)間進行聚合分析和檢索,實現(xiàn)對時序數(shù)據(jù)的快速寫入、持久化、多緯度的查詢等功能。據(jù)DB-Engines 2019年12月的新報告顯示,近一年內(nèi)時序數(shù)據(jù)庫的受歡迎程度穩(wěn)居前列。
時間序列數(shù)據(jù)庫水平切分的優(yōu)點
水平切分的優(yōu)點:不存在單庫數(shù)據(jù)量過大、高并發(fā)的性能瓶頸,提升系統(tǒng)穩(wěn)定性和負載能力應用端改造較小,不需要拆分業(yè)務模塊缺點:跨分片的事務一致性難以保證跨庫的join關聯(lián)查詢性能較差數(shù)據(jù)多次擴展難度和維護量極大水平切分后同一張表會出現(xiàn)在多個數(shù)據(jù)庫/表中,每個庫/表的內(nèi)容不同。。
時間序列數(shù)據(jù)庫
根據(jù)數(shù)值取模一般采用hash取模mod的切分方式,例如:將 Customer 表根據(jù) cusno 字段切分到4個庫中,余數(shù)為0的放到個庫,余數(shù)為1的放到第二個庫,以此類推。這樣同一個用戶的數(shù)據(jù)會分散到同一個庫中,如果查詢條件帶有cusno字段,則可明確定位到相應庫去查詢。
優(yōu)點:數(shù)據(jù)分片相對比較均勻,不容易出現(xiàn)熱點和并發(fā)訪問的瓶頸缺點:后期分片集群擴容時,需要遷移舊的數(shù)據(jù)(使用一致性hash算法能較好的避免這個問題)容易面臨跨分片查詢的復雜問題。比如上例中,如果頻繁用到的查詢條件中不帶cusno時,將會導致無法定位數(shù)據(jù)庫,從而需要同時向4個庫發(fā)起查詢,再在內(nèi)存中合并數(shù)據(jù),取小集返回給應用,分庫反而成為拖累。