溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

StreamWorks構(gòu)建實時大數(shù)據(jù)處理平臺的方法

發(fā)布時間:2021-07-05 16:26:03 來源:億速云 閱讀:187 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“StreamWorks構(gòu)建實時大數(shù)據(jù)處理平臺的方法”,在日常操作中,相信很多人在StreamWorks構(gòu)建實時大數(shù)據(jù)處理平臺的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”StreamWorks構(gòu)建實時大數(shù)據(jù)處理平臺的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  數(shù)棧是云原生—站式數(shù)據(jù)中臺PaaS,我們在github和gitee上有一個有趣的開源項目:FlinkX,F(xiàn)linkX是一個基于Flink的批流統(tǒng)一的數(shù)據(jù)同步工具,既可以采集靜態(tài)的數(shù)據(jù),也可以采集實時變化的數(shù)據(jù),是全域、異構(gòu)、批流一體的數(shù)據(jù)同步引擎。大家喜歡的話請給我們點個star!star!star!

  github開源項目:https://github.com/DTStack/flinkx

  gitee開源項目:https://gitee.com/dtstack_dev_0/flinkx

  2020年春節(jié)期間,一場突如其來的疫情在全國蔓延開來,打破了大家原有的工作生活節(jié)奏。疫情期間,大家宅在家就能隨時看到實時的大數(shù)據(jù)疫情地圖,可以隨時刷到自己當前感興趣的抖音視頻,這一切背后依賴的最重要的技術(shù),就是實時大數(shù)據(jù)處理技術(shù)。

  現(xiàn)在疫情即將過去,國家提出要加快大數(shù)據(jù)中心等新型基礎(chǔ)設(shè)施建設(shè),實時大數(shù)據(jù)處理平臺建設(shè)成為企業(yè)數(shù)智化轉(zhuǎn)型過程中越來越重要的部分。

  一、什么是實時計算

  在大數(shù)據(jù)處理領(lǐng)域,通常根據(jù)數(shù)據(jù)的不同性質(zhì),將任務(wù)劃分為實時計算與離線計算,以溫度傳感器的場景舉例:假設(shè)某城市安裝了大量的溫度傳感器,每個傳感器每隔1min上傳一次采集到的溫度信息,由氣象中心統(tǒng)一匯總,每隔5分鐘更新一次各個地區(qū)的溫度,這些數(shù)據(jù)是一直源源不斷的產(chǎn)生的,且不會停止。實時計算就主要用于“數(shù)據(jù)源源不斷的產(chǎn)生,而且不會停止,需要以最小的延遲獲得計算結(jié)果”的場景,這種最小的延遲通常為秒級或分鐘級。

  為了滿足這種數(shù)據(jù)量很大,而且實時性要求又非常高的場景,通常會采用實時計算技術(shù),實時計算的“數(shù)據(jù)源源不斷”的特定決定了其數(shù)據(jù)處理方式與離線是截然不同的。

  Figure 1 實時計算和離線計算的區(qū)別

  離線計算的批量、高延時、主動發(fā)起的計算特點不同,實時計算是一種持續(xù)、低延時、事件觸發(fā)的計算任務(wù)。離線計算需要先裝載數(shù)據(jù),然后提交離線任務(wù),最后任務(wù)計算返回結(jié)果;實時計算首先要提交流式任務(wù),然后等實時流數(shù)據(jù)接入,然后計算出實時結(jié)果流。

  Figure 2 實時計算和離線計算的區(qū)別(形象圖)

  形象點可以理解為離線計算是開著船去湖里(數(shù)據(jù)庫)打漁,實時計算為在河流(數(shù)據(jù)流)上建立大壩發(fā)電。進一步發(fā)散,湖泊的形成依賴河流,河流確定上下邊界就是湖泊;其實,離線計算可以理解為實時計算的一種特例。

  二、實時計算能解決的問題

  Figure 3 實時計算能解決的問題

  從技術(shù)領(lǐng)域來看,實時計算主要用于以下場景:

  基于Data Pipline的實時數(shù)據(jù)ETL:目的是實時地把數(shù)據(jù)從A點傳輸?shù)紹點。在傳輸?shù)倪^程中可能添加數(shù)據(jù)清洗和集成的工作,例如實時構(gòu)建搜索系統(tǒng)的索引、實時數(shù)倉中的ETL過程等。

  基于Data Analysis的實時數(shù)據(jù)分析:根據(jù)業(yè)務(wù)目標,從原始數(shù)據(jù)中抽取對應(yīng)信息并整合的過程。例如,查看每天銷售額排行前10的商品、倉庫平均周轉(zhuǎn)時間、網(wǎng)頁平均點擊率、實時推送打開率等。實時數(shù)據(jù)分析則是上述過程的實時化,通常在終端體現(xiàn)為實時報表或?qū)崟r大屏。

  基于Data Driven的事件驅(qū)動應(yīng)用:對一系列訂閱事件進行處理或作出響應(yīng)的系統(tǒng)。事件驅(qū)動應(yīng)用通常需要依賴內(nèi)部狀態(tài),例如點擊欺詐檢測、風控系統(tǒng)、運維異常檢測系統(tǒng)等。當用戶的行為觸發(fā)某些風險控制點時,系統(tǒng)會捕獲這個事件,并根據(jù)用戶當前和之前的行為進行分析,決定是否對用戶進行風險控制。

  三、實時開發(fā)的全鏈路流程

  Figure 4 實時開發(fā)的全鏈路流程

  實時采集——使用流式數(shù)據(jù)采集工具將數(shù)據(jù)流式且實時地采集并傳輸?shù)酱髷?shù)據(jù)消息存儲(kafka等),流式數(shù)據(jù)存儲作為實時計算的上游,提供源源不斷的數(shù)據(jù)流去觸發(fā)流式計算作業(yè)的運行。流數(shù)據(jù)作為實時計算的觸發(fā)源驅(qū)動實時計算運行。因此,一個實時計算作業(yè)必須至少使用一個流數(shù)據(jù)作為源。每一條進入的流數(shù)據(jù)將直接觸發(fā)實時計算的一次流式計算處理。數(shù)據(jù)在實時計算系統(tǒng)中處理分析后隨機寫到下游數(shù)據(jù)存儲,下游數(shù)據(jù)庫一般與業(yè)務(wù)相關(guān),可以用來做實時報表、實時大屏等數(shù)據(jù)消費。

  四、實時采集---全鏈路實時開發(fā)平臺的關(guān)鍵

  整個全鏈路的實時開發(fā)中,實時采集是實時計算的上游。對于很對企業(yè)而言,本身已經(jīng)有數(shù)據(jù)存儲系統(tǒng),但是很大一部分都是離線的關(guān)系型數(shù)據(jù)庫。如何將這些離線的關(guān)系型數(shù)據(jù)庫的實時增量數(shù)據(jù),提供給實時計算去分析,是一個亟需解決的環(huán)節(jié)。如下圖所示,是袋鼠云實時數(shù)據(jù)采集工具的功能架構(gòu)。

  Figure 5 實時數(shù)據(jù)采集工具FlinkX數(shù)據(jù)流程

  袋鼠云實時數(shù)據(jù)采集作為StreamWorks平臺的一個模塊,有以下功能特點。

  FlinkX支持批量數(shù)據(jù)抽取,同時支持實時捕捉MySQL、Oracle、SQLServer等變化數(shù)據(jù),實現(xiàn)批流統(tǒng)一采集。

  底層基于Flink分布式架構(gòu),支持大容量、高并發(fā)同步,相比單點同步性能更好,穩(wěn)定性更高。

  支持直接讀取數(shù)據(jù)庫Binlog的方式實時同步,也支持間隔輪詢方式實時同步。

  支持斷點續(xù)傳和臟數(shù)據(jù)記錄,實時數(shù)據(jù)采集的metric曲線展示。

  五、StreamWorks實時開發(fā)平臺介紹

  袋鼠云實時開發(fā)平臺(StreamWorks)基于 Apache Flink 構(gòu)建的云原生一站式大數(shù)據(jù)流式計算平臺,涵蓋從實時數(shù)據(jù)采集到實時數(shù)據(jù)ETL的全鏈路流程。亞秒級別的處理延時, Datastream API 作業(yè)開發(fā),與已有大數(shù)據(jù)組件兼容,幫助企業(yè)實時數(shù)據(jù)智能化轉(zhuǎn)型,助力新型基礎(chǔ)設(shè)施建設(shè)。

  在以往的數(shù)據(jù)開發(fā)技術(shù)棧中,SQL語言能解決大部分業(yè)務(wù)場景的問題。StreamWorks的核心功能是主打以SQL語義的流式數(shù)據(jù)分析能力(FlinkStreamSQL),降低開發(fā)門檻。提供Exactly-Once的處理語義保證,保證業(yè)務(wù)精確一致。

  Figure 6 StreamWorks功能架構(gòu)

  如上圖所示,StreamWorks包含如下幾個模塊:

  實時采集:支持MySQL、SQLServer、Oracle、PolarDB、Kafka、EMQ等數(shù)據(jù)源實時數(shù)據(jù)采集,通過速率和并發(fā)數(shù)控制可幫助用戶更準確的控制采集過程。

  數(shù)據(jù)開發(fā):支持FlinkSQL、Flink任務(wù)類型,F(xiàn)linkSQL作業(yè)提供可視化存儲配置、作業(yè)開發(fā)、語法檢查等功能;Flink任務(wù)支持上傳jar包的方式運行實時開發(fā)作業(yè)。

  任務(wù)運維:任務(wù)運行情況監(jiān)控,數(shù)據(jù)曲線、運行日志、數(shù)據(jù)延時、CkeckPoint、Failover、屬性參數(shù)、告警配置等功能。

  項目管理: 用戶管理、角色管理、項目整體配置、項目成員管理等。

  六、StreamWorks實時大數(shù)據(jù)開發(fā)平臺的優(yōu)勢

  Figure 7 StreamWorks平臺層級

  如上圖所示,StreamWorks實時大數(shù)據(jù)開發(fā)平臺基于Apache Flink計算引擎,做了一層SQL化的封裝,最上層有一個在線開發(fā)的IDE平臺。平臺有以下幾個優(yōu)勢點:

  簡單易用: 提供在線IDE,定制化適配FlinkSQL的開發(fā)工具!

  可視化DDL:提供可視化建表工具,配置參數(shù)即可完成DDL!

  內(nèi)置函數(shù):提供豐富的FlinkSQL內(nèi)置函數(shù),簡化開發(fā)工作!

  高效運維: 提供多達幾十個運行指標,解決開源運維難題!

  實時采集:提供實時采集工具,支撐全鏈路實時開發(fā)平臺!

  FlinkX:自研的批流一體的數(shù)據(jù)采集工具,已經(jīng)開源!

  Figure 8 傳統(tǒng)開發(fā)模式 VS StreamWorks開發(fā)模式

  七、十四行代碼搞定實時業(yè)務(wù)開發(fā)

  講了這么多,我們的產(chǎn)品到底如何方便大家進行實時業(yè)務(wù)邏輯開發(fā)的,我們還是拿最常見的網(wǎng)站流量分析的例子說明下。比如,某網(wǎng)站需要對訪問來源進行分析:

  如下圖所示,從日志服務(wù)讀取該站點訪問日志,解析日志中的來源并檢查來源是否在感興趣的網(wǎng)站列表中(類似來源網(wǎng)站的白名單,保存在MySQL中),統(tǒng)計來自各個網(wǎng)站的流量PV,最終結(jié)果寫出到MySQL。

  Figure 9 業(yè)務(wù)邏輯流程圖

  用StreamSQL代碼實現(xiàn)的話非常簡單,只需要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構(gòu)建實時推薦系統(tǒng)

  一般的推薦系統(tǒng)都是基于標簽來實現(xiàn)的,基于標簽的推薦其實應(yīng)用很普遍,比如頭條,比如抖音,都用到了大量的標簽,這樣的推薦系統(tǒng)有很多優(yōu)點,比如實現(xiàn)簡單、可解釋性好等。如何通過標簽來實現(xiàn)實時商品或者內(nèi)容的推薦呢?

  首先一個新的用戶在注冊app賬號的時候會填寫一些比較固定的數(shù)據(jù),比如年齡、職業(yè)等信息,這些信息可以通過離線計算分析出長期興趣標簽的結(jié)果,存儲到長期興趣標簽庫。用戶在最近感興趣的內(nèi)容(比如最近10分鐘內(nèi)關(guān)注的信息點)可以通過實時計算分析出短期的興趣標簽結(jié)果,然后再通過實時開發(fā)的數(shù)據(jù)流關(guān)聯(lián)維表的功能,把短期的感興趣標簽和長期興趣標簽庫做關(guān)聯(lián),最終生成新的推薦內(nèi)容給到客戶端,形成一個用戶數(shù)據(jù)流的閉環(huán),從而實現(xiàn)一個簡單的實時推薦系統(tǒng)。具體流程如下圖所示。

  Figure 10 基于StreamWorks構(gòu)建實時推薦系統(tǒng)

  九、結(jié)語——把未來變成現(xiàn)在

  疫情即將過去,生活還要繼續(xù)。隨著“新基建”建設(shè)不斷深化下去,越來越多的實時化場景會出現(xiàn)在我們生活中。袋鼠云作為新基建解決方案供應(yīng)商,我們的口號就是把未來變成現(xiàn)在,在未來會賦能更多的企業(yè)實時化轉(zhuǎn)型。鄭州人流醫(yī)院哪家好http://www.lnljyy.com/

到此,關(guān)于“StreamWorks構(gòu)建實時大數(shù)據(jù)處理平臺的方法”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI