Flink流處理基礎概論

文章目錄

    • 引言
    • Flink基本概述
      • 傳統數據架構的不足
    • Dataflow中的幾大基本概念
      • Dataflow流式處理宏觀流程
      • 數據并行和任務并行的區別
      • Flink中幾種數據傳播策略
    • Flink中事件的延遲和吞吐
      • 事件延遲
      • 事件的吞吐
      • 如何更好的理解事件的延遲和吞吐
    • flink數據流的幾種操作
      • 輸入輸出
      • 轉換操作
      • 滾動聚合
      • 窗口操作
    • Flink中的時間語義
      • 事件時間和處理時間
      • Flink水位線
    • Flink中的一致性問題
      • 利用狀態保證一致性
      • 任務保證和結果保障的概念
    • 小結
    • 參考

引言

本文初步針對flink中幾個核心的概念和使用的注意事項進行簡單的介紹,讓讀者針對flin中一些核心的組件使用有一個初步的了解。

Flink基本概述

傳統數據架構的不足

因為特殊需要我們針對采集的數據等進行數據樣本分析,所以大部分企業都會在傳統事務型的OLTP數據庫補充一套OLAP同步數據。

好在如今有了各種分析型的數據倉庫可以做到這一點,但因為如今的微服務架構使得各個應用都遵循專注做好一件事的哲學。這是的事務型數據庫數據分布在不同的系統上,所以我們就需要一款實時采集數據流數據處理應用,將這些相互隔離的數據庫數據聯合并采集到分析型數據倉庫上。

而上述這個同步的過程,也就是我們常說的ETL即提取-轉換-加載(Extract-Transform-Load,),整體來說,它的執行步驟為:

  1. 提取:從事務型數據庫中提取數據
  2. 轉換:按照需求進行數據轉換為符合要求的數據格式(可能包含數據驗證、數據歸一化、編碼、去重、表模式轉換)
  3. 加載:同步到分析型數據庫上完成持久化

所以一旦數據同步到分型數據庫上,我們就可以利用分析型數據庫做到如下幾點:

  1. 定期數據報告:以生成計算業務習相關的統計數據,幫助管理層進行評估企業整體健康狀況。
  2. 即席查詢:利用分析型數據的優勢,通過查詢數據解決特定問題,以便進行下一步的商業決策。

Dataflow中的幾大基本概念

Dataflow流式處理宏觀流程

Dataflow代表著數據如何在不同的操作之間的流動,它通常是由一張有向圖構成,即:

  1. 數據源:對于flink中沒有輸入一端的算子,即數據源頭,我們稱之為dataflow的源數據。
  2. 算子:有輸入和輸出,即通過從輸入端獲取數據并對其進行計算,然后產生數據從輸出端輸出供后續處理。
  3. 數據匯:經過無數個算子,將數據匯聚到終端即沒有輸出的一端,這種沒有輸出端的算子就是數據匯。

數據并行和任務并行的區別

上述說明了構成了Dataflow的宏觀核心概念的邏輯視圖,按照物理分布式視圖下,算子可能會發布在不同的物理機器上,例如下圖所示,中間進行數據轉換計算的算子,各分配兩個發布在不同的機器下作為并行任務運行,各自完成自己的一部分的計算任務。由此,也就有了數據并行和任務并行的概念。

先來說說數據并行,本質就是將數據進行分組,使之同一操作的多個任務切割為不同的子集,這使得計算負載能夠分配到不同算子上工作,例如按照用戶id進行分組將數據發布到負載的算子上進行數據運算。

而任務并行則說相同規則的算子可以多個并行處理,源數據可以并行傳輸到并行算子中運行,可以更好的利用集群資源進行運算。

Flink中幾種數據傳播策略

采集到源數據之后,flink會按照數據傳播策略將數據項分配給不同的任務,對應的傳播策略也有以下幾種:

  1. 轉發策略:將數據按照一對一映射的方式傳輸到指定的節點上,這種做法對于部署在相同機器上的任務非常友好,因為它們避免的網絡通信的開銷。
  2. 廣播策略:即針對收到的數據流,將數據拷貝的多份然后發布到所有的下游算子中,因為涉及多算子節點的網絡通信,所以代價也會相對昂貴一些。
  3. 基于鍵值對的策略:按照事先約定

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

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

