什麼是流處理

流處理正變得像數據處理一樣流行。流處理已經超出了其原來的實時數據處理的範疇,它正在成為一種提供數據處理(包括批處理),實時應用乃至分散式事務的新方法的技術。

1、什麼是流處理?

流處理是不斷合併新數據以計算結果的動作。在流處理中,輸入數據不受限制,並且沒有預定的開始或結束。它只是形成一系列事件,這些事件到達流處理系統,例如信用卡交易,網站點擊或來自物聯網設備的感測器讀數。

流是一種數據分發技術,其中數據生產者將數據記錄寫入有序數據流,數據使用者可以從中按相同順序讀取數據。這是一個簡單的數據流圖,說明了數據生產者,數據流和數據使用者。

每個數據流產品都對使用案例和要支援的處理技術進行了一系列假設。這些假設導致了某些設計選擇,這些選擇影響可以使用它們實現的流處理行為的類型。

來自維基百科;

流處理是一種電腦編程範例,等效於數據流編程,事件流處理和反應式編程,它使某些應用程式可以更輕鬆地利用有限形式的並行處理。
流處理是一項強大的技術,可以掃描來自感測器,信用卡刷卡,點擊流和其他輸入的大量數據,並幾乎即時找到可行的見解。例如,流處理可以檢測到包含數百萬合法購買的流中的單個欺詐性交易,充當推薦引擎來確定特定客戶在實際購物時要顯示什麼廣告或促銷,或者計算出最佳價格以用於只需幾秒鐘即可完成汽車服務。

術語「流處理」是指數據以某些外部系統或多個外部系統產生的事件的連續「流」形式進入處理引擎,並且處理引擎的運行速度如此之快,以至於所有決策都無需停止數據流和首先存儲資訊。

2、典型用例

流處理正在迅速獲得普及並在各種業務領域中找到應用程式。隨著證券交易所從場內交易轉向電子交易,它在金融行業的首次使用得到了證實。如今,在幾乎每個行業中,無論是通過人工活動,機器數據還是感測器數據生成流數據的任何地方,它都變得有意義。假設它起飛了,那麼物聯網將增加數據的數量,種類和速度,從而導致流處理技術的應用程式急劇增加。

流處理可以解決業務問題的一些用例包括:

  • 網路監控
  • 情報和監視
  • 風險管理
  • 電子商務
  • 欺詐識別
  • 智慧訂單路由
  • 交易成本分析
  • 定價與分析
  • 市場數據管理
  • 演算法交易
  • 數據倉庫擴充

3、流處理和Hadoop

大數據架構包含用於實時分析的流處理,以及用於存儲各種數據和長時間運行的計算的Hadoop。

Hadoop最初是從MapReduce開始的,後者提供批處理,其中查詢耗時數小時,數分鐘或最多數秒鐘。對於大數據量的複雜轉換和計算,這將是非常有用的。但是,對於臨時數據探索和實時分析而言,它並不是很好。但是,多家供應商已經進行了改進,並為Hadoop添加了功能,使其不僅具有批處理框架的功能。

DWH,Hadoop和流處理彼此很好地互補。因此,在大數據時代,集成層顯得尤為重要,因為您必須組合越來越多的不同接收器和源。

自2016年以來,出現了一個稱為Streaming SQL的新想法。我們將一種語言稱為「流SQL」,該語言使用戶能夠編寫類似於查詢的SQL來查詢流數據。現在,幾乎所有串流處理器都支援流SQL。

4、選擇流處理框架

數據流產品有很多,很難知道從哪裡開始研究它們,哪些產品可以做什麼等等。

在做出決定之前,必須進行典型的評估過程(長清單,短清單,概念證明)。

  • 用於流分析的流處理程式語言

  • 可視化開發和調試,而不是編碼

  • 實時分析

  • 監控和警報

  • 支援容錯和高度優化的性能

  • 產品成熟度

考慮一下項目需要上述哪些功能。此外,在做出選擇之前,必須評估使用框架的成本,生產率,減少的工作量以及產品上市時間。

我們正處於一個數據的時代。在此過程中,時間至關重要,而速度將決定贏家和輸家。

當必須快速連續處理數據(即必須實時計算和迅速反應)時,需要進行流處理。這個要求越來越多地出現在各個領域。市場上已經有許多不同的框架和產品。

許多用例需要快速,實時的決策。儘管可以使用資料庫或批處理來實現它們,但是使用這種技術只會越來越複雜。相反,流提供了一種更自然的模型來考慮,捕獲和實現這些實時流用例。流SQL提供了一種簡單而強大的語言來對流用例進行編程。

現實情況是,大多數數據的價值會隨著時間而下降

更多Flink,Kafka等相關技術博文,科技資訊,歡迎關注實時流式計算 公眾號後台回復 「電子書」 下載300頁Flink實戰電子書