基于Apache doris怎么構(gòu)建數(shù)據(jù)中臺(tái)(四)-數(shù)據(jù)接入系統(tǒng)

基于Apache doris怎么構(gòu)建數(shù)據(jù)中臺(tái)(四)-數(shù)據(jù)接入系統(tǒng)

上一次我們講解了數(shù)據(jù)資產(chǎn),元數(shù)據(jù)管理臊泌,血緣關(guān)系等妻怎,這次我們開始將數(shù)據(jù)接入箫锤,怎么實(shí)現(xiàn)快速的數(shù)據(jù)接入

在開發(fā)數(shù)據(jù)模型時(shí)逛钻,我們必須有一個(gè)統(tǒng)一的平臺(tái)僚焦,能夠像流水線一樣,把數(shù)據(jù)一步步加工成數(shù)據(jù)模型绣的。這其中涉及到數(shù)據(jù)萃取、數(shù)據(jù)聚合欲账、作業(yè)調(diào)度等屡江。

主要是為了實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的快速接入,零代碼實(shí)現(xiàn)赛不,數(shù)據(jù)分析人員只需要通過UI進(jìn)行簡單的配置惩嘉、提交任務(wù)即可完成數(shù)據(jù)的接入,并能實(shí)現(xiàn)對數(shù)據(jù)接入任務(wù)的管理及監(jiān)控踢故。

img

Mysql數(shù)據(jù)源數(shù)據(jù)接入

img

主要是為了完成針對Mysql數(shù)據(jù)的業(yè)務(wù)系統(tǒng)數(shù)據(jù)接入零代碼實(shí)現(xiàn)文黎,不需要開發(fā)人員接入,提供給數(shù)據(jù)分析人員使用殿较,目的是為了業(yè)務(wù)數(shù)據(jù)快速接入耸峭,無需編碼

數(shù)據(jù)接入系統(tǒng)我們通過自研的規(guī)則引擎,和接入任務(wù)整合淋纲,同時(shí)自動(dòng)化完成了數(shù)據(jù)接入的ETL工作劳闹,規(guī)則可以通過頁面進(jìn)行可視化配置,這塊我會(huì)在后面的質(zhì)量模塊介紹

  1. 通過UI界面添加數(shù)據(jù)接入任務(wù)的方式
  2. Mysql數(shù)據(jù)的采集是通過Canal 采集binlog完成
  3. 在界面上第一步是配置canal實(shí)例(canal實(shí)例的管理是通過cannal admin)洽瞬,除了kafka topic名稱需要手工輸入本涕,其他信息盡可能不要讓使用人員手工數(shù)據(jù)
  4. 第二步配置Flink Job任務(wù)信息,需要的kafka topic名稱來源于上一步伙窃,業(yè)務(wù)表和數(shù)倉表的對應(yīng)關(guān)系通過元數(shù)據(jù)選擇方式完成菩颖,避免手工輸入
  5. 第三步:提交任務(wù),這時(shí)候完成canal實(shí)例創(chuàng)建为障,運(yùn)行晦闰,F(xiàn)link job任務(wù)提交運(yùn)行
  6. 并在列表上監(jiān)控canal實(shí)例及Flink job運(yùn)行狀態(tài)的監(jiān)控

DataX 數(shù)據(jù)接入

要實(shí)現(xiàn)的內(nèi)容基本和Mysql binlog的同步一樣

只不過是Datax是為了實(shí)現(xiàn)非mysql數(shù)據(jù)的數(shù)據(jù)接入零代碼完成

數(shù)據(jù)API方式數(shù)據(jù)接入

傳統(tǒng)數(shù)據(jù)API方式的數(shù)據(jù)接入都需要進(jìn)行代碼開發(fā)對接才能完成,初步設(shè)想這塊通過通用的代碼生成器的方式實(shí)現(xiàn)針對常用API方式(WebService,RestFul API)零代碼接入

圖形化數(shù)據(jù)接入

我們目前支持Kafka鳍怨,Mysql鹅髓,datax數(shù)據(jù)零代碼接入

Mysql :通過Canal采集業(yè)務(wù)數(shù)據(jù)庫的binlog日志,將數(shù)據(jù)推送到指定的Kafka隊(duì)列

其他DB:通過datax(全量和增量)定時(shí)的將數(shù)據(jù)京景,推送到指定的Kafka隊(duì)列窿冯,這里我們對Datax做了改造,讓Datax的數(shù)據(jù)格式和Canal格式一致确徙,

數(shù)據(jù)接口:后端數(shù)據(jù)接收服務(wù)隊(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換(可配置)以后醒串,形成和Canal一致的數(shù)據(jù)格式执桌,推送到指定的Kafka隊(duì)列

  1. 后端針對業(yè)務(wù)db,我們會(huì)通過元數(shù)據(jù)采集系統(tǒng)采集業(yè)務(wù)系統(tǒng)庫表及字段的元數(shù)據(jù)信息芜赌,進(jìn)入到元數(shù)據(jù)管理系
  2. 針對沒有數(shù)據(jù)庫表的仰挣,通過接口直接推送到Kafka的數(shù)據(jù),我們在元數(shù)據(jù)管理里統(tǒng)一提供虛擬庫表缠沈,通過這個(gè)完成數(shù)據(jù)的統(tǒng)一接入
  3. 在數(shù)據(jù)接入的時(shí)候膘壶,我們整合了我們自研的規(guī)則引擎,可以實(shí)現(xiàn)數(shù)據(jù)接入和ETL規(guī)則自動(dòng)綁定洲愤,通過阿波羅配置系統(tǒng)進(jìn)行統(tǒng)一下推到Flink Job里執(zhí)行颓芭,
  4. 對于異常數(shù)據(jù)(不符合規(guī)則的),自動(dòng)推送到指定的Kafka隊(duì)列柬赐,后端有對應(yīng)的服務(wù)進(jìn)行處理亡问,我們這里是通過Flink實(shí)現(xiàn)了一個(gè)輕量級(jí)的ETL,及數(shù)據(jù)入Doris的自動(dòng)化工具

效果如下:

第一步選擇要接入的數(shù)據(jù)表

img

第二步選擇數(shù)據(jù)倉相關(guān)的信息肛宋,這一步會(huì)進(jìn)行表字段映射檢查及配置州藕,目前要首先在數(shù)倉中建立相應(yīng)的表,后續(xù)會(huì)自動(dòng)化建表

img

第三步就是輸入Flink Job名稱進(jìn)行提交了酝陈,整個(gè)就完成了

數(shù)據(jù)開發(fā)控制臺(tái)

  1. 提供一個(gè)數(shù)據(jù)類似于HUE的SQL數(shù)據(jù)開發(fā)控制臺(tái)床玻,數(shù)據(jù)開發(fā)人員可以通過這個(gè)控制臺(tái)進(jìn)行sql的開發(fā)調(diào)試
  2. 生產(chǎn)環(huán)境這里delete,drop等操作要進(jìn)行審批確認(rèn)沉帮,才能進(jìn)行笨枯,避免誤操作,刪除數(shù)據(jù)
  3. 可以將調(diào)試好的sql遇西,添加到定時(shí)任務(wù)調(diào)度系統(tǒng)中馅精,這里我們將海豚調(diào)度集成到我們數(shù)據(jù)中臺(tái)中

零代碼入倉的問題解答

很多朋友問到,我們這種方式會(huì)不會(huì)數(shù)據(jù)丟失粱檀,會(huì)不會(huì)數(shù)據(jù)重復(fù)洲敢,結(jié)合我們自己的場景,給我我們的解決方案

數(shù)據(jù)入到Doris數(shù)據(jù)倉庫對應(yīng)的表中茄蚯,這里我們采用的是Flink實(shí)時(shí)消費(fèi)KafKa的數(shù)據(jù)压彭,然后通過Doris的 Stream Load完成

Flink消費(fèi)Kafka數(shù)據(jù)我們支持兩種方式:

  1. 指定Kafka Topic的Offset進(jìn)行消費(fèi):kafka.offset

  2. 指定時(shí)間戳的方式:kafka.timestamp

數(shù)據(jù)丟失的問題

針對Flink Job失敗,重啟也是通過這兩個(gè)參數(shù)渗常,

  1. 如果你記錄了失敗的時(shí)間點(diǎn)的Kafka Offset壮不,可以通過配置文件配置這個(gè)參數(shù)來重啟Flink Job就

行。這樣不會(huì)造成數(shù)據(jù)丟失

  1. 如果沒有記錄這個(gè)offset皱碘,可通過指定consumer.setStartFromTimestamp(timestamp);這個(gè)時(shí)間就是在配置文件中配置的時(shí)間戳 询一,這樣無論是通過offset還是從指定的時(shí)間開始消費(fèi)Kafka數(shù)據(jù),都不會(huì)造成數(shù)據(jù)丟失

數(shù)據(jù)重復(fù)問題

因?yàn)槲覀冞@個(gè)是在數(shù)據(jù)接入層使用的,數(shù)據(jù)是進(jìn)入到數(shù)據(jù)倉ODS層健蕊,在這一層我們采用的是Doris Unique Key模型菱阵,就算數(shù)據(jù)重復(fù)入庫,會(huì)覆蓋原先的數(shù)據(jù)缩功,不會(huì)存在數(shù)據(jù)重復(fù)問

下一講開始講解數(shù)據(jù)質(zhì)量管理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晴及,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嫡锌,更是在濱河造成了極大的恐慌虑稼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件势木,死亡現(xiàn)場離奇詭異蛛倦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)跟压,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門胰蝠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歼培,“玉大人震蒋,你說我怎么就攤上這事《阕” “怎么了查剖?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長噪窘。 經(jīng)常有香客問我笋庄,道長,這世上最難降的妖魔是什么倔监? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任直砂,我火速辦了婚禮,結(jié)果婚禮上浩习,老公的妹妹穿的比我還像新娘静暂。我一直安慰自己,他們只是感情好谱秽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布洽蛀。 她就那樣靜靜地躺著,像睡著了一般疟赊。 火紅的嫁衣襯著肌膚如雪郊供。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天近哟,我揣著相機(jī)與錄音驮审,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛头岔,可吹牛的內(nèi)容都是我干的塔拳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼峡竣,長吁一口氣:“原來是場噩夢啊……” “哼靠抑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起适掰,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤颂碧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后类浪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體载城,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年费就,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诉瓦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡力细,死狀恐怖睬澡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情眠蚂,我是刑警寧澤煞聪,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站逝慧,受9級(jí)特大地震影響昔脯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笛臣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一云稚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沈堡,春花似錦静陈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至率拒,卻和暖如春崩泡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猬膨。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工角撞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呛伴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓谒所,卻偏偏與公主長得像热康,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子劣领,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容