相關文章

Tomcat 使用與配置全解

一、 Tomcat簡介 Tomcat服務器是Apache的一個開源免費的Web容器。它實現了JavaEE平臺下部分技術規范,屬于輕量級應用服務器。 1. Tomcat版本 Tomcat版本 JDK版本 Servlet版本 JSP版本 10.0.X 8 and later 5.0 3.0 9.0.x 8 and later 4.0 2.3 8.0.x 7…

Unity3D仿星露谷物語開發52之菜單頁面

1、目標 創建菜單頁面,可通過Esc鍵開啟或關閉。 當把鼠標懸停在上面時它會高亮,然后當點擊按鈕時標簽頁會被選擇。 2、 創建PauseMenuCanvas (1)創建Canvas 在Hierarchy -> PersistentScene -> UI下創建新的Cavans命名為…

Spring Boot 調優的 12 個關鍵節點

數據庫連接池調優:精準匹配系統資源 癥狀: 默認配置下,連接池資源使用不當,高并發時連接耗盡或排隊。 常見誤區: spring:datasource:hikari:maximum-pool-size: 1000 # 設置過大connection-timeout: 30000 # 設置…

前端流行框架Vue3教程:28. Vue應用

28. Vue應用 應用實例 每個 Vue 應用都是通過 createApp函數創建一個新的 應用實例 main.js import {createApp} from vue import App from ./App.vue// app:Vue的實例對象 // 在一個Vue項目中,有且只有一個Vue的實例對象 const app createApp(App)/* 根組件選項…

MongoDB 數據庫遷移:完整指南與最佳實踐

在現代數據驅動的應用中,數據庫遷移是一項常見的任務,無論是升級 MongoDB 版本、更換服務器硬件,還是遷移到云環境(如 MongoDB Atlas),都需要一個可靠的遷移策略。錯誤的遷移方式可能導致數據丟失、應用停機…

MQTT-Vue整合

Vue整合 依賴環境 nodejs 版本 > 18安裝 element plus npm install element-plus安裝 mqtt npm install mqtt初始化Vue項目 使用 vite 創建項目 執行命令 npm create vitelatest輸入項目名稱 vue-mqtt-demo MQTT連接 連接組件代碼 components/MqttDemo.vue <script…

IP 地址反向解析(IP反查域名)原理與應用

一、IP 地址反向解析的原理與技術細節 IP 地址反向解析&#xff08;Reverse IP Lookup&#xff09;是一種將 IP 地址映射回其關聯域名或主機名的網絡技術&#xff0c;與常見的正向 DNS 解析&#xff08;將域名解析為 IP 地址&#xff09;形成互補。這一過程在網絡安全研究、漏…

Mermaid 文件支持的圖表

Mermaid 文件后綴支持多種類型的圖表&#xff0c;包括但不限于&#xff1a; 流程圖&#xff1a;用于描述流程和決策的圖表&#xff0c;常用于業務流程的表示和分析。 時序圖&#xff1a;用于描述事件發生的順序和時序關系的圖表&#xff0c;常用于系統交互和消息傳遞的分析。 …

用 Python 構建自動駕駛的實時通信系統:讓車輛“交流”起來!

