Flink框架:批處理和流式處理與有界數據和無界數據之間的關系

本文重點

從數據集的類型來看,數據集可以分為有界數據和無界數據兩種,從處理方式來看,有批處理和流處理兩種。一般而言有界數據常常使用批處理方式,無界數據往往使用流處理方式。

有界數據和無界數據

有界數據有一個明確的開始和結束。在執行任何計算之前,可以通過獲取所有數據來處理有界流。處理有界流不需要有序攝取,因為有界數據集總是可以排序的。有界流的處理也稱為批處理。

無界數據有開始但是沒有結束。無界數據流必須被連續處理,即事件在被接收后必須被迅速處理。不可能等待所有輸入數據到達,因為輸入是無限的,并且不會在任何時間點完成。處理無限數據通常需要以特定的順序接收事件,例如事件發生的順序,以便能夠推斷結果的完整性,這往往也是處理無界數據困難的地方,因為事件的接收順序和事件的發生順序往往是不一致的。

有界數據集和無界數據集只是一個相對的概念,主要根據時間的范圍而定,可以認為一段時間內的無界數據集其實就是有界數據集,同時有界數據也可以通過一些方法轉換為無界數據。例如一臺插座設備上報一年的電量數據,其本質上應該是有界的數據集,可是當我們把它一條一條按照產生的順序發送到流式系統,通過流式系統對數據進行處理,在這種情況下可以認為數據是相對無界的。對于無界數據也可以拆分成有界數據進行處理,例如一臺設備不停的上報電量數據,如果按照年或月進行切割,此時我們就可以將數據看成是有界的。

從以上分析我們可以得出結論:有界數據和無界數據其實是可以相互轉換的。有了這樣的理論基礎,對于不同的數據類型,業界也提出了不同的能夠統一數據處理的計算框架。比如Apache Spark框架和Apache Flink框架。

?比如Spark通過批處理模式來統一處理有界和無界的數據集,對于無界數據是將數據按照批次切分成微批 (有界數據集)來進行處理。Flink 通過流處理模式來統一處理不同類型的數據集。將有界數據也按照無界數據進行處理,最終將批處理和流處理統一在一套流式引擎中,而需要部署兩套。

批處理和流處理

在大數據領域批處理和流式處理常常被認為是兩種不同的任務。

批處理是有界數據流處理的范例。在這種模式下,你可以選擇在計算結果輸出之前輸入整個數據集,這也就意味著你可以對整個數據集的數據進行排序、統計或匯總計算后再輸出結果。假設數據處理產線有多個處理操作,批處理需要將所有數據處理完成之后才會進入下一個操作。如圖所示,這100條數據經過處理A處理之后,才會將處理結果輸入到下一個處理B,如果A沒有處理完畢,那么B就只能等待。

流處理正相反,其涉及無界數據流。至少理論上來說,它的數據輸入永遠不會結束,因此程序必須持續不斷地對到達的數據進行處理。如圖所示,數據A經過處理B處理完畢之后,就可以放到下一環節被處理C處理,此時新的數據數據B不會閑下來,又處理新來的數據B了,也就是說處理B和處理C可以同時加工不同的數據,處理完就把數據往下扔,然后接著處理上一環節的數據。

注意:并不是說無界數據就一定要流式處理,也不一定有界數據就一定批式處理。我們前面說過了有界數據和無界數據其實是可以相互轉換的,如果我們想要批量處理我們就將其轉變為有界數據,如果我們想要流式處理我們就將其轉變為無界數據就好了。

應用場景

1. 批處理的應用場景

批處理通常用于處理大量的歷史數據,例如,企業的銷售數據、財務數據等。批處理可以幫助企業進行數據分析、數據挖掘、預測分析等工作,從而幫助企業做出更好的決策。

2. 流處理的應用場景

流處理通常用于處理實時數據,例如,股票行情、網絡流量、傳感器數據等。流處理可以幫助企業進行實時監控、實時預警、實時決策等工作,從而幫助企業更好地應對突發事件和變化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75162.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75162.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75162.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

虛擬列表react-virtualized使用(npm install react-virtualized)

1. 虛擬化列表 (List) // 1. 虛擬化列表 (List)import { List } from react-virtualized; import react-virtualized/styles.css; // 只導入一次樣式// 示例數據 const list Array(1000).fill().map((_, index) > ({id: index,name: Item ${index},description: This is i…

IT+開發+業務一體化:AI驅動的ITSM解決方案Jira Service Management價值分析(文末免費獲取報告)

本文來源atlassian.com,由Atlassian全球白金合作伙伴、DevSecOps解決方案提供商-龍智翻譯整理。 無論是支持內部員工、處理突發事件還是批準變更申請,服務團隊的每一分鐘都至關重要。您的企業是否做好了充分準備? 許多企業仍然依賴傳統的IT服…

leetcode刷題日記——167. 兩數之和 II - 輸入有序數組

[ 題目描述 ]: [ 思路 ]: 題目要求求數值numbers中的和為 target 的兩個數的下標最簡單的思路就是暴力求解,兩兩挨個組合,但時間復雜度為O(n2),不一定能通過因為數組為非遞減,那我們可以使用雙指針&#…

【Leetcode-Hot100】盛最多水的容器

題目 解答 目的是求面積最大,面積是由兩個下標和對應的最小值得到,因此唯一的問題就是如何遍歷這兩個下標。我采用begin和end兩個變量,確保begin是小于end的,使用它們二者求面積,代碼如下: 很不幸 出錯了…

dify文本生成圖片

安裝Stability 授權 Stability AI - Developer Platform Stability AI - Developer Platform 創建智能體 模型要選好點的,要不可能會生成失敗。

前端開發中的問題排查與定位:HTML、CSS、JavaScript(報錯的解決方式)

