包含文件较多 其中demo文件用于测试和练习,与数据中心主干程序无关
idc文件夹 下模拟了数据中心的运行,使用start.sh即可使用调度程序启动所有的相关进程
public文件夹下主要包含了项目运行框架,和oracle的操作
tools文件夹下包含了ftp文件传输,TCP文件传输,数据迁移数据归档等相关程序。
功能模块:
a)用于从数据源的数据库中抽取数据,生成xml文件;
b)这是一个通用的功能模块,通过配置脚本,就可以从不同的表中抽取数据;
c)支持全量抽取(每次抽取全部的数据)和增量抽取(每次只抽取新增的数据);
d)支持Oracle、MySQL和SQL Server数据库。 你做的是Oracle数据库,其它数据库的由同学/同事负责。
a)采用ftp协议,从ftp服务端下载/上传文件;
b)这是一个通用的功能模块,通过配置脚本,就可以实现文件下载/上传任务;
c)把开源的ftp客户端库ftplib.c封装成C++的类,使用起来更方便;
d)支持增量传输的功能,每次只下载/上传新增的文件;
e)适用于不同的业务系统之间传输文件。
a)自定义tcp通讯协议,实现了文件传输的服务端和客户端程序,支持文件下载/上传功能。
b)这是一个通用的功能模块,通过配置脚本,就可以实现文件下载/上传任务;
c)采用了异步通讯的方式,传输文件的效率非常高,远超过ftp协议;
d)支持增量传输的功能,每次只下载/上传新增的文件;
e)适用于同一个业务系统的多个服务器之间传输文件。
a)数据处理是指把各种格式(编码)的文件转换成xml文件;
b)数据源文件的格式千奇百怪,所以,数据处理模块由若干个小模块组成,每个小模块负责处理一种格式的文件。
a)把数据抽取模块和数据处理模块生成的xml文件存储到Oracle数据库中;
b)这是一个通用的功能模块,通过配置脚本,就可以实现不同种类数据的入库;
c)根据xml文件名识别数据种类(需要入库的表),查询Oracle的数据字典,得到表的字段名,用字段名解析xml文件,获取数据,把数据入库到表中。
a)大部分的数据可分为热数据和冷数据,数据管理模块的功能是把冷数据删除、备份或归档。
b)数据管理是通用的功能模块,通过配置脚本,就可以实现对不同数据表的管理
数据统计功能的业务相关性比较强,不同的数据有不同的统计需求。数据统计的主要目的是对源始的数据进行二次加工,生成新的数据集、数据产品、报表。
数据中心的数据库是一个集群,核心数据库采用RAC,应用数据库是若干个单实例,核心数据库负责处理数据,应用数据库负责提供数据服务。
a) 数据同步是指把核心数据库中的数据同步到应用数据库中;
b) 这是一个通用的功能模块,通过配置脚本,就可以实现不同表的同步;
c) 利用了Oracle的dblink和数据字典;
d) 支持刷新同步,全表刷新和按条件刷新;
e) 支持增量同步,只同步新增的数据;
f) 支持不同表结构的同步(源表和目的表的表结构不同);
g) 可以指定同步数据的条件。
九、数据访问接口模块
a)采用http协议,为业务系统提供数据服务;
b)这是一个通用的功能,通过配置参数,就可以实现不同的数据访问接口;
c)服务端程序采用了线程、线程通讯、管道、智能指针和epoll等技术;
d)数据访问接口性能瓶颈在Oracle数据库,并发性能在3-5千/秒左右。
e)服务端程序的总体结构如下: