流式計算的理論與技術

2021-07-06 10:22:29 字數 3495 閱讀 7652

實時、高速:資料能以高併發的方式迅速到達,業務計算要求快速連續相應。資料處理的速度至少能夠匹配資料到達的速度。

無邊界:資料到達、處理和向後傳遞均是持續不斷的。

瞬時性和有限永續性:通常情況下,原始資料在單遍掃瞄,處理後丟棄,並不進行儲存;只有計算結果和部分中間資料在有限時間內被儲存和向後傳遞。

價值的時間偏倚性:隨著時間的流逝,資料中所蘊含的知識價值往往也在衰減,也即流中資料項的重要程度是不同的,最近到達的資料往往比早先到達的資料更有價值。

資料流模型

1. 時間序列模型

2. 收銀機模型

3. 轉門模型

其中收銀機模型可以看做是特殊的轉門模型,假設轉型模型的更新量只有正值就是收銀機模型

表2-1 data stream 與 database 的比較

比較項data stream

database

資料型別

靜態、離線資料

資料元組

離散資料項、帶有時間戳

關係資料,至少滿足第一正規化(inf)

資料更新

持續更新,頻率極高

更新頻率相對低

使用模式

維護查詢,流入資料

維護資料,提交查詢

查詢方式

單遍掃瞄,順序訪問資料

可多遍掃瞄,隨機訪問資料

返回結果

連續返回,推送結果,容忍非精確結果

事務一次性返回,提取精確結果

資料持久化

輸入資料在記憶體暫存,結果在返回後立即丟棄,或在有限時間內持久化

輸入輸出來自持久化儲存,結果可以持久化儲存

對於另乙個與資料流相關且相似的概念是dataflow,而且dataflow也被翻譯為「資料流」,這更容易導致概念的混淆。以下表2-2分析了兩者的區別和聯絡

比較項data stream

dataflow

概念起源

database

control flow

目標實時性的資料處理

資料驅動的任務協同

典型應用

網路日誌分析、金融監控預警

科學工作流(e-science workflow)

實時資料處理也稱實時計算或反應計算。相應地,針對流式資料的實時處理,稱為流式資料處理或流式計算。由定義可知,流式資料具有無邊界的特徵,也即理論上是無窮的資料項序列。而流式實時計算只能使用有限的記憶體資源,所以資料流的演算法一定是某種程度對流的摘要化處理。摘要資料結構和視窗都是最常用的摘要化技術。

摘要資料結構是任何比本身基礎資料集小得多的資料結構:

1. 可以駐留記憶體,使得查詢及時響應而避免訪問磁碟

2. 遠端傳輸的代價小

3. 對系統整體的空間開銷影響小

4. 當訪問基礎資料集的開銷過大時,可以作為基礎資料集的小規模**被處理

窗**術是資料流研究中另一種常用的技術。由於資料流存在實時性的需求,流中最近到達的資料比很久之前到達的資料對計算來說更有意義。如何描述流中資料的「最近」,是視窗模型的意義所在。

資料流的視窗是描述資料流的最近子集組合的方法。通過設定的視窗邊界,使得流中部分資料項位於視窗內,而在視窗之外資料則不被處理計算考慮。視窗長度指視窗的時間跨度,視窗大小指視窗中資料項的數量。

視窗的分類 這裡不進行詳細介紹

資料流處理技術可以為實時性要求高的應用提供支撐,實現業務上的例行資料分析和異常監控預警等。與傳統的資料處理技術相比,流式資料的實時計算存在以下幾個方面的特點

實時性的需求

低空間複雜度的需求

結果準確性的需求

適用性的需求

相比傳統資料管理系統,資料流處理系統維護是查詢的定義,資料持續到達。

在分布式環境下,資料流處理系統有邏輯節點和物理節點構成。系統中基本的邏輯處理單元,成為邏輯節點;部署節點的計算機,成為物理節點

集中式資料處理系統分布式資料處理系統

3.低延遲和高吞吐量是資料流處理系統最基本的需求,是由流式計算的實時性需求決定的。

資料流處理系統面臨的挑戰與當前研究熱點主要在以下三個方面

1. 處理效能與結果精確性的折中

2. 容錯與可用性

3. 分布式程式設計模型

twitter是將微博的潮流引入這個時代的公司,成為當今網際網路界的標桿之一。隨著微博的流行和it服務的全球化,驚人的資料量不斷增長,應對如此規模龐大和高速到達的資料,twitter公司在檢索、處理和儲存技術上面臨極大的挑戰。

hadoop mapreduce是當前離線大資料分析事實上的標準,對許多海量資料處理應用發揮了至關重要的作用,如驚醒網際網路全網內容索引等。但是,它的架構模型決定了其批處理的計算模型,對twitter這樣高度動態的實時資料,存在響應時間和及時性方面的諸多限制。2023年7月,twitter收購了一家專注於社交**資料分析的公司backtype,僅僅兩個月,2023年9月17日,storm的第乙個發布版作為開源軟體面世了。

storm是分布式資料處理系統,其強大的分布式集群管理、便捷的針對流式資料程式設計模型、高容錯非功能保障,是它成為業界明星的首要原因。

storm為大規模的集群配置管理,提供了高效的管理方式,使用者通過簡單的配置,便可實現之前龐雜的管理步驟。

storm為複雜的流計算模型提供了豐富的服務和程式設計介面,降低了學習和開發的門檻,在效能和功能方面均彌補了hadoop批處理所不能滿足的實時需求。

storm提供的可靠性保障,不僅提供對分布式的元件級的容錯,而且提供不丟失資料的記錄及容錯保證。

適用領域:實時分析持續計算分布式遠端呼叫etl

twitter公司實現多樣化的資料應用:資料發現實時分析個性化搜尋收益優化groupon的實時資料整合系統中,storm被用於分析、清洗、規範化實時資料,以低延遲、高吞吐量的處理能力來解決資料的不一致問題。

yahoo開發的下一代大資料框架yarn,通過支援storm的整合,用於整合海量離線資料和大規模實時資料的資源管理。

**基於storm實現了實時的日誌統計和資訊提取,其中日誌是從類似kafka的訊息佇列中提取的,實時分析後將結果寫入其他系統的資料持久化儲存中。

阿里巴巴作為世界最大的b2b電子商務平台,利用storm實現業務日誌處理和應用中資料記錄的實時交換。

支付寶作為中國最大的第三方支付平台,storm被用於分析交易數量、交易質量、最優商家、註冊使用者量的實時計算。

trovit是已經在39個國家使用的分類廣告搜尋引擎,其結合已有的hadoop生態圈的技術,將storm用於低延遲的索引廣告,為終端使用者提供即時相應的搜尋結果服務。

流式計算的特點

1 實時性。流式大資料不僅是實時產生的,也是要求實時給出反饋結果。系統要有快速響應能力,在短時間內體現出資料的價值,超過有效時間後資料的價值就會迅速降低。2 突發性。資料的流入速率和順序並不確定,甚至會有較大的差異。這要求系統要有較高的吞吐量,能快速處理大資料流量。3 易失性。由於資料量的巨大和其價...

流式凋亡率計算 流式CBA技術基本原理及其臨床應用

基於免疫細胞所分泌的的細胞因子檢測是判斷機體免疫功能的乙個重要指標,因而具有重要的臨床價值 包括針對許多疾病的診斷 病程觀察 療效判斷及細胞因子 監測等。但是,由於細胞因子在體內的含量甚微,給細胞因子的檢測帶來困維,要同時測定多種細胞因子對標本的要求更高,還需要複雜的儀器裝置才能定量。目前細胞因子的...

潛流式人工濕地計算 人工濕地技術

人工濕地汙水處理技術是70年代末發展起來的一種汙水處理新技術。它具有處理效果好,對bod5的去除率可達85 95 cod的去除率可達80 氮磷去除能力強,對tn和tp的去除率可達60 和90 且運轉維護管理方便 工程基建和運轉費用底,同時可使汙水處理與環境生態建設有機結合,在處理汙水的同時創造城市生...