1. 程式人生 > 其它 >Python基礎 - 04控制語句

Python基礎 - 04控制語句

原文地址:https://blog.csdn.net/wubaohu1314/article/details/120098385

萬物互聯時代,工業物聯網產生的資料量比傳統的資訊化要多數千倍甚至數萬倍,並且是實時採集、高頻度、高密度,動態資料模型隨時可變。傳統資料庫在對這些資料進行儲存、查詢、分析等處理操作時捉襟見肘,迫切需要一種專門針對時序資料來做優化的資料庫系統,即時間序列資料庫。

時間序列資料庫(Time Series Database)是用於儲存和管理時間序列資料的專業化資料庫,具備寫多讀少、冷熱分明、高併發寫入、無事務要求、海量資料持續寫入等特點,可以基於時間區間聚合分析和高效檢索,廣泛應用在物聯網、經濟金融、環境監控、工業製造、農業生產、硬體和軟體系統監控等場景。

▲DB-Engines最新發布的時序資料庫排名表

根據國際知名網站DB-Engines資料,時序資料庫在過去24個月內排名高居榜首,且遠高於其他型別的資料庫,可見業內對時序資料庫的需求迫切。相應的時序資料庫產品近年來也快速發展,各大網際網路企業包括谷歌、阿里巴巴、亞馬遜都推出自己的時序資料庫,業界使用較多的時序資料庫主要有如下幾種:

1、InfluxDB

InfluxDB是一款用Go語言編寫的開源分散式時序、事件和指標資料庫,無需外部依賴。該資料庫現在主要用於儲存涉及大量的時間戳資料,如DevOps監控資料,APP metrics,loT感測器資料和實時分析資料。

作為目前開源排名最高的時序資料庫,InfluxDB支援資料儲存策略(RP)和資料歸檔(CQ),能夠實時查詢,資料在寫入時被索引後就能夠被立即查出,內建HTTP介面,安裝管理很簡單,並且讀寫資料非常高效。

2、Kdb+

kdb+/q被官方稱為世界上最快的時間序列資料庫,它使用統一的資料庫處理實時資料和歷史資料,同時具備CEP(複雜事件處理)引擎、記憶體資料庫、磁碟資料庫等功能。列式儲存的特性,使得對於某個列的統計分析操作異常方便。

與一般資料庫或大資料平臺相比,kdb+/q具有更快的速度和更低的總擁有成本,非常適合海量資料處理,主要被用於海量資料分析、高頻交易、人工智慧、物聯網等領域。在延遲性上有著苛刻要求的金融領域,kdb+有著獨特的優勢。

3、Prometheus

Prometheus是一套開源的系統監控報警框架,由工作在SoundCloud的Google前員工在2012年建立,作為社群開源專案進行開發,2015年正式釋出,並在次年正式加入Cloud Native Computing Foundation。

作為新一代的監控框架,Prometheus具備強大的多維度資料模型,有多種視覺化圖形介面,使用pull模式採集時間序列資料,可以採用push gateway的方式把時間序列資料推送至Prometheus server端。

4、 Graphite

Graphite是一個開源實時的、顯示時間序列度量資料的圖形系統。Graphite並不收集度量資料本身,而是像一個數據庫,通過其後端接收度量資料,然後以實時方式查詢、轉換、組合這些度量資料。

Graphite支援內建的Web介面,它允許使用者瀏覽度量資料和圖。它由多個後端和前端元件組成。後端元件用於儲存數值型的時間序列資料,前端元件則用於獲取指標項資料並根據情況渲染圖表。

5、TimescaleDB

TimescaleDB是唯一支援完整SQL的開放原始碼時間序列資料庫,已針對支援全面SQL的快速提取和複雜查詢進行了優化。它基於PostgreSQL,並且為時間序列資料提供了最好的NoSQL和Relational世界。

TimescaleDB使開發人員和組織能夠更多地利用其功能:分析過去,瞭解現在和預測未來。在查詢層面統一時序資料和關係資料可消除資料孤島,並使演示和原型更容易實現。可擴充套件性和完整的SQL介面的結合賦予員工提出資料問題。

6、阿里雲TSDB

作為我國科技公司的代表,阿里雲時序資料庫也入圍了DB-Engines榜單。TSDB是一種集時序資料高效讀寫,壓縮儲存,實時計算能力為一體的資料庫服務,可廣泛應用於物聯網和網際網路領域,實現對裝置及業務服務的實時監控,預測告警。

TSDB具備秒級寫入百萬級時序資料的效能,提供高壓縮比低成本儲存、預降取樣、插值、多維聚合計算、視覺化查詢結果等功能,解決由裝置採集點數量巨大、資料採集頻率高造成的儲存成本高、寫入和查詢分析效率低的問題。