流處理正變得像資料處理一樣流行。流處理已經超出了其原來的實時資料處理的範疇,它正在成為一種提供資料處理(包括批處理),實時應用乃至分散式事務的新方法的技術。
1、什麼是流處理?
流處理是不斷合併新資料以計算結果的動作。在流處理中,輸入資料不受限制,並且沒有預定的開始或結束。它只是形成一系列事件,這些事件到達流處理系統,例如信用卡交易,網站點選或來自物聯網裝置的感測器讀數。
流是一種資料分發技術,其中資料生產者將資料記錄寫入有序資料流,資料使用者可以從中按相同順序讀取資料。這是一個簡單的資料流圖,說明了資料生產者,資料流和資料使用者。
每個資料流產品都對使用案例和要支援的處理技術進行了一系列假設。這些假設導致了某些設計選擇,這些選擇影響可以使用它們實現的流處理行為的型別。
來自維基百科;
流處理是一種計算機程式設計範例,等效於資料流程式設計,事件流處理和反應式程式設計,它使某些應用程式可以更輕鬆地利用有限形式的並行處理。
流處理是一項強大的技術,可以掃描來自感測器,信用卡刷卡,點選流和其他輸入的大量資料,並幾乎即時找到可行的見解。例如,流處理可以檢測到包含數百萬合法購買的流中的單個欺詐性交易,充當推薦引擎來確定特定客戶在實際購物時要顯示什麼廣告或促銷,或者計算出最佳價格以用於只需幾秒鐘即可完成汽車服務。
術語“流處理”是指資料以某些外部系統或多個外部系統產生的事件的連續“流”形式進入處理引擎,並且處理引擎的執行速度如此之快,以至於所有決策都無需停止資料流和首先儲存資訊。
2、典型用例
流處理正在迅速獲得普及並在各種業務領域中找到應用程式。隨著證券交易所從場內交易轉向電子交易,它在金融行業的首次使用得到了證實。如今,在幾乎每個行業中,無論是通過人工活動,機器資料還是感測器資料生成流資料的任何地方,它都變得有意義。假設它起飛了,那麼物聯網將增加資料的數量,種類和速度,從而導致流處理技術的應用程式急劇增加。
流處理可以解決業務問題的一些用例包括:
- 網路監控
- 情報和監視
- 風險管理
- 電子商務
- 欺詐識別
- 智慧訂單路由
- 交易成本分析
- 定價與分析
- 市場資料管理
- 演算法交易
- 資料倉儲擴充
3、流處理和Hadoop
大資料架構包含用於實時分析的流處理,以及用於儲存各種資料和長時間執行的計算的Hadoop。
Hadoop最初是從MapReduce開始的,後者提供批處理,其中查詢耗時數小時,數分鐘或最多數秒鐘。對於大資料量的複雜轉換和計算,這將是非常有用的。但是,對於臨時資料探索和實時分析而言,它並不是很好。但是,多家供應商已經進行了改進,併為Hadoop新增了功能,使其不僅具有批處理框架的功能。
DWH,Hadoop和流處理彼此很好地互補。因此,在大資料時代,整合層顯得尤為重要,因為您必須組合越來越多的不同接收器和源。
自2016年以來,出現了一個稱為Streaming SQL的新想法。我們將一種語言稱為“流SQL”,該語言使使用者能夠編寫類似於查詢的SQL來查詢流資料。現在,幾乎所有流處理器都支援流SQL。
4、選擇流處理框架
資料流產品有很多,很難知道從哪裡開始研究它們,哪些產品可以做什麼等等。
在做出決定之前,必須進行典型的評估過程(長清單,短清單,概念證明)。
-
用於流分析的流處理程式語言
-
視覺化開發和除錯,而不是編碼
-
實時分析
-
監控和警報
-
支援容錯和高度優化的效能
-
產品成熟度
考慮一下專案需要上述哪些功能。此外,在做出選擇之前,必須評估使用框架的成本,生產率,減少的工作量以及產品上市時間。
我們正處於一個資料的時代。在此過程中,時間至關重要,而速度將決定贏家和輸家。
當必須快速連續處理資料(即必須實時計算和迅速反應)時,需要進行流處理。這個要求越來越多地出現在各個領域。市場上已經有許多不同的框架和產品。
許多用例需要快速,實時的決策。儘管可以使用資料庫或批處理來實現它們,但是使用這種技術只會越來越複雜。相反,流提供了一種更自然的模型來考慮,捕獲和實現這些實時流用例。流SQL提供了一種簡單而強大的語言來對流用例進行程式設計。
現實情況是,大多數資料的價值會隨著時間而下降。
更多Flink,Kafka等相關技術博文,科技資訊,歡迎關注實時流式計算 公眾號後臺回覆 “電子書” 下載300頁Flink實戰電子書