目錄 1.html 1. 結構錯誤調試:標簽未正確嵌套 2. 語法問題調試:缺失引號 3. 斷點調試:動態生成內容時的 JavaScript 錯誤 4. 網絡調試:資源加載錯誤 5. 性能調試:頁面加載性能 總結: 2.CSS 1. 定位…

Spring MVC 重定向(Redirect)詳解

Spring MVC 重定向(Redirect)詳解 1. 核心概念與作用 重定向(Redirect) 是 Spring MVC 中一種客戶端重定向機制,通過 HTTP 302 狀態碼(默認)將用戶瀏覽器重定向到指定 URL。 主要用途&#xf…

《深入探秘:分布式軟總線自發現、自組網技術原理》

在當今數字化浪潮中,分布式系統的發展日新月異,而分布式軟總線作為實現設備高效互聯的關鍵技術,其自發現與自組網功能宛如打開智能世界大門的鑰匙,為多設備協同工作奠定了堅實基礎。 分布式軟總線的重要地位 分布式軟總線是構建…

eplan許可證的用戶權限管理

在電氣設計領域,EPLAN軟件以其強大的功能和靈活性而備受用戶青睞。然而,隨著企業規模的擴大和團隊人數的增加,如何確保軟件使用的安全與效率成為了一個重要的問題。EPLAN許可證的用戶權限管理功能為此提供了完美的解決方案。本文將詳細介紹EP…

pytorch小記(十七):PyTorch 中的 `expand` 與 `repeat`:詳解廣播機制與復制行為(附詳細示例)

pytorch小記(十七):PyTorch 中的 expand 與 repeat:詳解廣播機制與復制行為(附詳細示例) 🚀 PyTorch 中的 expand 與 repeat:詳解廣播機制與復制行為(附詳細示例&#xf…

Databricks: Why did your cluster disappear?

You may found that you created a cluster many days ago, and you didnt delete it, but it is disapear. Why did this happen? Who deleted the cluster? Actually, 30 days after a compute is terminated, it is permanently deleted automaticlly. If your workspac…

C語言【輸出字符串中的大寫字母】

題目 輸出字符串中的大寫字母 思路&#xff08;注意事項&#xff09; 純代碼 #include<stdio.h> #include<string.h>int main(){char str[20], ans[20];fgets(str, sizeof(str), stdin);str[strcspn(str, "\n")] \0;for (int i 0, j 0; i < strl…

基于隊列構建優先級搶占機制的LED燈框架設計與實現

文章目錄 前言一、LED 顯示框架概述1. 框架結構圖2. 基本機制 二、核心結構與接口設計1. 狀態命令結構2. 狀態項結構3. LED框架配置結構4. LED運行控制器 三、LED框架邏輯流程1. 初始化邏輯2. 優先級搶占判斷與處理邏輯3. 執行隊列命令并處理tick4. 隊列為空時的默認狀態回滾 四…

PyQt6實例_A股財報數據維護工具_解說并數據與完整代碼分享

目錄 1 20250403之前的財報數據 2 整個項目代碼 3 工具使用方法 3.1 通過akshare下載 3.2 增量更新 3.3 查看當前數據情況 3.4 從數據庫中下載數據 視頻 1 20250403之前的財報數據 通過網盤分享的文件&#xff1a;財報三表數據20250403之前.7z 鏈接: https://pan.ba…

React 之 Redux 第三十一節 useDispatch() 和 useSelector()使用以及詳細案例

使用 Redux 實現購物車案例 由于 redux 5.0 已經將 createStore 廢棄&#xff0c;我們需要先將 reduxjs/toolkit 安裝一下&#xff1b; yarn add reduxjs/toolkit// 或者 npm install reduxjs/toolkit使用 vite 創建 React 項目時候 配置路徑別名 &#xff1a; // 第一種寫法…

Spring Boot 中集成 Knife4j:解決文件上傳不顯示文件域的問題

Spring Boot 中集成 Knife4j&#xff1a;解決文件上傳不顯示文件域的問題 在使用 Knife4j 為 Spring Boot 項目生成 API 文檔時&#xff0c;開發者可能會遇到文件上傳功能不顯示文件域的問題。本文將詳細介紹如何解決這一問題&#xff0c;并提供完整的解決方案。 Knife4j官網…

OpenCV 圖形API(17)計算輸入矩陣 src 中每個元素的平方根函數sqrt()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 描述 計算數組元素的平方根。 cv::gapi::sqrt 函數計算每個輸入數組元素的平方根。對于多通道數組&#xff0c;每個通道會獨立處理。其精度大約與內置的 …

大學論文書寫規范與格式說明

大學論文書寫規范與格式說明 (適用于人文社科、理工科通用框架) 一、論文整體結構 1. 基本組成部分 封面 包含論文標題、作者姓名、學院/專業、學號、指導教師、提交日期等(按學校模板填寫)。 中英文摘要 中文摘要:300~500字,概述研究背景、方法、結論與創新點,末尾附…

C# 串口通信

1. 導入 using System.IO.Ports;2. 初始化定義 SerialPort sp new SerialPort(); // 設置串口 sp.PortName "COM3"; // 串口 sp.BaudRate 9600; // 波特率 sp.Parity Parity.None; // 校驗位 sp.DataBits 8; // 數據位 sp.StopBits StopBits.One; // 停…

android14 keycode 上報 0 解決辦法

驅動改完后發現上報了keycode=0 04-07 13:02:33.201 2323 2662 D WindowManager: interceptKeyTq keycode=0 interactive=false keyguardActive=true policyFlags=2000000 04-07 13:02:33.458 2323 2662 D WindowManager: interceptKeyTq keycode=0 interactive=false key…