一种数据回流的方法和装置的制作方法

文档序号:6585565阅读:298来源:国知局
专利名称:一种数据回流的方法和装置的制作方法
技术领域
本申请涉及数据仓库技术领域,尤其涉及一种数据回流的方法和装置。
背景技术
数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合, 它用于支持企业或组织的决策分析处理。生产系统的正常运行需要数据仓库的支持。数据回流就是指将数据仓库的计算结 果表中的数据导入生产系统数据库的对应表的过程。随着生产系统复杂度和生产率的大幅 提高,生产系统自身的数据库的负载越来越繁重。为了缓解生产系统自身数据库的压力,现 有技术中在生产系统自身的数据库中采取了将原本位于一个数据库中的一个大表按照特 定的规则划分到多台廉价主机上的多个独立数据库中的多个小表里。显然,通过这种方式 降低了对生产系统自身数据库单机的硬件要求和机器负载,但是因为生产系统中的数据库 中的数据存储模式发生了从一到多的变化,必然导致数据从数据仓库回流到生产系统数据 库的方式发生相应的变化。这是因为,原本数据主要是从数据仓库系统的一个表回流到生 产数据库的一个表中即可,现在因为生产系统数据库已经从一个大表变成了多个小表,这 就需要将数据仓库的一个表中的数据回流到生产系统中的多个分表中。例如,当某个数据仓库表对应的生产系统的数据库分表个数非常多的时候(例如 有的大表会分成IOM个分表),现有的数据回流方法是,针对每一个生产系统数据库的分 表都在数据仓库里建一个对应的分表,然后将数据从数据仓库的分表同步到生产系统数据 库对应的分表中。发明人通过研究发现,现有的数据回流方法会导致数据仓库的表数量暴涨,从而 使数据仓库中表的维护数量和难度就大大提高,而且在数据仓库里将一个表的数据分布到 多个分表的过程非常繁杂,极易出错,会导致表的数据计算和回流时间变长,成为回流的瓶 颈,严重的可能会导致回流时间非常长。如果回流数据的时间被延迟到生产系统数据库负 载高峰期的时段,还将影响到生产系统的稳定。

