數(shù)據(jù)庫管理系統(tǒng)的歷史可以解釋為達爾文進化過程。
關系數(shù)據(jù)庫的主導地位讓位給了數(shù)據(jù)倉庫,它更好地適應了最早的商業(yè)智能需求;然后,隨著最流行的大數(shù)據(jù)平臺(例如Hadoop或spark)的興起,出現(xiàn)了NoSQL數(shù)據(jù)庫的時代,該數(shù)據(jù)庫被設計為在其他功能(例如,而不是一致性)中優(yōu)先考慮可伸縮性。
但是,這些年來發(fā)生的事情很可能是專業(yè)化過程。
實際上,我們正在經(jīng)歷許多DBMS范例的共存,例如列式,鍵值,文檔等。因此,不必依賴通用的唯一標準,而是可以選擇一種最佳化的標準,以更好地管理特定種類的數(shù)據(jù),并且更適合體系結(jié)構(gòu)和功能要求,例如,關系范式仍然是最佳的標準之一。選擇以處理ACID事務,而柱狀存儲則非常適合數(shù)據(jù)湖體系結(jié)構(gòu)等。在上述解決方案中,時間序列數(shù)據(jù)庫在最近幾年變得非常流行。
顧名思義,時間序列數(shù)據(jù)庫經(jīng)過設計和優(yōu)化,可以存儲隨時間變化的數(shù)據(jù)(時間序列數(shù)據(jù))。換句話說,時間序列是特定度量隨時間推移的(可能無界的)點序列。度量標準是對隨時間演變的現(xiàn)象的度量。
例如,出于旅游目的而來到一個國家的人數(shù)就是衡量指標的有效示例。
該指標可以具有多個維度(例如,原產(chǎn)國,目的地國家),但是每個點都必須有一個時間戳和一個代表度量本身的數(shù)值是強制性的。
實時分析中的時間序列數(shù)據(jù)庫
實時分析有很多非常相似的定義,每個定義都同意它具有收集和分析實時數(shù)據(jù)的能力,即實時數(shù)據(jù)進入系統(tǒng)后立即可用。
從業(yè)務角度看,實時分析系統(tǒng)必須能夠在事件收集到時提供洞察力,以便用戶能夠以最小的延遲采取行動。與傳統(tǒng)的大數(shù)據(jù)分析(側(cè)重于分析由異構(gòu)源生成的大量數(shù)據(jù)的可能性)相反,擁有一種架構(gòu)(例如數(shù)據(jù)湖)來允許用戶訪問更新為以下內(nèi)容的歷史數(shù)據(jù)將是不可接受的最后一天,但活動持續(xù)到最后一個小時。
實時分析所迫切需要的是一種架構(gòu),該架構(gòu)可在從外部世界(應用程序,傳感器等)收集到數(shù)據(jù)后立即對其進行處理,該架構(gòu)優(yōu)先考慮增量更新而不是定期進行完整的數(shù)據(jù)重新計算。換句話說,是流處理架構(gòu)。而且,這種架構(gòu)自然適合時間序列數(shù)據(jù)。實際上,如果數(shù)據(jù)隨時間變化,則系統(tǒng)會收集許多單個事件,這些事件必須能夠單獨處理。根據(jù)定義,流處理能夠輕松管理這種情況。
最受歡迎和最具標志性的流處理體系結(jié)構(gòu)稱為 Kappa體系結(jié)構(gòu)。
該體系結(jié)構(gòu)的特點之一是,預計需要兩層持久性:
日志存儲:大多數(shù)情況下,來自外部的原始事件是易變的,因此,出于容錯目的,必須可以將其持久化。該存儲層只需要快速的寫入吞吐量。
服務數(shù)據(jù)庫:客戶端應用程序(例如Web或移動儀表板)必須查詢數(shù)據(jù)庫,流處理引擎已將原始事件中包含的信息的子集存儲在該數(shù)據(jù)庫中。
必須優(yōu)化服務數(shù)據(jù)庫,以確保在查詢隨時間變化的數(shù)據(jù)時具有最佳讀取性能。鑒于到目前為止所做的所有假設,不言而喻,時間序列數(shù)據(jù)庫可以完美地充當服務層數(shù)據(jù)庫。
關注 CDA人工智能學院 ,回復“錄播”獲取更多人工智能精選直播視頻!