您好,登錄后才能下訂單哦!
這篇文章主要介紹“StreamWorks構建實時大數據處理平臺的方法”,在日常操作中,相信很多人在StreamWorks構建實時大數據處理平臺的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”StreamWorks構建實時大數據處理平臺的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
數棧是云原生—站式數據中臺PaaS,我們在github和gitee上有一個有趣的開源項目:FlinkX,FlinkX是一個基于Flink的批流統一的數據同步工具,既可以采集靜態的數據,也可以采集實時變化的數據,是全域、異構、批流一體的數據同步引擎。大家喜歡的話請給我們點個star!star!star!
github開源項目:https://github.com/DTStack/flinkx
gitee開源項目:https://gitee.com/dtstack_dev_0/flinkx
2020年春節期間,一場突如其來的疫情在全國蔓延開來,打破了大家原有的工作生活節奏。疫情期間,大家宅在家就能隨時看到實時的大數據疫情地圖,可以隨時刷到自己當前感興趣的抖音視頻,這一切背后依賴的最重要的技術,就是實時大數據處理技術。
現在疫情即將過去,國家提出要加快大數據中心等新型基礎設施建設,實時大數據處理平臺建設成為企業數智化轉型過程中越來越重要的部分。
一、什么是實時計算
在大數據處理領域,通常根據數據的不同性質,將任務劃分為實時計算與離線計算,以溫度傳感器的場景舉例:假設某城市安裝了大量的溫度傳感器,每個傳感器每隔1min上傳一次采集到的溫度信息,由氣象中心統一匯總,每隔5分鐘更新一次各個地區的溫度,這些數據是一直源源不斷的產生的,且不會停止。實時計算就主要用于“數據源源不斷的產生,而且不會停止,需要以最小的延遲獲得計算結果”的場景,這種最小的延遲通常為秒級或分鐘級。
為了滿足這種數據量很大,而且實時性要求又非常高的場景,通常會采用實時計算技術,實時計算的“數據源源不斷”的特定決定了其數據處理方式與離線是截然不同的。
Figure 1 實時計算和離線計算的區別
離線計算的批量、高延時、主動發起的計算特點不同,實時計算是一種持續、低延時、事件觸發的計算任務。離線計算需要先裝載數據,然后提交離線任務,最后任務計算返回結果;實時計算首先要提交流式任務,然后等實時流數據接入,然后計算出實時結果流。
Figure 2 實時計算和離線計算的區別(形象圖)
形象點可以理解為離線計算是開著船去湖里(數據庫)打漁,實時計算為在河流(數據流)上建立大壩發電。進一步發散,湖泊的形成依賴河流,河流確定上下邊界就是湖泊;其實,離線計算可以理解為實時計算的一種特例。
二、實時計算能解決的問題
Figure 3 實時計算能解決的問題
從技術領域來看,實時計算主要用于以下場景:
基于Data Pipline的實時數據ETL:目的是實時地把數據從A點傳輸到B點。在傳輸的過程中可能添加數據清洗和集成的工作,例如實時構建搜索系統的索引、實時數倉中的ETL過程等。
基于Data Analysis的實時數據分析:根據業務目標,從原始數據中抽取對應信息并整合的過程。例如,查看每天銷售額排行前10的商品、倉庫平均周轉時間、網頁平均點擊率、實時推送打開率等。實時數據分析則是上述過程的實時化,通常在終端體現為實時報表或實時大屏。
基于Data Driven的事件驅動應用:對一系列訂閱事件進行處理或作出響應的系統。事件驅動應用通常需要依賴內部狀態,例如點擊欺詐檢測、風控系統、運維異常檢測系統等。當用戶的行為觸發某些風險控制點時,系統會捕獲這個事件,并根據用戶當前和之前的行為進行分析,決定是否對用戶進行風險控制。
三、實時開發的全鏈路流程
Figure 4 實時開發的全鏈路流程
實時采集——使用流式數據采集工具將數據流式且實時地采集并傳輸到大數據消息存儲(kafka等),流式數據存儲作為實時計算的上游,提供源源不斷的數據流去觸發流式計算作業的運行。流數據作為實時計算的觸發源驅動實時計算運行。因此,一個實時計算作業必須至少使用一個流數據作為源。每一條進入的流數據將直接觸發實時計算的一次流式計算處理。數據在實時計算系統中處理分析后隨機寫到下游數據存儲,下游數據庫一般與業務相關,可以用來做實時報表、實時大屏等數據消費。
四、實時采集---全鏈路實時開發平臺的關鍵
整個全鏈路的實時開發中,實時采集是實時計算的上游。對于很對企業而言,本身已經有數據存儲系統,但是很大一部分都是離線的關系型數據庫。如何將這些離線的關系型數據庫的實時增量數據,提供給實時計算去分析,是一個亟需解決的環節。如下圖所示,是袋鼠云實時數據采集工具的功能架構。
Figure 5 實時數據采集工具FlinkX數據流程
袋鼠云實時數據采集作為StreamWorks平臺的一個模塊,有以下功能特點。
FlinkX支持批量數據抽取,同時支持實時捕捉MySQL、Oracle、SQLServer等變化數據,實現批流統一采集。
底層基于Flink分布式架構,支持大容量、高并發同步,相比單點同步性能更好,穩定性更高。
支持直接讀取數據庫Binlog的方式實時同步,也支持間隔輪詢方式實時同步。
支持斷點續傳和臟數據記錄,實時數據采集的metric曲線展示。
五、StreamWorks實時開發平臺介紹
袋鼠云實時開發平臺(StreamWorks)基于 Apache Flink 構建的云原生一站式大數據流式計算平臺,涵蓋從實時數據采集到實時數據ETL的全鏈路流程。亞秒級別的處理延時, Datastream API 作業開發,與已有大數據組件兼容,幫助企業實時數據智能化轉型,助力新型基礎設施建設。
在以往的數據開發技術棧中,SQL語言能解決大部分業務場景的問題。StreamWorks的核心功能是主打以SQL語義的流式數據分析能力(FlinkStreamSQL),降低開發門檻。提供Exactly-Once的處理語義保證,保證業務精確一致。
Figure 6 StreamWorks功能架構
如上圖所示,StreamWorks包含如下幾個模塊:
實時采集:支持MySQL、SQLServer、Oracle、PolarDB、Kafka、EMQ等數據源實時數據采集,通過速率和并發數控制可幫助用戶更準確的控制采集過程。
數據開發:支持FlinkSQL、Flink任務類型,FlinkSQL作業提供可視化存儲配置、作業開發、語法檢查等功能;Flink任務支持上傳jar包的方式運行實時開發作業。
任務運維:任務運行情況監控,數據曲線、運行日志、數據延時、CkeckPoint、Failover、屬性參數、告警配置等功能。
項目管理: 用戶管理、角色管理、項目整體配置、項目成員管理等。
六、StreamWorks實時大數據開發平臺的優勢
Figure 7 StreamWorks平臺層級
如上圖所示,StreamWorks實時大數據開發平臺基于Apache Flink計算引擎,做了一層SQL化的封裝,最上層有一個在線開發的IDE平臺。平臺有以下幾個優勢點:
簡單易用: 提供在線IDE,定制化適配FlinkSQL的開發工具!
可視化DDL:提供可視化建表工具,配置參數即可完成DDL!
內置函數:提供豐富的FlinkSQL內置函數,簡化開發工作!
高效運維: 提供多達幾十個運行指標,解決開源運維難題!
實時采集:提供實時采集工具,支撐全鏈路實時開發平臺!
FlinkX:自研的批流一體的數據采集工具,已經開源!
Figure 8 傳統開發模式 VS StreamWorks開發模式
七、十四行代碼搞定實時業務開發
講了這么多,我們的產品到底如何方便大家進行實時業務邏輯開發的,我們還是拿最常見的網站流量分析的例子說明下。比如,某網站需要對訪問來源進行分析:
如下圖所示,從日志服務讀取該站點訪問日志,解析日志中的來源并檢查來源是否在感興趣的網站列表中(類似來源網站的白名單,保存在MySQL中),統計來自各個網站的流量PV,最終結果寫出到MySQL。
Figure 9 業務邏輯流程圖
用StreamSQL代碼實現的話非常簡單,只需要14行偽代碼即可搞定。
CREATE TABLE
log_source(dt STRING, …)
WITH (type=kafka);
CREATE TABLE
mysql_dim(url STRING, …, PRIMARY KEY(url))
WITH (type=mysql);
CREATE TABLE
mysql_result(url STRING, …, PRIMARY KEY(url))
WITH (type=mysql);
INSERT INTO mysql_result
SELECT
l.url, count(*) as pv …
FROM log_source l JOIN mysql_dim d ON l.url = d.url
group by l.url
復制八、基于StreamWorks構建實時推薦系統
一般的推薦系統都是基于標簽來實現的,基于標簽的推薦其實應用很普遍,比如頭條,比如抖音,都用到了大量的標簽,這樣的推薦系統有很多優點,比如實現簡單、可解釋性好等。如何通過標簽來實現實時商品或者內容的推薦呢?
首先一個新的用戶在注冊app賬號的時候會填寫一些比較固定的數據,比如年齡、職業等信息,這些信息可以通過離線計算分析出長期興趣標簽的結果,存儲到長期興趣標簽庫。用戶在最近感興趣的內容(比如最近10分鐘內關注的信息點)可以通過實時計算分析出短期的興趣標簽結果,然后再通過實時開發的數據流關聯維表的功能,把短期的感興趣標簽和長期興趣標簽庫做關聯,最終生成新的推薦內容給到客戶端,形成一個用戶數據流的閉環,從而實現一個簡單的實時推薦系統。具體流程如下圖所示。
Figure 10 基于StreamWorks構建實時推薦系統
九、結語——把未來變成現在
疫情即將過去,生活還要繼續。隨著“新基建”建設不斷深化下去,越來越多的實時化場景會出現在我們生活中。袋鼠云作為新基建解決方案供應商,我們的口號就是把未來變成現在,在未來會賦能更多的企業實時化轉型。鄭州人流醫院哪家好http://www.lnljyy.com/
到此,關于“StreamWorks構建實時大數據處理平臺的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。