Flink 使用場景

Apache Flink 功能強大,支持開發和運行多種不同種類的應用程序。它的主要特性包括:批流一體化、精密的狀態管理、事件時間支持以及精確一次的狀態一致性保障等。Flink 不僅可以運行在包括 YARN、 Mesos、K8s 在內的多種資源管理框架上,還支持在裸機集群上獨立部署。在啟用高可用選項的情況下,它不存在單點失效問題。事實證明,Flink 已經可以擴展到數千核心,其狀態可以達到 TB 級別,且仍能保持高吞吐、低延遲的特性。世界各地有很多要求嚴苛的流處理應用都運行在 Flink 之上。
[點擊并拖拽以移動] ?

事件驅動型應用

什么是事件驅動型應用?
事件驅動型應用是一類具有狀態的應用,它從一個或多個事件流提取數據,并根據到來的事件觸發計算、狀態更新或其他外部動作。事件驅動型應用是在計算存儲分離的傳統應用基礎上進化而來。在傳統架構中,應用需要讀寫遠程事務型數據庫。

相反,事件驅動型應用是基于狀態化流處理來完成。在該設計中,數據和計算不會分離,應用只需訪問本地(內存或磁盤)即可獲取數據。系統容錯性的實現依賴于定期向遠程持久化存儲寫入 checkpoint。下圖描述了傳統應用和事件驅動型應用架構的區別。
[點擊并拖拽以移動] ?

事件驅動型應用的優勢?

事件驅動型應用無須查詢遠程數據庫,本地數據訪問使得它具有更高的吞吐和更低的延遲。而由于定期向遠程持久化存儲的 checkpoint 工作可以異步、增量式完成,因此對于正常事件處理的影響甚微。事件驅動型應用的優勢不僅限于本地數據訪問。傳統分層架構下,通常多個應用會共享同一個數據庫,因而任何對數據庫自身的更改(例如:由應用更新或服務擴容導致數據布局發生改變)都需要謹慎協調。反觀事件驅動型應用,由于只需考慮自身數據,因此在更改數據表示或服務擴容時所需的協調工作將大大減少。

Flink 如何支持事件驅動型應用?

事件驅動型應用會受制于底層流處理系統對時間和狀態的把控能力,Flink 諸多優秀特質都是圍繞這些方面來設計的。它提供了一系列豐富的狀態操作原語,允許以精確一次的一致性語義合并海量規模(TB 級別)的狀態數據。此外,Flink 還支持事件時間和自由度極高的定制化窗口邏輯,而且它內置的 ProcessFunction支持細粒度時間控制,方便實現一些高級業務邏輯。同時,Flink 還擁有一個復雜事件處理(CEP)類庫,可以用來檢測數據流中的模式。

Flink 中針對事件驅動應用的明星特性當屬 savepoint。Savepoint 是一個一致性的狀態映像,它可以用來初始化任意狀態兼容的應用。在完成一次 savepoint 后,即可放心對應用升級或擴容,還可以啟動多個版本的應用來完成 A/B 測試。

典型的事件驅動型應用實例

反欺詐
異常檢測
基于規則的報警
業務流程監控
(社交網絡)Web 應用

什么是數據分析應用?

數據分析任務需要從原始數據中提取有價值的信息和指標。傳統的分析方式通常是利用批查詢,或將事件記錄下來并基于此有限數據集構建應用來完成。為了得到最新數據的分析結果,必須先將它們加入分析數據集并重新執行查詢或運行應用,隨后將結果寫入存儲系統或生成報告。

借助一些先進的流處理引擎,還可以實時地進行數據分析。和傳統模式下讀取有限數據集不同,流式查詢或應用會接入實時事件流,并隨著事件消費持續產生和更新結果。這些結果數據可能會寫入外部數據庫系統或以內部狀態的形式維護。儀表展示應用可以相應地從外部數據庫讀取數據或直接查詢應用的內部狀態。如下圖所示,Apache Flink 同時支持流式及批量分析應用。

[點擊并拖拽以移動] ?

流式分析應用的優勢?

和批量分析相比,由于流式分析省掉了周期性的數據導入和查詢過程,因此從事件中獲取指標的延遲更低。不僅如此,批量查詢必須處理那些由定期導入和輸入有界性導致的人工數據邊界,而流式查詢則無須考慮該問題。

另一方面,流式分析會簡化應用抽象。批量查詢的流水線通常由多個獨立部件組成,需要周期性地調度提取數據和執行查詢。如此復雜的流水線操作起來并不容易,一旦某個組件出錯將會影響流水線的后續步驟。而流式分析應用整體運行在 Flink 之類的高端流處理系統之上,涵蓋了從數據接入到連續結果計算的所有步驟,因此可以依賴底層引擎提供的故障恢復機制。

Flink 如何支持數據分析類應用?

