一种应用于数据仓库的数据处理方法和数据处理装置制造方法

文档序号:6631243阅读:267来源:国知局
一种应用于数据仓库的数据处理方法和数据处理装置制造方法
【专利摘要】本发明提供一种应用于数据仓库的数据处理方法和数据处理装置,能够提高数据仓库中的数据的时效性。本发明的应用于数据仓库的数据处理方法包括:在第一数据库被操作时,根据该操作对应的增量日志对数据仓库中的第一数据库的镜像数据库的记录进行修改,然后将修改后的记录另行保存到键值数据库中;从所述键值数据库中取出最新的条目,将该条目追加保存到所述数据仓库的第一数据表中,使该第一数据表中包含所述镜像数据库的该记录的各个历史版本;在所述第一数据表中查询数据。
【专利说明】一种应用于数据仓库的数据处理方法和数据处理装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,特别地涉及一种应用于数据仓库的数据处理方法和 数据处理装置。

【背景技术】
[0002] 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库是为企业 所有级别的决策制定过程提供支持的所有类型数据的战略集合。其数据来自于各个分散的 源数据库,例如生产环境下的关系数据库,以及其他需要进行分析的数据所在的数据库。数 据仓库是出于分析性报告和决策支持的目的而创建,为企业提供需要业务智能来指导业务 流程改进和监视时间、成本、质量和控制。与源数据库相比,数据仓库是前者数据的汇总,具 有大容量的特点,并且一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的 加载、刷新。
[0003] 在搭建数据仓库系统,建设数据分析平台时,常常需要实时的数据流参与数据分 析,如PV(页面浏览量)、uv(独立访问量)、订单量、订单金额等,因此要求能够快速准确的 得到实时数据。
[0004] 数据仓库的数据是从源数据库抽取数据而得到。数据抽取的时间间隔一般由最终 用户的查询数据的需求决定,大多数需求一般是一天至少更新一次数据。如果源数据库是 随时会有更新的在线数据库,则数据仓库可以在源数据库在线或离线时抽取数据,一般按 如下步骤:
[0005] 步骤一:使用数据库SQL查询的方式获取源数据库在一定时间范围内更新的数 据。一般根据数据表更新字段获取每天更新的数据,如果没有更新字段则需要进行每天全 表查询抽取。
[0006] 步骤二:将第一步获取的数据通过程序或者数据库原生方式从源数据库导入到中 转服务器或者数据仓库。
[0007] 步骤三:经过数据清洗后的当天增量或者全量数据保存到数据仓库的源数据库的 镜像数据库内,并且生成该镜像数据在当天的一个快照数据。
[0008] 按照现有技术中的上述从源数据库离线批量抽取数据方式,由于离线批量抽取只 能采用SQL方式通过数据库查询引擎进行数据提取,会对源数据库造成一定压力。为了减 少对源数据库的压力,从源数据库进行数据抽取一般都在每天夜间生产压力小的时候进 行,从而造成了数据至少一天的延时,并且只能通过抽取大于每次间隔时间的数据来更新。 这样,从数据仓库查询得到的数据比较陈旧,时效性不足。


【发明内容】

[0009] 有鉴于此,本发明提供一种应用于数据仓库的数据处理方法和数据处理装置,能 够提高数据仓库中的数据的时效性。
[0010] 为实现上述目的,根据本发明的一个方面,提供了一种应用于数据仓库的数据处 理方法。
[0011] 本发明的应用于数据仓库的数据处理方法包括:在第一数据库被操作时,根据该 操作对应的增量日志对数据仓库中的第一数据库的镜像数据库的记录进行修改,然后将修 改后的记录另行保存到键值数据库中;从所述键值数据库中取出最新的条目,将该条目追 加保存到所述数据仓库的第一数据表中,使该第一数据表中包含所述镜像数据库的该记录 的各个历史版本;在所述第一数据表中查询数据。
[0012] 可选地,在所述第一数据表中查询数据的步骤包括:在所述第一数据表中查询具 有指定标识并且距指定历史时刻最近且在该历史时刻之前更新的数据库记录。
[0013] 可选地,在所述第一数据表中查询数据的步骤包括:在所述第一数据表中查询当 前最新的记录。
[0014] 可选地,还包括:根据所述第一数据表的指定时刻之前的记录,将当前数据仓库的 第一数据库的镜像数据库更新为所述第一数据库在该指定时刻的状态。
[0015] 可选地,所述键值数据库为Hbase数据库;所述第一数据表为Hive数据表。
[0016] 根据本发明的另一方面,提供了一种应用于数据仓库的数据处理装置。
[0017] 本发明的应用于数据仓库的数据处理装置包括:修改模块,用于在第一数据库被 操作时,根据该操作对应的增量日志对数据仓库中的第一数据库的镜像数据库的记录进行 修改,然后将修改后的记录另行保存到键值数据库中;保存模块,用于从所述键值数据库中 取出最新的条目,将该条目追加保存到所述数据仓库的第一数据表中,使该第一数据表中 包含所述镜像数据库的该记录的各个历史版本;查询模块,用于在所述第一数据表中查询 数据。
[0018] 可选地,所述查询模块还用于在所述第一数据表中查询具有指定标识并且距指定 历史时刻最近且在该历史时刻之前更新的数据库记录。
[0019] 可选地,所述查询模块还用于在所述第一数据表中查询当前最新的记录。
[0020] 可选地,还包括更新模块,用于根据所述第一数据表的指定时刻之前的记录,将当 前数据仓库的第一数据库的镜像数据库更新为所述第一数据库在该指定时刻的状态。
[0021] 可选地,所述键值数据库为Hbase数据库;所述第一数据表为Hive数据表。
[0022] 根据本发明的技术方案,在第一数据库被操作时,根据该操作对应的增量日志对 数据仓库中的第一数据库的镜像数据库的记录进行修改,修改后的条目的内容被追加保 存到数据仓库的第一数据表中,使该第一数据表中包含镜像数据库的该记录的各个历史版 本,这样既能够从数据仓库中得到实时性很高的镜像数据,又可以得到镜像数据库在任意 历史时刻的版本即数据快照,还能够使镜像数据库的更新调度变得简单,调度间隔容易控 制。在Hadoop技术环境下,应用本实施例的方案无需编写复杂的Mapreduce程序,通过Hive SQL接口就可以从第一数据表中查询数据记录以及更新上述镜像数据库。

【专利附图】

【附图说明】
[0023]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0024]图1是根据本发明实施例的应用于数据仓库的数据处理方法的流程的主要步骤 的不意图;
[0025]图2是根据本发明实施例的应用于数据仓库的数据处理装置的主要模块的示意 图。

【具体实施方式】
[0026]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种 细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识 至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同 样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0027]在以下的描述中,以数据仓库保存生产环境下的在线的关系数据库(以下简称作 "第一数据库")的镜像数据库为例说明本实施例的技术方案对本发明实施例的技术方案作 详细说明,并且本实施例中采用Hadoop体系的技术。图1是根据本发明实施例的应用于数 据仓库的数据处理方法的流程的主要步骤的示意图。该方法可以由计算机程序来完成。如 图1所示,该方法主要包括如下的步骤S11至S13。
[0028]步骤S11 :判断当前是否产生增量日志。若是,则进行步骤S12,否则延时之后再次 判断。在第一数据库被操作后,日志处理程序监听到数据库的变化,然后产生一条对应于该 操作的日志,该日志对于第一数据库来说可以称作"操作日志",对于第一数据库的镜像数 据库来说可称作增量曰志。
[0029]步骤S12 :根据步骤S11中获取的增量日志,对数据仓库中的第一数据库的镜像数 据库的记录进行修改。显然这里的记录应当是增量日志涉及到的记录。
[0030] 步骤S13 :将步骤S12中被修改的记录另行保存到键值数据库中。由于源数据库 可能是在线数据库,其数据更新速度可能非常快,因此需要采用能够快速读写数据记录的 数据库来缓存修改后的数据记录,本实施例中采用了键值数据库例如Hbase等。以数据记 录的标识(在下文中的各表中,标识是其中的id字段)为键名,数据记录的其他字段为键 值进行保存,在保存时先判断键值数据库中是否已经有以该被修改的记录的标识为键名的 记录,如没有,则直接保存该被修改的记录,如果有,则按该被修改的记录的内容更新已有 的记录。也就是说在键值数据库中,仅保存第一数据库的各条记录的最新版本。这样,如果 需要查询某一记录的最新版本,可以从该键值数据库中以最快的速度获取,无需对第一数 据库进行操作。
[0031] 步骤S14 :从该键值数据库中取出最新条目,将该条目追加保存到数据仓库的第 一数据表中。
[0032] 在Hadoop体系下,可采用应用于Hadoop的数据仓库工具Hive将结构化的数据文 件映射得到上述第一数据表。可按键名快速取出Hbase中的数据记录,然后由Hive进行映 射处理得到Hive表。Hive表是一种数据库表,提供简单的SQL查询功能,可以将SQL语句 转换为MapReduce任务来运行。
[0033] 对于数据仓库中的第一数据库的镜像数据库,并不在上述步骤中被更新,也就是 说上述步骤与第一数据库的镜像数据库的更新,二者独立进行。
[0034] 步骤S14之后返回步骤S11。按照上述步骤,第一数据表中逐渐累计了第一数据库 的各条记录的每次更新后的版本。以下举一个具体的例子。例如在2014年4月1日0:45 得到表1包含的日志内容(表1中是日志的内容,而实际的日志形式不一定是表格形式) :
[0035] 表 1
[0036]

【权利要求】
1. 一种应用于数据仓库的数据处理方法,其特征在于,包括: 在第一数据库被操作时,根据该操作对应的增量日志对数据仓库中的第一数据库的镜 像数据库的记录进行修改,然后将修改后的记录另行保存到键值数据库中; 从所述键值数据库中取出最新的条目,将该条目追加保存到所述数据仓库的第一数据 表中,使该第一数据表中包含所述镜像数据库的该记录的各个历史版本; 在所述第一数据表中查询数据。
2. 根据权利要求1所述的方法,其特征在于,在所述第一数据表中查询数据的步骤包 括:在所述第一数据表中查询具有指定标识并且距指定历史时刻最近且在该历史时刻之前 更新的数据库记录。
3. 根据权利要求1所述的方法,其特征在于,在所述第一数据表中查询数据的步骤包 括:在所述第一数据表中查询当前最新的记录。
4. 根据权利要求1,2或3所述的方法,其特征在于,还包括:根据所述第一数据表的指 定时刻之前的记录,将当前数据仓库的第一数据库的镜像数据库更新为所述第一数据库在 该指定时刻的状态。
5. 根据权利要求1,2或3所述的方法,其特征在于,所述键值数据库为Hbase数据库; 所述第一数据表为Hive数据表。
6. -种应用于数据仓库的数据处理装置,其特征在于,包括: 修改模块,用于在第一数据库被操作时,根据该操作对应的增量日志对数据仓库中的 第一数据库的镜像数据库的记录进行修改,然后将修改后的记录另行保存到键值数据库 中; 保存模块,用于从所述键值数据库中取出最新的条目,将该条目追加保存到所述数据 仓库的第一数据表中,使该第一数据表中包含所述镜像数据库的该记录的各个历史版本; 查询模块,用于在所述第一数据表中查询数据。
7. 根据权利要求6所述的数据处理装置,其特征在于,所述查询模块还用于在所述第 一数据表中查询具有指定标识并且距指定历史时刻最近且在该历史时刻之前更新的数据 库记录。
8. 根据权利要求6所述的数据处理装置,其特征在于,所述查询模块还用于在所述第 一数据表中查询当前最新的记录。
9. 根据权利要求6, 7或8所述的数据处理装置,还包括更新模块,用于根据所述第一数 据表的指定时刻之前的记录,将当前数据仓库的第一数据库的镜像数据库更新为所述第一 数据库在该指定时刻的状态。
10. 根据权利要求6, 7或8所述的数据处理装置,其特征在于,所述键值数据库为 Hbase数据库;所述第一数据表为Hive数据表。
【文档编号】G06F17/30GK104298760SQ201410568558
【公开日】2015年1月21日 申请日期:2014年10月23日 优先权日:2014年10月23日
【发明者】刘羽, 刘彦伟 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1