用 Python 構建自動駕駛的實時通信系統:讓車輛“交流”起來! 自動駕駛技術正加速變革全球交通體系,它不僅是機器學習與計算機視覺的勝利,更是一場 高效通信架構的革命。自動駕駛汽車需要實時交換信息,比如: 傳感器數據(雷達、激光雷達、攝像頭)V2V(車與車通信)V2X(…

PDF處理控件Aspose.PDF教程:以編程方式合并PDF文檔

合并 PDF 文檔是常見的需求——無論您是整理報告、合并發票還是整合掃描頁面。單一、統一的文件更易于在個人、學術或專業用途中共享、存儲和管理。 本文將向您展示如何使用 Aspose.PDF在C#、Java 和 Python中以編程方式合并 PDf 文件。 Aspose.PDF最新版下載 為什么使用 As…

.gitignore 的基本用法

.gitignore 文件是 Git 版本控制系統中一個非常重要的配置文件&#xff0c;用于指定哪些文件或目錄應該被 Git 忽略&#xff0c;不納入版本控制。合理使用 .gitignore 可以避免將臨時文件、編譯產物、敏感信息等不必要的文件提交到代碼倉庫中。 1. .gitignore 的基本用法 &…

華為OD機試真題——分糖果(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳實現

2025 A卷 100分 題型 本專欄內全部題目均提供Java、python、JavaScript、C、C++、GO六種語言的最佳實現方式; 并且每種語言均涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、3個測試用例以及綜合分析; 本文收錄于專欄:《2025華為OD真題目錄+全流程解析+備考攻略+經驗分…

通過chrome插件自動生成博客評論,高效發外鏈

最近crazy cattle 3d這個詞爆火&#xff0c;很多人都在做&#xff0c;競爭異常激烈&#xff0c;甚至可以說是慘不忍睹。 從最近的數據看&#xff0c;勝出的主要是crazycattle3d.com, crazycattle3d.io, crazy-cattle-3d.com這幾個&#xff0c;流量最高的crazycattle3d.com已經…

創建一個簡易的風扇動畫界面:基于 WPF 和 XAML 的實現教程

在本教程中&#xff0c;我們將通過使用 WPF (Windows Presentation Foundation) 和 XAML (Extensible Application Markup Language) 創建一個簡單的“臺式風扇”界面。我們將使用 XAML 繪制風扇的外觀&#xff0c;包含風扇葉片、風扇框架、支架和按鈕等元素&#xff0c;并通過…

VPet虛擬桌寵,一款桌寵軟件,支持各種互動投喂等. 開源免費并且支持創意工坊

&#x1f4cc; 大家好&#xff0c;我是智界工具庫&#xff0c;每天分享好用實用且智能的開源項目&#xff0c;以及在JAVA語言開發中遇到的問題&#xff0c;如果本篇文章對您有所幫助&#xff0c;請幫我點個小贊小收藏小關注吧&#xff0c;謝謝喲&#xff01;&#x1f618; 工具…

HTTP Digest 認證:原理剖析與服務端實現詳解

HTTP Digest 認證&#xff1a;原理剖析與服務端實現詳解 HTTP 協議中的 Digest 認證&#xff08;摘要認證&#xff09;是一種比 Basic 認證更安全的身份驗證機制&#xff0c;其核心設計是避免密碼明文傳輸&#xff0c;并通過動態隨機數&#xff08;Nonce&#xff09;防范重放攻…

PDF 表單按鈕動態邊框效果

問題描述 用戶在 Acrobat X 中創建 PDF 表單時遇到一個需求&#xff1a;表單以網格形式列出多個選項&#xff0c;當點擊某個選項時&#xff0c;需要在選項周圍顯示邊框&#xff08;圓形或方形&#xff09;&#xff0c;再次點擊時邊框消失。 試過的解決方案 在文本上方放置透…

部署Gitlab-CE with Docker私有云環境

應用環境 Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-139-generic x86_64) Docker version 28.1.1, build 4eba377 文章目錄 拉取容器鏡像生成Run腳本參數解讀實例腳本環境配置管理員密碼遺忘服務郵箱配置郵件測試 運維問題集錦(1) 端口映射關系(2) 服務日志(3) 分支受保護 項目操作…

MyBatis 的動態 SQL 特性來實現有值字段才進行插入或更新

MyBatis 動態 SQL 解決方案 <!-- 動態INSERT語句 --> <insert id"addDailyFreezeTer" parameterType"com.linyang.pecker.pojo.DailyFreezeTerminalBean">INSERT INTO dailyfreezeter_info<trim prefix"(" suffix")" …

網絡原理與 TCP/IP 協議詳解

一、網絡通信的本質與基礎概念 1.1 什么是網絡通信&#xff1f; 網絡通信的本質是跨設備的數據交換&#xff0c;其核心目標是讓不同物理位置的設備能夠共享信息。這種交換需要解決三個核心問題&#xff1a; 如何定位設備&#xff1f; → IP地址如何找到具體服務&#xff1f;…