Flink 為持續流式分析和批量分析都提供了良好的支持。具體而言,它內置了一個符合 ANSI 標準的 SQL 接口,將批、流查詢的語義統一起來。無論是在記錄事件的靜態數據集上還是實時事件流上,相同 SQL 查詢都會得到一致的結果。同時 Flink 還支持豐富的用戶自定義函數,允許在 SQL 中執行定制化代碼。如果還需進一步定制邏輯,可以利用 Flink DataStream API 和 DataSet API 進行更低層次的控制。此外,Flink 的 Gelly 庫為基于批量數據集的大規模高性能圖分析提供了算法和構建模塊支持。

什么是數據管道?

提取-轉換-加載(ETL)是一種在存儲系統之間進行數據轉換和遷移的常用方法。ETL 作業通常會周期性地觸發,將數據從事務型數據庫拷貝到分析型數據庫或數據倉庫。

數據管道和 ETL 作業的用途相似,都可以轉換、豐富數據,并將其從某個存儲系統移動到另一個。但數據管道是以持續流模式運行,而非周期性觸發。因此它支持從一個不斷生成數據的源頭讀取記錄,并將它們以低延遲移動到終點。例如:數據管道可以用來監控文件系統目錄中的新文件,并將其數據寫入事件日志;另一個應用可能會將事件流物化到數據庫或增量構建和優化查詢索引。下圖描述了周期性 ETL 作業和持續數據管道的差異。

[點擊并拖拽以移動] ?

典型的數據分析應用實例

電信網絡質量監控
移動應用中的產品更新及實驗評估分析
消費者技術中的實時數據即席分析
大規模圖分析

數據管道的優勢?

和周期性 ETL 作業相比,持續數據管道可以明顯降低將數據移動到目的端的延遲。此外,由于它能夠持續消費和發送數據,因此用途更廣,支持用例更多。

Flink 如何支持數據管道應用?

很多常見的數據轉換和增強操作可以利用 Flink 的 SQL 接口(或 Table API)及用戶自定義函數解決。如果數據管道有更高級的需求,可以選擇更通用的 DataStream API 來實現。Flink 為多種數據存儲系統(如:Kafka、Kinesis、Elasticsearch、JDBC數據庫系統等)內置了連接器。同時它還提供了文件系統的連續型數據源及數據匯,可用來監控目錄變化和以時間分區的方式寫入文件。

