1.什么是采集
在一般的分層業(yè)務(wù)系統(tǒng)中,數(shù)據(jù)采集都是一個(gè)非常重要的部分:主要負(fù)責(zé)數(shù)據(jù)的輸入。
2.為什么需要采集
在傳統(tǒng)的管理系統(tǒng)中,一般的業(yè)務(wù)系統(tǒng)都是采集,存儲(chǔ),顯示 ,報(bào)表,這是傳統(tǒng)分層模型下的架構(gòu)方式下的業(yè)務(wù)功能;我們重點(diǎn)看一下數(shù)據(jù)采集部分;
3.場景分析
1.第一種數(shù)據(jù)采集就是基于請(qǐng)求式樣的采集,意味著請(qǐng)求即是采集。常見的情景就是http 請(qǐng)求,把大量請(qǐng)求作為數(shù)據(jù)源存儲(chǔ)都db中。
2.第二種就是基于網(wǎng)頁版的數(shù)據(jù)采集,前端使用打點(diǎn)技術(shù),沒隔一段時(shí)間完成數(shù)據(jù)采集,存儲(chǔ)到db中。
3.最后一種就是數(shù)據(jù)鉆取方式,從中間表查詢存儲(chǔ)到db中
4基于etl導(dǎo)入的方式數(shù)據(jù)采集。
5.基于消息隊(duì)列的數(shù)據(jù)采集,
4.解決方案:
第1種方案就是常見的程序采集,實(shí)現(xiàn)是實(shí)體類的映射,存儲(chǔ)到db中,主要是實(shí)現(xiàn)對(duì)bean的映射和格式轉(zhuǎn)換。入xml,object,配置文件等自定義數(shù)據(jù)結(jié)構(gòu)等解析
數(shù)組解析,配置文件讀取,xml的解析,object解析,json解析,等數(shù)據(jù)基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型解析。
xml這方面實(shí)現(xiàn)技術(shù):jaxb2
配置文件實(shí)現(xiàn)jdk protites,map 映射
xml解析:dom4j,jdom,
object:對(duì)象之間的映射,一對(duì)多,多對(duì)一等方式,常見入herbernate,mybatis等。
json:gson 實(shí)現(xiàn),fastjson等
第二種方案:是基于網(wǎng)頁采集的,常見的入divolte技術(shù)等。
第三種方案:比較常見的是啟動(dòng)一個(gè)定時(shí)任務(wù)去采集,我們可以到中間庫去采集,查詢出中間庫的數(shù)據(jù),定時(shí)采集到自己的業(yè)務(wù)表中。
第四中方案:利用db之前的遷移工具,如oracle 的導(dǎo)入泵,rman工具等。
第五種方案: 基于消息隊(duì)列的方式,如kafka進(jìn)行監(jiān)聽和消費(fèi)存儲(chǔ)到db中。