本篇文章給大家分享的是有關(guān)如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供青州企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為青州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
如需構(gòu)建實(shí)時(shí)數(shù)倉(cāng),對(duì)數(shù)據(jù)存儲(chǔ)層而言,還是存在一定難度這體現(xiàn)在云原生架構(gòu)的兼容性和數(shù)據(jù)存儲(chǔ)組織的復(fù)雜度。
1、Pulsar 是一個(gè)云原生的架構(gòu)。Pulsar 內(nèi)部分成兩層,上層是無(wú)狀態(tài) Broker,下層是持久化的存儲(chǔ)層 Bookie 集群,而且 Pulsar 存儲(chǔ)是分片的,這種構(gòu)架可以避免擴(kuò)容時(shí)受限制。2、Pulsar 的分層存儲(chǔ)(tiered storage)無(wú)需用戶顯式遷移數(shù)據(jù),減少存儲(chǔ)成本并保持近似無(wú)限的存儲(chǔ)。3、Pulsar 提供內(nèi)置 Schema,可以保持服務(wù)器端數(shù)據(jù)的一致性,也能直接接受和發(fā)送類型數(shù)據(jù)。實(shí)時(shí)數(shù)倉(cāng)的架構(gòu)
在元數(shù)據(jù)服務(wù)層面,翻譯層將 Pulsar 的元數(shù)據(jù)以數(shù)據(jù)庫(kù)語(yǔ)義表達(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ù)倉(cāng)構(gòu)建。StreamNative 已經(jīng)開源了基于 Flink 1.9.0 和 Pulsar 2.4.0 的 Pular Flink Connector,實(shí)現(xiàn)了 exactly-once 語(yǔ)義的 Source 和 at-least-once 語(yǔ)義的 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ù)源
流處理過(guò)程中出現(xiàn)一些故障是無(wú)法避免的,F(xiàn)link 借助 checkpoint 機(jī)制將 Task 從 故障中恢復(fù)。Pulsar broker 默認(rèn)會(huì)刪除所有被確認(rèn)的消息,但在流處理的執(zhí)行期,我們無(wú)法得知作業(yè)何時(shí)會(huì)出錯(cuò),因此不能在讀到消息后就直接確認(rèn)。通過(guò)維護(hù)一個(gè)作業(yè)級(jí)的訂閱,F(xiàn)link Pulsar Connector 在收到 Flink checkpoint 的完成通知后確認(rèn)消息,同時(shí)避免消息被過(guò)早刪除。? 結(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)
流處理作業(yè)是長(zhǎng)時(shí)間運(yùn)行的 ,在作業(yè)執(zhí)行期間,topic 可能被添加或刪除。因此,我們利用一個(gè)額外的監(jiān)控線程階段性檢查 topic 的增加或刪除,并為新增 topic 啟動(dòng)新的消費(fèi)線程。以上就是如何基于 Pulsar + Flink 構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁(yè)標(biāo)題:如何基于Pulsar+Flink構(gòu)建下一代實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)
網(wǎng)頁(yè)URL:
http://weahome.cn/article/jjspge.html