典型的數據管道應用實例

    [電子商務中的實時查詢索引構建](https://www.ververica.com/blog/blink-flink-alibaba-search)[電子商務中的持續 ETL](https://jobs.zalando.com/tech/blog/apache-showdown-flink-vs.-spark/)

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

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

相關文章

工業IC是什么

工業IC 電子元器件百科 文章目錄 工業IC前言一、工業IC是什么二、工業IC的類別三、工業IC應用實例四、工業IC作用原理總結前言 工業IC包括微控制器(MCU)、采樣芯片、模擬-數字轉換器(ADC)、電源管理芯片、驅動芯片等。它們被廣泛應用于各個行業的工業控制和自動化系統中,…

2023年泰國加密市場概覽

一、泰國區塊鏈及加密生態概覽 1.加密貨幣數據分析平臺訪問人數火爆 2023年CoinMarketCap網站的平均月訪問量為64.8萬人次,占全國總人口的0.94%,泰國的人均訪問量比美國高出0.21%。 1.2泰國加密資產交易量可觀 根據CoinGecko上泰國領先的數字資產交易所…

vue3遞歸組件---樹形組件

第一種方式&#xff0c;直接自己調用自己 Tree.vue <template><div class"tree"><div v-for"(item, index) in data" :key"item.name">每一層 {{ item.name }}<Tree v-if"item?.children?.length" :dataitem…

linux如何清空文件內容

在做系統運維工作時&#xff0c;有時會發現一個問題&#xff1a;某些存儲空間的使用率過高。換句話說就是空間快被堆滿了&#xff0c;需要釋放空間。大多數情況下&#xff0c;導致空間不足的罪魁禍首通常是一些log日志文件。對于某些特殊系統來說&#xff0c;日志文件還不能直接…

AGM離線下載器使用說明

AGM專用離線下載器示意圖&#xff1a; 供電方式&#xff1a; 通過 USB 接口給下載器供電&#xff0c;跳線 JP 斷開。如果客戶 PCB 的 JTAG 口不能提供 3.3V 電源&#xff0c;或僅需燒寫下載器&#xff0c;尚未連接用戶 PCB 時&#xff0c;采用此種方式供電。 或者&#xff1a…

Linux中的網絡時間服務器

本章主要介紹網絡時間的服務器 使用chrony配置時間服務器配置chrony客戶端服務器同步時間 1.1 時間同步的重要性 一些服務對時間要求非常嚴格&#xff0c;例如如圖所示的由三臺服務器搭建的ceph集群 這三臺服務器的時間必須保持一致&#xff0c;如果不一致&#xff0c;就會顯…

Django講課筆記01:初探Django框架

文章目錄 一、學習目標二、課程導入&#xff08;一&#xff09;課程簡介&#xff08;二&#xff09;課程目標&#xff08;三&#xff09;適用人群&#xff08;四&#xff09;教學方式&#xff08;五&#xff09;評估方式&#xff08;六&#xff09;參考教材 三、新課講授&#…

android項目實戰之編輯器集成

引言 項目需要用到編輯器&#xff0c;采用RichEditor&#xff0c;如下效果 實現 1. 引入庫2 implementation jp.wasabeef:richeditor-android:2.0.0 2. XML <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width&q…

LeetCode:2008. 出租車的最大盈利(dp C++)

目錄 2008. 出租車的最大盈利 題目描述&#xff1a; 實現代碼與解析&#xff1a; DP 二分&#xff08;兩種寫法&#xff09; 原理思路&#xff1a; 2008. 出租車的最大盈利 題目描述&#xff1a; 你駕駛出租車行駛在一條有 n 個地點的路上。這 n 個地點從近到遠編號為 1 …

如何使用 Wordpress?托管, 網站, 插件, 緩存

這是該系列教程的第一個教程&#xff0c;最終將在運行高性能 LEMP 堆棧的阿里云 ECS 實例上運行一個新的 WordPress 站點。 在本教程中&#xff0c;我們將創建一個運行 Ubuntu 16.04 的實例&#xff0c;然后通過創建超級用戶并禁用 root 登錄來保護服務器&#xff0c;最后配置…

持續集成交付CICD:使用Maven命令下載Nexus制品

目錄 一、實驗 1.Maven安裝 2.Nexus搭建公共組倉庫及Maven全局配置文件 3.使用Maven命令下載Nexus制品 一、實驗 1.Maven安裝 &#xff08;1&#xff09;CentOS環境安裝步驟 tar -xf apache-maven-3.8.6-bin.tar.gz #解壓 mv apache-maven-3.8.6 /usr/local/maven #移動…

如何進行更好的面試回復之緩存函數在項目中的性能優化?

緩存函數是一種提高函數性能的技術&#xff0c;在函數被調用時&#xff0c;會將計算結果緩存起來&#xff0c;以便在后續的調用中直接返回緩存的結果&#xff0c;從而減少了重復計算的時間。 緩存函數的實現通常包括兩個步驟&#xff1a; 判斷緩存是否存在&#xff1a;在函數被…

提取視頻光流成幀并寫入視頻中

修改一下配置文件就可以運行了 配置文件 config.py video_path xxxx/dataset/data/huaping/BXDQ05-花屏-1.mp4#要處理的視頻路徑 frame_path xxxx/dataset/frame#處理成幀之后保存的路徑 flow_path xxxx/dataset/flow#處理成光流之后保存的路徑 save_video_path xxxx/fe…

自動補全的 select antd react

自動補全的 select antd react 文檔&#xff1a;自動補全的 select antd react.note 鏈接&#xff1a;http://note.youdao.com/noteshare?idf5e4a93d2b9d6be8e459edd4eb86323b&sub19796E9BC04D4ABD9ACE325FDFF59B0E 添加鏈接描述 import React, { useState, useRef } from…

【1day】泛微e-office OA系統xml.php 文件 SORT_ID 參數 SQL 注入漏洞學習

注:該文章來自作者日常學習筆記,請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與作者無關。 目錄 一、漏洞描述 二、影響版本 三、資產測繪 四、漏洞復現

理解傳統模式與互聯網時代 消費行為模型 AIDMA , AISAS , SICAS

1 AIDMA與AISAS 消費行為模型&#xff0c;以及所誕生的IT崗位 1.1 傳統市場營銷消費行為模型 AIDMA模型&#xff1a;Attention&#xff08;吸引&#xff09;&#xff0c;Interest &#xff08;興趣&#xff09;&#xff0c;Desire&#xff08;欲望&#xff09; &#xff0c;Me…

LeetCode 76. 最小覆蓋子串 滑動窗口框架

雙指針的特殊應用&#xff1a;滑動窗口 代碼 題目鏈接&#xff1a;https://leetcode.cn/problems/minimum-window-substring/description/ 不說廢話&#xff0c;直接貼代碼&#xff1a; static string minWindow(string s, string t) {// need記錄需要匹配的字符串t中每個字…

? Mac IDEA使用并運行項目

? IDEA導入項目并運行 Mac IDEA使用 (1) 倉庫導入 通過獲取giett倉庫包的url&#xff0c;在idea中導入項目 在gitee里獲取項目的ur打開idea&#xff0c;點擊 File->new->Project from Version Control (2) 創建數據庫ry并導入數據腳本 &#xff08;3&#xff09;修改配…

華為配置Smart Link主備備份示例

定義 Smart Link&#xff0c;又叫做備份鏈路。一個Smart Link由兩個接口組成&#xff0c;其中一個接口作為另一個的備份。Smart Link常用于雙上行組網&#xff0c;提供可靠高效的備份和快速的切換機制。 Monitor Link是一種接口聯動方案&#xff0c;它通過監控設備的上行接口…

npm私有源構建項目下載依賴報錯

Jenkins構建項目報錯&#xff0c;依賴找不到 Error: Couldnt find any versions for "babel/helper-module-imports" that matches "^7.22.15"at MessageError.ExtendableBuiltin (/data1/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/…