1.什么是采集
在一般的分层业务系统中,数据采集都是一个非常重要的部分:主要负责数据的输入。
2.为什么需要采集
在传统的管理系统中,一般的业务系统都是采集,存储,显示 ,报表,这是传统分层模型下的架构方式下的业务功能;我们重点看一下数据采集部分;
3.场景分析
1.第一种数据采集就是基于请求式样的采集,意味着请求即是采集。常见的情景就是HTTP 请求,把大量请求作为数据源存储都DB中。
2.第二种就是基于网页版的数据采集,前端使用打点技术,没隔一段时间完成数据采集,存储到DB中。
3.最后一种就是数据钻取方式,从中间表查询存储到DB中
4基于ETL导入的方式数据采集。
5.基于消息队列的数据采集,
4.解决方案:
第1种方案就是常见的程序采集,实现是实体类的映射,存储到DB中,主要是实现对Bean的映射和格式转换。入xml,Object,配置文件等自定义数据结构等解析
数组解析,配置文件读取,xml的解析,Object解析,JSON解析,等数据基本数据类型和复杂数据类型解析。
xml这方面实现技术:Jaxb2
配置文件实现jdk protites,Map 映射
xml解析:dom4j,JDOM,
Object:对象之间的映射,一对多,多对一等方式,常见入Herbernate,Mybatis等。
JSON:Gson 实现,fastjson等
第二种方案:是基于网页采集的,常见的入divolte技术等。
第三种方案:比较常见的是启动一个定时任务去采集,我们可以到中间库去采集,查询出中间库的数据,定时采集到自己的业务表中。
第四中方案:利用DB之前的迁移工具,如oracle 的导入泵,RMAN工具等。
第五种方案: 基于消息队列的方式,如kafka进行监听和消费存储到DB中。
开源方案对数据采集的方式:
参见开源中国使用最新的解决方案: