后端產(chǎn)品經(jīng)理筆記-數(shù)據(jù)傳輸和寫入

前言

在后端數(shù)據(jù)量大起來之后拖叙,大部分的工作都是在‘玩數(shù)據(jù)’氓润。就像一捧沙子,左手換到右手薯鳍,右手指縫間分流而出咖气,再由另一雙手接住。

所以作為產(chǎn)品經(jīng)理挖滤,不僅要知道數(shù)據(jù)從哪來崩溪,還要理清楚獲取數(shù)據(jù)之后的運(yùn)算邏輯、異常規(guī)則斩松,以及異常情況伶唯、數(shù)據(jù)日志等等。

本文繼數(shù)據(jù)庫之后惧盹,梳理了數(shù)據(jù)交互筆記乳幸。有興趣的朋友可以一起交流瞪讼。

一、跨服務(wù)器數(shù)據(jù)傳輸

1粹断、公司的后端數(shù)據(jù)之所以存在不同的數(shù)據(jù)庫上符欠,本質(zhì)是為了解耦數(shù)據(jù),提高單個數(shù)據(jù)庫的運(yùn)算速度姿染。多個子系統(tǒng)之間的交互背亥,其本質(zhì)就是數(shù)據(jù)傳輸。

數(shù)據(jù)傳輸方式:MQ(隊列)悬赏、http接口狡汉、otter、爬取闽颇、導(dǎo)入盾戴。

2、MQ適用于公司內(nèi)部兵多,數(shù)據(jù)量大尖啡,規(guī)律性強(qiáng),批量往來的數(shù)據(jù)剩膘。一般的配置是一方推出增量數(shù)據(jù)衅斩,另一方被動消費(fèi),像排隊進(jìn)廁所一樣怠褐,不用設(shè)定頻率畏梆。

3、http接口是最常用的奈懒。叫 interface奠涌,也有的叫 protocol

如果數(shù)據(jù)源是一缸水,那么接口就像是鑿了一個口磷杏。所以接口必須是在數(shù)據(jù)源這邊溜畅,由數(shù)據(jù)方定義接口。

接口規(guī)則就像過濾器一樣极祸,設(shè)定推送前的篩選慈格、轉(zhuǎn)化等運(yùn)算規(guī)則。這就是接口的核心內(nèi)容遥金。

接口交互數(shù)據(jù)可以是主動推送峦椰,也可以是請求獲取。

主動推送一般是數(shù)據(jù)生產(chǎn)方一旦更新汰规,則觸發(fā)推送,將所需字段對應(yīng)值傳遞過去物邑。

請求獲取就是數(shù)據(jù)需求方傳遞請求參數(shù)(請求參數(shù)一般是一個條件溜哮,比如時間)滔金。數(shù)據(jù)生產(chǎn)方則按照協(xié)議響應(yīng),給出滿足條件的數(shù)據(jù)到請求方(也就是返回參數(shù))茂嗓。

4餐茵、接口定義是開發(fā)的事情,但產(chǎn)品需要確定出范圍:

接口定義的規(guī)則是什么述吸、傳參和返回參數(shù)是什么忿族、重復(fù)傳參時是跳過還是再次獲取(一般都再獲闰蛎)道批,必傳參數(shù)是什么,是否回傳接收結(jié)果給數(shù)據(jù)生產(chǎn)方入撒。

比如下圖:每小時/次取對方表中第一頁最新的50條數(shù)據(jù)隆豹。超過的數(shù)據(jù)下個小時繼續(xù)取。

5茅逮、確保接口獲取的數(shù)據(jù)及時璃赡。

除了生產(chǎn)數(shù)據(jù)需要及時向下游推送之外,還有基礎(chǔ)數(shù)據(jù)的更新也需要及時給下游同步献雅,有時要做到同時碉考。

方法是兩種:觸發(fā)式和定時腳本。

觸發(fā)式就是一旦一個參數(shù)值滿足條件則觸發(fā)挺身。

