溫馨提示×

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

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

如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫

發(fā)布時(shí)間:2021-12-22 14:53:56 來源:億速云 閱讀:225 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

如需構(gòu)建實(shí)時(shí)數(shù)倉,對(duì)數(shù)據(jù)存儲(chǔ)層而言,還是存在一定難度這體現(xiàn)在云原生架構(gòu)的兼容性和數(shù)據(jù)存儲(chǔ)組織的復(fù)雜度。

如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫

 
如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫
 
1、Pulsar 是一個(gè)云原生的架構(gòu)。Pulsar 內(nèi)部分成兩層,上層是無狀態(tài) Broker,下層是持久化的存儲(chǔ)層 Bookie 集群,而且 Pulsar 存儲(chǔ)是分片的,這種構(gòu)架可以避免擴(kuò)容時(shí)受限制。
2、Pulsar 的分層存儲(chǔ)(tiered storage)無需用戶顯式遷移數(shù)據(jù),減少存儲(chǔ)成本并保持近似無限的存儲(chǔ)。
3、Pulsar 提供內(nèi)置 Schema,可以保持服務(wù)器端數(shù)據(jù)的一致性,也能直接接受和發(fā)送類型數(shù)據(jù)。

如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫

如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫

實(shí)時(shí)數(shù)倉的架構(gòu)

在元數(shù)據(jù)服務(wù)層面,翻譯層將 Pulsar 的元數(shù)據(jù)以數(shù)據(jù)庫語義表達(dá),同時(shí)提供對(duì) Pulsar 元數(shù)據(jù)的查詢和修改;而在基本映射層面,實(shí)現(xiàn) Tenant/namespace → Database、Topic → Table、Topic Schema → Table Schema 的映射狀態(tài)。
加上靈活的數(shù)據(jù)讀取模式,Segment Read、Stream Read 和 Sub-Stream Read,實(shí)現(xiàn)最終的數(shù)倉構(gòu)建。
StreamNative 已經(jīng)開源了基于 Flink 1.9.0 和 Pulsar 2.4.0 的 Pular Flink Connector,實(shí)現(xiàn)了 exactly-once 語義的 Source 和 at-least-once 語義的 Sink。
同時(shí),基于 Pulsar 的內(nèi)置 Schema 支持,提供了 Topic 內(nèi)消息的自動(dòng)序列化、反序列化。Pulsar Flink Connector 從本質(zhì)上也是在利用 Pulsar Client API 操作 Pulsar,一些 connector 實(shí)現(xiàn)的相關(guān)思考可能同時(shí)對(duì)大家使用 Pulsar 有所幫助。

? 持久化、可重放的數(shù)據(jù)源


如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫
 
流處理過程中出現(xiàn)一些故障是無法避免的,F(xiàn)link 借助 checkpoint 機(jī)制將 Task 從 故障中恢復(fù)。Pulsar broker 默認(rèn)會(huì)刪除所有被確認(rèn)的消息,但在流處理的執(zhí)行期,我們無法得知作業(yè)何時(shí)會(huì)出錯(cuò),因此不能在讀到消息后就直接確認(rèn)。
通過維護(hù)一個(gè)作業(yè)級(jí)的訂閱,F(xiàn)link Pulsar Connector 在收到 Flink checkpoint 的完成通知后確認(rèn)消息,同時(shí)避免消息被過早刪除。

結(jié)構(gòu)化數(shù)據(jù)存取

將 Pulsar topic 看作是一張有結(jié)構(gòu)的表,在任務(wù)調(diào)度期獲取表 Schema 定義。
Pulsar Flink Connector 支持 avro/json/protobuf 的消息轉(zhuǎn)換,同時(shí)將消息元數(shù)據(jù)轉(zhuǎn)化為表的內(nèi)部列。

Topic 和 Partition 發(fā)現(xiàn)


如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫
 
流處理作業(yè)是長時(shí)間運(yùn)行的 ,在作業(yè)執(zhí)行期間,topic 可能被添加或刪除。因此,我們利用一個(gè)額外的監(jiān)控線程階段性檢查 topic 的增加或刪除,并為新增 topic 啟動(dòng)新的消費(fèi)線程。

以上就是如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉庫,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

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

AI