发明内容
有鉴于此,本申请实施例的目的是提供一种数据回流的方法和装置,实现快速、高 效的数据回流。为实现上述目的,本申请实施例提供了如下技术方案一种数据回流的方法,包括将待回流数据从数据仓库抽取到内存中;根据待回流数据的回流规则确定所抽取的每个待回流数据在生产系统中的目的 表;按照所确定的每个待回流数据在生产系统中的目的表将待回流数据进行发送。将待回流数据从数据仓库抽取到内存中具体为通过多个线程同时将待回流数据从数据仓库抽取到内存中。
3
按照所确定的每个待回流数据在生产系统中的目的表将待回流数据进行发送具 体为将所有的待回流数据按照在生产系统中的目的表进行分组;通过多个线程将待回流数据按所述分组进行发送,其中每个线程中每个分组中的 待回流数据都被发送至生产系统中的同一个目的表。所述数据回流规则根据所述生产系统中的目的表的数目以及所述待回流数据的
属性确定。所述待回流数据的属性包括所述待回流数据的中数字位的数值或者所述待回流 数据某个字符串类型字段某一位或者几位的值。一种数据回流的装置,包括抽取单元,用于将待回流数据从数据仓库抽取到内存中;确定单元,用于根据待回流数据的回流规则确定所抽取的每个待回流数据在生产 系统中的目的表;分发单元,用于按照所确定的每个待回流数据在生产系统中的目的表将待回流数 据进行发送。所述抽取单元,具体通过多个线程同时将待回流数据从数据仓库抽取到内存中。所述分发单元包括分组子单元,用于将所有的待回流数据按照在生产系统中的目的表进行分组;发送子单元,用于通过多个线程将待回流数据按所述分组进行发送,其中每个线 程中每个分组中的待回流数据都被发送至生产系统中的同一个目的表。所述数据回流规则根据所述生产系统中的目的表的数目以及所述待回流数据的 属性确定。所述待回流数据的属性包括所述待回流数据的中数字位的数值或者所述待回流 数据某个字符串类型字段某一位或者几位的值。可见,在本申请实施例中,将待回流数据从数据仓库抽取到内存中;根据数据回流 规则确定所抽取的每个待回流数据在生产系统中的目的表;按照所确定的每个待回流数据 在生产系统中的目的表将待回流数据进行发送。本申请实施例有效解决了回流过程中数据 仓库大表中的数据回流到多个生产系统中小表的问题。本申请实施例所提供的方法使得 数据回流过程中,数据仓库表只需要将待回流数据准备好即可,避免了现有技术中将数据 仓库的一个大表分成与生产系统对应的多个小表的冗余操作,极大的提高了回流的配置效 率,也极大的降低了回流耗费的时间。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提 下,还可以根据这些附图获得其他的附图。图1为本申请一实施例所提供的方法流程图;图2为本申请另一实施例所提供的方法流程图3为本申请一实施例所提供的装置的结构示意图;图4为本申请一实施例提供的装置中一单元的结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实 施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施 例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通 技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护 的范围。请参考图1,为本申请实施例一方法流程图,可以包括以下步骤S101,将待回流数据从数据仓库抽取到内存中;而本申请实施例中,首先将待回流的数据从数据仓库抽取到内存中。实际应用中,将待回流数据从数据仓库抽取到内存时,可以通过多个线程同时进 行,例如通过10个线程从数据仓库中同时抽取待回流数据到内存中。这样可以提高数据抽 取的速率。将待回流数据抽取到内存中可以一次将数据仓库中的所有数据均抽取到内存 中,也可以分批抽取,当处理完当前批次的待回流数据后再处理下一批次的待回流数据,这 样可以提高处理的效率。S102,根据数据回流规则确定所抽取的每个待回流数据在生产系统中的目的表;数据回流规则规定了数据仓库中的数据具体回流到生产系统中的哪个目的表,数 据回流规则可以根据生产系统中目的表的数目以及待回流数据的属性确定。例如可以根据 待回流数据的某数字字段的值除以生成系统中目的表的数据得到的余数来确定;或者根据 待回流数据某个字符串类型字段某几位的值来确定;或者通过对行数据中一列或多列的值 进行特殊的函数变化后的结果来确定。数据仓库中的每个待回流的数据在生产系统中都有目的表,即一个待回流数据要 被送往的生产系统中的数据库中的具体的表。一个待回流数据可能只有一个目的表,也可 能有多个目的表。通过S102就确定了每个待回流数据在生产系统中的目的表,就相当于给所有的 待回流数据打上了标签。S103,按照所确定的每个待回流数据在生产系统中的目的表将待回流数据进行发送。如前所述,通过S102,已经为待回流数据都打好了标签,此时,就是根据每个待回 流数据的标签将它们从内存中分别进行发送,发送到它们在生产系统中的目的表中去。实 际应用中可以分批将待回流数据抽取到内存中,当确定了该批次中的每个待回流数据在生 产系统中的目的表后,将该批次待回流数据从内存发送到相应的目的表中,通过这种方式 可以提高数据回流的效率。可选地,为了提高数据的发送效率,仍然可以通过多个线程对待回流的数据进行 同时发送。进一步地,可以通过如下方式进行首先,按照待回流数据在生产系统中的目的表对所有的待回流数据进行分组。
例如,现在有100个待回流数据,通过S102之后,确定它们在生产系统中共有15 个目的表,编号分别为001 015,那么就将目的表为001的待回流数据归为001组,将目的 表为002的待回流数据归为002组,依次类推,直至将目的表为015的数据归为015组。然后,通过多个线程将待回流数据进行发送,其中每个线程中每个分组的待回流 数据都被发送至生产系统中的同一个目的表。仍然以上面的情况为例,例如可以通过一个5个线程同时发送上述100个待回流 数据,分三批次发送,每个批次发送5个组的数据,例如001 005组的待回流数据作为第 一个批次进行发送。其中线程1可以用来发送001组的待回流数据,这组数据的目的表都 是编号为001的生产系统中的目的表。依此类推,线程5可以用来发送005组的待回流数 据,这组数据的目的表都是编号为005的生产系统中的目的表。当然,每个组的待回流数据的数据流可能是不等的,那么可能有的线程的数据发 送的快,有的发送的慢,应用中可以根据实际情况对每个线程发送的组次进行调节,例如可 以将数据最多的组与数据最少的组放在同一个线程中发送,这样从整体上使各个线程发送 的数据量达到平衡,最终实现在最短的时间内将所有的待发送数据发送完。现有的生产系统的数据库将一个逻辑表数据分布到多个物理表中,这使得数据仓 库中数据的回流面临了极大的挑战,现有的方法是在数据仓库建立与生产系统中对应的多 个物理表,即针对生产系统中每一个分表在数据仓库中建立对应表,首先将数据仓库中大 表的数据分别插入到多个分表里,然后将数据仓库中分表中的数据回流到生产系统中对应 的生产分表里,这导致在初始化的时候要在数据仓库产生大量的分表和配置工作,配置规 则和数量异常庞大,也导致了整体回流时间的延长和复杂度的提高,从而严重的影响了将 数据仓库中的数据同步到生产系统中的效率和简便性。本申请实施例有效解决了回流过程中数据仓库大表中的数据回流到多个生产系 统中小表的问题。本申请实施例所提供的方法使得数据回流过程中,数据仓库表只需要将 待回流数据准备好即可,避免了现有技术中将数据仓库的一个大表分成与生产系统对应的 多个小表的冗余操作,极大的提高了回流的配置效率,也极大的降低了回流耗费的时间。下面以一个网络中的应用为例对本申请实施例所提供的方法进行进一步的说明。例如现在要统计电子商务网站上某个用户在近期可能感兴趣的商品,参见图2,对 统计结果进行数据分流操作具体包括S201,将用户感兴趣的商品放到推荐商品表里,并在数据仓库中生成一个结果表 recommend」tem_list。结果表的结构可以参见表1。表 权利要求
1.一种数据回流的方法,其特征在于,包括将待回流数据从数据仓库抽取到内存中;根据待回流数据的回流规则确定所抽取的每个待回流数据在生产系统中的目的表;按照所确定的每个待回流数据在生产系统中的目的表将待回流数据进行发送。
2.根据权利要求1所述的方法,其特征在于,将待回流数据从数据仓库抽取到内存中 具体为通过多个线程同时将待回流数据从数据仓库抽取到内存中。
3.根据权利要求1所述的方法,其特征在于,按照所确定的每个待回流数据在生产系 统中的目的表将待回流数据进行发送具体为将所有的待回流数据按照在生产系统中的目的表进行分组;通过多个线程将待回流数据按所述分组进行发送,其中每个线程中每个分组中的待回 流数据都被发送至生产系统中的同一个目的表。
4.根据权利要求1 3任意一项所述的方法,其特征在于,所述数据回流规则根据所述 生产系统中的目的表的数目以及所述待回流数据的属性确定。
5.根据权利要求4所述的方法,其特征在于,所述待回流数据的属性包括所述待回流 数据的中数字位的数值或者所述待回流数据某个字符串类型字段某一位或者几位的值。
6.一种数据回流的装置,其特征在于,包括抽取单元,用于将待回流数据从数据仓库抽取到内存中;确定单元,用于根据待回流数据的回流规则确定所抽取的每个待回流数据在生产系统 中的目的表;分发单元,用于按照所确定的每个待回流数据在生产系统中的目的表将待回流数据进 行发送。
7.根据权利要求6所述的装置,其特征在于,所述抽取单元,具体通过多个线程同时将 待回流数据从数据仓库抽取到内存中。
8.根据权利要求6所述的装置,其特征在于,所述分发单元包括分组子单元,用于将所有的待回流数据按照在生产系统中的目的表进行分组;发送子单元,用于通过多个线程将待回流数据按所述分组进行发送,其中每个线程中 每个分组中的待回流数据都被发送至生产系统中的同一个目的表。
9.根据权利要求6 8任意一项所述的装置,其特征在于,所述数据回流规则根据所述 生产系统中的目的表的数目以及所述待回流数据的属性确定。
10.根据权利要求9所述的装置,其特征在于,所述待回流数据的属性包括所述待回 流数据的中数字位的数值或者所述待回流数据某个字符串类型字段某一位或者几位的值。
全文摘要
本申请实施例公开了一种数据回流的方法和装置。其中,所述方法包括将待回流数据从数据仓库抽取到内存中;根据数据回流规则确定所抽取的每个待回流数据在生产系统中的目的表;按照所确定的每个待回流数据在生产系统中的目的表将待回流数据进行发送。本申请实施例有效解决了回流过程中数据仓库大表中的数据回流到多个生产系统中小表的问题。本申请实施例所提供的方法使得数据回流过程中,数据仓库表只需要将待回流数据准备好即可,避免了现有技术中将数据仓库的一个大表分成与生产系统对应的多个小表的冗余操作,极大的提高了回流的配置效率,也极大的降低了回流耗费的时间。
文档编号G06F17/30GK102073664SQ20091024600
公开日2011年5月25日 申请日期2009年11月24日 优先权日2009年11月24日
发明者李学升 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1