腳本式一般用在請求獲取數(shù)據(jù)的時候侯谁。因為不知道數(shù)據(jù)源什么時候更新,所以一般用定時腳本執(zhí)行請求任務(wù)瞒渠。

請求的頻率需要與更新的頻率相協(xié)調(diào)良蒸。比如:每次取6小時內(nèi)更新的數(shù)據(jù)。每2小時取一次伍玖,則不會有問題嫩痰。但是若每天取一次 ?就會有漏掉。也就是取數(shù)據(jù)的頻率要高于更新頻率窍箍。

6串纺、數(shù)據(jù)量大的時候,可以用otter:

方案1:直接請求對方的接口:數(shù)據(jù)多的時候 請求就多椰棘,會占資源

方案2:為保證數(shù)據(jù)本身及時纺棺,OTTER是最好的,也就是庫對庫的傳輸(一般一個公司的才這樣)邪狞。

otter 方法:①祷蝌、數(shù)據(jù)全在一個表中。②本地庫建一個相同的表帆卓。

7巨朦、爬取數(shù)據(jù)

一些第三方公司為了保密米丘,會把文件存在網(wǎng)盤或網(wǎng)頁上,比如第三方支付公司與協(xié)議公司約定好賬號密碼糊啡,登錄到SFTP篩選出需要的數(shù)據(jù)然后解析后保持到本地拄查。這也實現(xiàn)了一個服務(wù)器之間的轉(zhuǎn)移。

8棚蓄、導(dǎo)入:數(shù)據(jù)量大的堕扶,且有規(guī)則數(shù)據(jù)也可以通過導(dǎo)入的方式。

文檔一般用csv格式梭依,文件較小稍算,兼容性好。然后需要定義好excel表格對應(yīng)字段的關(guān)系即可睛挚。

上傳時需要對文件檢驗邪蛔,建議方案是一旦一處錯誤,就全部不予導(dǎo)入扎狱。

9侧到、爬取第三方數(shù)據(jù)的防止丟包機(jī)制

案例:到SFTP服務(wù)器抓取并解析字段,寫入數(shù)據(jù)表淤击。

方案:

①斷抓補(bǔ)抓:比如: 4號抓修改時間為3號的數(shù)據(jù)匠抗。5號斷抓,則6號抓取4污抬、5號的數(shù)據(jù)汞贸。7號抓取6號的數(shù)據(jù)。

②抓空補(bǔ)抓:網(wǎng)關(guān)的 每次抓取若抓空(獲取的數(shù)據(jù)是0個)則下次繼續(xù)抓印机。直到三次都未取到矢腻。則不再補(bǔ)救。

二射赛、數(shù)據(jù)寫入

1多柑、先落地到中間表

如果獲取后還要再本地進(jìn)行規(guī)則運(yùn)算,則最好先落地到中間表楣责,再由中間表寫入最終表竣灌。

比如從A系統(tǒng)獲取的數(shù)據(jù)取到B系統(tǒng),要進(jìn)行分?jǐn)偤笤賹懭氡砀阳铩D敲醋詈孟嚷涞氐紹系統(tǒng)的中間表初嘹,然后再由中間表寫入目標(biāo)表。

好處是沮趣,正向數(shù)據(jù):可以異步處理屯烦,A——>中間表——>最終表,互相不影響。逆向數(shù)據(jù):一旦數(shù)據(jù)異常漫贞,則方便追溯原因甸箱。

2、去重規(guī)則:設(shè)置去重規(guī)則迅脐,以便再重復(fù)獲取數(shù)據(jù)時更新、插入或者跳過豪嗽。

注意去重規(guī)則一旦改變谴蔑,則需要考慮到歷史數(shù)據(jù)對新數(shù)據(jù)的影響,因為二者的判重維度不一樣龟梦,可能會有交叉隐锭。

3、數(shù)據(jù)日志:目的是記錄數(shù)據(jù)的來龍去脈计贰,追溯以分析bug

產(chǎn)品經(jīng)理告訴開發(fā)加日志钦睡,開發(fā)就會再后臺加,因為log4j開源代碼定義了5個主要級別的log:FATAL躁倒、ERROR荞怒、WARN、INFO秧秉、DEBUG褐桌,一般可以配置INFO或DEBUG級別的日志。

如果需要保留的時間長象迎,則可以將其保存到本地荧嵌。

本地的需求可以展示給用戶看。比如可以從以下維度展示:

4砾淌、單進(jìn)程鎖

腳本執(zhí)行的頻率的時候啦撮,為保證數(shù)據(jù)是按單進(jìn)程執(zhí)行,不交疊汪厨,就要設(shè)置單進(jìn)程鎖赃春。比如一小時一次,8點沒執(zhí)行完 9點就不要執(zhí)行骄崩。

另外在跑數(shù)據(jù)的規(guī)則上面聘鳞,不要設(shè)置8點跑更新時間7點的,一旦小故障要拂,就容易漏取抠璃。正確的要么是更新時間為當(dāng)前之前更久的,要么就以狀態(tài)來限定脱惰,?比如取is_use為否的搏嗡。

5、同步基礎(chǔ)數(shù)據(jù)的時候 是否提前過濾

比如A系統(tǒng)維護(hù)了用戶基礎(chǔ)信息(其中有個狀態(tài)為是否啟用),B系統(tǒng)取用采盒,但不做數(shù)據(jù)維護(hù)旧乞,只有啟用狀態(tài)的能用,那么是否只取啟用狀態(tài)的到B磅氨,還是兩種狀態(tài)都取尺栖。

答案是:在數(shù)據(jù)量差異不大的情況下,取全量烦租。

原因之一:若啟用狀態(tài)的用戶忽然被A系統(tǒng)禁用延赌,那么可能該用戶在B系統(tǒng)的生產(chǎn)數(shù)據(jù)報錯,這時候到中間表看狀態(tài)就可以看出來問題叉橱,而不需跨系統(tǒng)或跨部門溝通查證挫以。

(待續(xù))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市窃祝,隨后出現(xiàn)的幾起案子掐松,更是在濱河造成了極大的恐慌,老刑警劉巖粪小,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件大磺,死亡現(xiàn)場離奇詭異,居然都是意外死亡糕再,警方通過查閱死者的電腦和手機(jī)量没,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來突想,“玉大人殴蹄,你說我怎么就攤上這事』#” “怎么了袭灯?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绑嘹。 經(jīng)常有香客問我稽荧,道長,這世上最難降的妖魔是什么工腋? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任姨丈,我火速辦了婚禮,結(jié)果婚禮上擅腰,老公的妹妹穿的比我還像新娘蟋恬。我一直安慰自己,他們只是感情好趁冈,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布歼争。 她就那樣靜靜地躺著拜马,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沐绒。 梳的紋絲不亂的頭發(fā)上俩莽,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音乔遮,去河邊找鬼扮超。 笑死,一個胖子當(dāng)著我的面吹牛蹋肮,可吹牛的內(nèi)容都是我干的瞒津。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼病毡!你這毒婦竟也來了有送?” 一聲冷哼從身側(cè)響起八拱,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枷邪,沒想到半個月后东揣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體真屯,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡泵额,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年羞秤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡无宿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情配乱,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布皮迟,位于F島的核電站搬泥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伏尼。R本人自食惡果不足惜忿檩,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爆阶。 院中可真熱鬧燥透,春花似錦沙咏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吱韭,卻和暖如春吆豹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背理盆。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工痘煤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猿规。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓衷快,卻偏偏與公主長得像,于是被迫代替她去往敵國和親姨俩。 傳聞我的和親對象是個殘疾皇子烦磁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,967評論 6 13
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,930評論 2 89
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)哼勇,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 1呕乎、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,980評論 3 119
  • 本文章轉(zhuǎn)載于搜狗測試 上一篇文章介紹了Selenium+JUnit測試環(huán)境的搭建积担,和一條簡單測試用例的編寫方法,本...
    夜境閱讀 463評論 0 1