CN102043789A - 一种更新数据表的方法和装置 - Google Patents
一种更新数据表的方法和装置 Download PDFInfo
- Publication number
- CN102043789A CN102043789A CN2009101807464A CN200910180746A CN102043789A CN 102043789 A CN102043789 A CN 102043789A CN 2009101807464 A CN2009101807464 A CN 2009101807464A CN 200910180746 A CN200910180746 A CN 200910180746A CN 102043789 A CN102043789 A CN 102043789A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- subregion
- incremental data
- incremental
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种更新数据表的方法,包括以下步骤:按照预定周期由生产库中提取增量交易数据,并存储至增量数据表中;按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照所述预定规则预先划分的不同范围分区;根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。本申请实施例能够快速、低消耗地将增量数据更新到存储历史交易数据的数据表中。相应地,本申请实施例还公开了应用上述方法的装置。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种更新数据表的方法和装置。
背景技术
随着计算机技术的发展和企业对信息处理的需求,数据仓库技术的研究和应用受到了广泛的关注。作为一种面向主题的、集成的、不可更新的、随时间不断变化的数据集合,数据仓库从业务处理系统获得数据,以星型模型和雪花模型进行数据组织,为用户提供各种从数据中获取信息和知识的手段,用于支持企业或组织的决策分析处理。
在数据仓库环境中,会存在一些用于保留历史数据的数据表,随着业务的发展,数据表中的历史数据会越来越多。另外,相对于当前数据表有变化的增量数据也会越来对多,上述变化包括新增和修改,例如,当天新产生的交易,或者在当天有修改状态的交易。上述增量数据可以是当天生成的,也可以是历史上某一天生成而在当天修改的。为了保证数据仓库的实时性,需要使用增量数据更新数据表。
以数据仓库oracle为例,RAC(Real Application Clusters,真正应用集群)平台可以通过交易表保留上亿条历史交易信息,并把当天产生的交易数据更新到交易表中。如果历史上某天产生的交易当天付款或者改变交易状态,需要在历史表找到上述交易的记录,更新付款金额、付款状态等信息;如果是当天新产生的交易,则直接将交易信息添加到交易表中。具体地,可以将每天产生的增量数据放到delta表里,用merge语句去更新交易表,如下所示:
Merge into交易表
Using delta
On(delta.交易id=交易表.交易id)
When matched then update set交易表.金额=delta.金额
When not matched then insert values(delta.交易id,delta.金额);
在实现本申请的过程中,发明人发现现有技术至少存在如下问题:
现有技术根据所有的增量数据更新交易表,由于每天产生的增量数据有上千万条,并且分布不均(大部分增量数据的交易时间在最近几天,少部分增量数据可能对应几年前产生的交易),时间跨度大(可以长达几年),如果直接用merge语句去更新存在几十亿条交易记录的交易表,不仅耗时,而且消耗资源,需要读取几年内的数据,再更新匹配到的交易记录,在极端情况下可能只更新2条数据,却要扫描多年的数据文件,会造成极大的资源浪费。
发明内容
本申请实施例提供一种更新数据表的方法和装置,能够快速、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中。
本申请实施例提出一种更新数据表的方法,包括以下步骤:
按照预定周期由生产库中提取增量交易数据,并存储至增量数据表中;
按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照所述预定规则预先划分的不同范围分区;
根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
优选地,所述的方法,还包括:
使用所述增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引。
优选地,所述根据所述增量数据中的各个数据分区,分别更新所述数据表中对应的范围分区,具体包括:
根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
如果匹配成功,则使用所述增量数据更新所述范围分区内匹配成功的交易信息;
如果匹配不成功,则将所述增量数据添加到所述范围分区内。
优选地,所述根据所述增量数据中的各个数据分区,分别更新所述数据表中对应的范围分区,具体包括:
根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
如果匹配成功,则将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;
如果匹配不成功,则直接将所述增量数据添加到所述范围分区内。
优选地,所述按照预定规则将增量数据表划分为至少两个数据分区,具体包括:
根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区,或
根据交易类型将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区,或
根据交易创建地域将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区,或
根据交易实现方式将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易实现方式预先划分的不同范围分区,或
根据交易额度将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易额度预先划分的不同范围分区。
本申请实施例还提出一种更新数据表的装置,包括:
增量数据提取模块,用于按照预定周期由生产库中提取增量交易数据,并存储至增量数据表中;
分区模块,用于按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照所述预定规则预先划分的不同范围分区;
更新模块,用于根据所述分区模块划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
优选地,所述的装置,还包括:
索引模块,用于使用所述增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供所述更新模块使用。
优选地,所述更新模块,具体包括:
匹配子模块,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
更新子模块,用于在所述匹配子模块匹配成功时,使用所述增量数据更新所述范围分区内匹配成功的交易信息;
添加子模块,用于在所述匹配子模块匹配不成功时,将所述增量数据添加到所述范围分区内。
优选地,所述更新模块,具体包括:
匹配子模块,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
修改子模块,用于在所述匹配子模块匹配成功时,将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;
添加子模块,用于在所述匹配子模块匹配不成功时,将所述增量数据添加到所述范围分区内。
优选地,所述分区模块,具体用于根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区,或
根据交易类型将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区,或
根据交易创建地域将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区,或
根据交易实现方式将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易实现方式预先划分的不同范围分区,或
根据交易额度将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易额度预先划分的不同范围分区。
本申请实施例包括以下优点,因为将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对本申请实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一中的一种更新数据表的方法流程图;
图2为本申请实施例二中的一种更新数据表的方法流程图;
图3为本申请实施例三中的一种更新数据表的方法流程图;
图4为本申请实施例四中的一种更新数据表的方法流程图;
图5为本申请实施例五中的一种更新数据表的方法流程图;
图6为本申请实施例六中的一种更新数据表的方法流程图;
图7为本申请实施例七中的一种更新数据表的装置结构示意图;
图8为本申请实施例八中的一种更新数据表的装置结构示意图;
图9为本申请实施例九中的一种更新数据表的装置结构示意图;
图10为本申请实施例十中的一种更新数据表的装置结构示意图;
图11为本申请实施例十一中的一种更新数据表的装置结构示意图;
图12为本申请实施例十二中的一种更新数据表的装置结构示意图。
具体实施方式
本申请实施例的主要思想包括,依据最低消耗和最短时间的原则,对数据表和增量数据对应地划分范围分区(Partition),采用不同的数据表更新规则分段更新数据表,用最低的资源消耗去完成数据更新,并保证更新结果的准确性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例一中的一种更新数据表的方法流程图,包括以下步骤:
步骤100,按照预定周期由生产库中提取增量交易数据,并存储至增量数据表中;
网络交易平台产生的交易数据保存于生产库中,按照预定的周期从生产库中提取新增或新修改的交易数据,其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中。当然本申请对预定周期的具体取值并不做限定。
步骤101,按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照相同预定规则预先划分的不同范围分区。
其中,数据表用于存储自创建交易以来产生的交易数据,增量数据表用于存储按照预定周期由生产库中提取的交易数据,其中的增量数据是相对于已经存在于数据表中的交易数据发生变化的数据信息。若预定周期为1天,则每天从生产库中提取增量数据,并将该等增量数据添加入增量数据表中。增量数据可以是当天生成的数据信息,也可以是之前生成且在当天修改的数据信息。
具体地,可以根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区;也可以根据交易类型将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区;还可以根据交易创建地域将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区。
步骤102,根据增量数据表中的各个数据分区的增量数据,分别更新数据表中对应的范围分区。
具体地,可以根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;如果匹配成功,则使用所述增量数据更新所述范围分区内匹配成功的交易信息;如果匹配不成功,则将所述增量数据添加到所述范围分区内。
另外,也可以根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;如果匹配成功,则将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;如果匹配不成功,则直接将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为将增量数据表和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
本申请上述实施例提供了一种更新数据表的方法,以下结合具体应用场景对上述更新数据表的方法进行具体、详细的描述。
如图2所示,为本申请实施例二中的一种更新数据表的方法流程图,包括以下步骤:
步骤201,根据交易创建时间将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区。
在oracle RAC数据仓库平台中,可以按照交易创建时间对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易创建时间进行范围分区。大部分增量数据对应的交易创建时间都是最近3个月或更短的时间,只有小部分增量数据对应的交易创建时间是3个月之前或一年前创建的,因此,可以将每天的增量数据分为两部分,即交易创建时间在最近3个月内的数据分区和交易创建时间在最近3个月之前的数据分区。当然,本申请实施例也可以按照交易创建时间将增量数据表划分为两个以上的数据分区,并相应地按照相同的规则将数据表预先划分为两个以上的范围分区。
步骤202,使用增量数据的交易标识作为增量数据的索引,使用数据表的交易标识作为数据表的索引。
具体地,可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
步骤203,根据各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识,如果匹配成功,则执行步骤204;如果匹配不成功,则执行步骤205。
步骤204,使用增量数据更新相应范围分区内匹配成功的交易信息。
步骤205,将增量数据添加到相应范围分区内。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易创建时间在最近3个月内的数据,由于该数据多达千万条,可以使用hash join操作关联整个数据表,并限制交易创建时间在最近3个月内,只扫描少部分分区的数据,防止全表扫描,使用到的merge语句,如下所示:
对于增量数据表delta中交易创建时间在最近3个月之前的数据,由于数据量很少,只有几千或上万条,可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。使用到的merge语句,如下所示:
需要说明的是,本申请实施例方法可以根据实际需要对各个步骤顺序进行调整。
本申请实施例包括以下优点,因为按照交易创建时间将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
本申请上述实施例中,按照交易创建时间将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区;本申请实施例还可以按照交易类型将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区。
如图3所示,为本申请实施例三中的一种更新数据表的方法流程图,包括以下步骤:
步骤301,使用增量数据的交易标识作为增量数据的索引,使用数据表的交易标识作为数据表的索引。
在oracle RAC数据仓库平台中,可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
步骤302,根据交易类型将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区。
具体地,可以按照交易类型对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易类型进行范围分区。大部分增量数据对应的交易类型都是主营业务,只有小部分增量数据对应的交易类型是副营业务,因此,可以将每天的增量数据分为两部分,即交易类型为主营业务的数据分区和交易类型为副营业务的数据分区。以某个主营电子产品的网站为例,如果该网站还经营文体用品,但业务量相对于主营的电子产品较小,因此,可以将该网站的数据表和增量数据均按照电子产品和文体用品的交易类型分别划分为不同的范围分区和数据分区。
当然,本申请实施例并不限定上述划分数据分区和范围分区的方式,也可以按照交易类型将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
步骤303,根据各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识,如果匹配成功,则执行步骤304;如果匹配不成功,则执行步骤305。
步骤304,将相应范围分区内匹配成功的交易信息删除,将增量数据添加到所述范围分区内。
步骤305,直接将增量数据添加到相应范围分区内。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易类型为主营业务的数据,由于该数据多达千万条,可以使用hash join操作关联整个数据表,并限制交易类型为主营业务,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易类型为副营业务的数据,由于数据量很少,只有几千或上万条,可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
需要说明的是,本申请实施例方法可以根据实际需要对各个步骤顺序进行调整。
本申请实施例包括以下优点,因为按照交易类型将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
本申请上述实施例中,按照交易创建时间将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区;本申请实施例还可以按照交易类型、交易实现方式和交易额度将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区。
如图4所示,为本申请实施例四中的一种更新数据表的方法流程图,包括以下步骤:
步骤401,根据交易创建地域将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区。
在oracle RAC数据仓库平台中,可以按照交易创建地域对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易创建时间进行范围分区。大部分增量数据对应的交易创建地域都是同城,只有小部分增量数据对应的交易创建时间是异地,因此,可以将每天的增量数据分为两部分,即交易创建地域为同城的数据分区和交易创建地域为异地的数据分区。当然,本申请实施例也可以按照交易创建地域将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
步骤402,使用增量数据的交易标识作为增量数据的索引,使用数据表的交易标识作为数据表的索引。
具体地,可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
步骤403,根据各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识,如果匹配成功,则执行步骤404;如果匹配不成功,则执行步骤405。
步骤404,使用增量数据更新范围分区内匹配成功的交易信息。
步骤405,将增量数据添加到范围分区内。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易创建地域为同城的数据,由于该数据多达千万条,可以使用hash join操作关联整个数据表,并限制交易创建地域为同城,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易创建地域为异地的数据,由于数据量很少,只有几千或上万条,可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
需要说明的是,本申请实施例方法可以根据实际需要对各个步骤顺序进行调整。
本申请实施例包括以下优点,因为按照交易创建地域将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图5所示,为本申请实施例五中的一种更新数据表的方法流程图,包括以下步骤:
步骤501,根据交易实现方式将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易实现方式预先划分的不同范围分区。
在oracle RAC数据仓库平台中,可以按照交易实现方式对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易实现方式进行范围分区。大部分增量数据对应的交易实现方式都是邮寄,只有小部分增量数据对应的交易实现方式是当面交易,因此,可以将每天的增量数据分为两部分,即交易实现方式为邮寄的数据分区和交易实现方式为当面交易的数据分区。当然,本申请实施例也可以按照交易实现方式将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
步骤502,使用增量数据的交易标识作为增量数据的索引,使用数据表的交易标识作为数据表的索引。
具体地,可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
步骤503,根据各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识,如果匹配成功,则执行步骤504;如果匹配不成功,则执行步骤505。
步骤504,使用增量数据更新相应范围分区内匹配成功的交易信息。
步骤505,将增量数据添加到相应范围分区内。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易实现方式为邮寄的数据,由于该数据多达千万条,可以使用hash join操作关联整个数据表,并限制交易实现方式为邮寄,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易实现方式为当面交易的数据,由于数据量很少,只有几千或上万条,可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
需要说明的是,本申请实施例方法可以根据实际需要对各个步骤顺序进行调整。
本申请实施例包括以下优点,因为按照交易实现方式将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图6所示,为本申请实施例六中的一种更新数据表的方法流程图,包括以下步骤:
步骤601,根据交易额度将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易额度预先划分的不同范围分区。
在oracle RAC数据仓库平台中,可以按照交易额度对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易额度进行范围分区。大部分增量数据对应的交易额度大于预设数值,只有小部分增量数据对应的交易额度不大于预设数值,因此,可以将每天的增量数据分为两部分,即交易额度大于预设数值的数据分区和交易额度不大于预设数值的数据分区。当然,本发明实施例也可以按照交易额度将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
步骤602,使用增量数据的交易标识作为增量数据的索引,使用数据表的交易标识作为数据表的索引。
具体地,可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
步骤603,根据各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识,如果匹配成功,则执行步骤604;如果匹配不成功,则执行步骤605。
步骤604,使用增量数据更新相应范围分区内匹配成功的交易信息。
步骤605,将增量数据添加到相应范围分区内。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易额度大于预设数值的数据,由于该数据多达千万条,可以使用hash join操作关联整个数据表,并限制交易额度大于预设数值,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易额度不大于预设数值的数据,由于数据量很少,只有几千或上万条,可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
需要说明的是,本申请实施例方法可以根据实际需要对各个步骤顺序进行调整。
本申请实施例包括以下优点,因为按照交易额度将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
本申请上述实施例提供了更新数据表的方法和应用场景,相应地,本申请还通过以下实施例提供了应用上述方法的装置。
如图7所示,为本申请实施例七中的一种更新数据表的装置结构示意图,包括:
增量数据提取模块700,用于按照预定周期由生产库中提取交易数据,并存储至增量数据表中。
其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中,然后由其他模块更新至数据表中。当然本申请对预定周期的具体取值并不做限定。
分区模块710,用于按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照相同预定规则预先划分的不同范围分区。
其中,数据表用于存储自创建交易以来产生的交易数据,增量数据为相对于已经存在于数据表中的交易数据发生变化的数据信息,可以使当天生成的数据信息,也可以是之前生成且在当天修改的数据信息。
具体地,分区模块710可以根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区;分区模块710也可以根据交易类型将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区;分区模块710还可以根据交易创建地域将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区。
更新模块720,用于根据分区模块710划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
具体地,更新模块720可以根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;如果匹配成功,则使用所述增量数据更新所述范围分区内匹配成功的交易信息;如果匹配不成功,则将所述增量数据添加到所述范围分区内。
另外,更新模块720也可以根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;如果匹配成功,则将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;如果匹配不成功,则直接将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图8所示,为本申请实施例八中的一种更新数据表的装置结构示意图,包括:
增量数据提取模块800,用于按照预定周期由生产库中提取交易数据,并存储至增量数据表中。
其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中,然后由其他模块更新至数据表中。当然本申请对预定周期的具体取值并不做限定。
分区模块810,用于根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区。
具体地,分区模块810可以按照交易创建时间对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易创建时间进行范围分区。大部分增量数据对应的交易创建时间都是最近3个月或更短的时间,只有小部分增量数据对应的交易创建时间是3个月之前或一年前创建的,因此,分区模块810可以将每天的增量数据分为两部分,即交易创建时间在最近3个月内的数据分区和交易创建时间在最近3个月之前的数据分区。当然,本发明实施例也可以按照交易创建时间将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
上述分区模块810是以上所述装置中负责根据交易创建时间将所述增量数据划分为至少两个数据分区的部分,可以是软件、硬件或两者的结合。
索引模块820,用于使用增量数据的交易标识作为增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供更新模块830使用。
具体地,索引模块820可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
上述索引模块820是以上所述装置中负责使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引的部分,可以是软件、硬件或两者的结合。
更新模块830,用于根据分区模块810划分的各个数据分区的增量数据,分别更新数据表中对应的范围分区。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易创建时间在最近3个月内的数据,由于该数据多达千万条,更新模块830可以使用hash join操作关联整个数据表,并限制交易创建时间在最近3个月内,只扫描少部分分区的数据,防止全表扫描,使用到的merge语句,如下所示:
对于增量数据表delta中交易创建时间在最近3个月之前的数据,由于数据量很少,只有几千或上万条,更新模块830可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。使用到的merge语句,如下所示:
上述更新模块830是以上所述装置中负责根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区的部分,可以是软件、硬件或两者的结合。
上述更新模块830,具体包括:
匹配子模块831,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识。
更新子模块832,用于在匹配子模块831匹配成功时,使用所述增量数据更新所述范围分区内匹配成功的交易信息。
添加子模块833,用于在匹配子模块831匹配不成功时,将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为按照交易创建时间将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图9所示,为本申请实施例九中的一种更新数据表的装置结构示意图,包括:
增量数据提取模块900,用于按照预定周期由生产库中提取交易数据,并存储至增量数据表中。
其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中,然后由其他模块更新至数据表中。当然本申请对预定周期的具体取值并不做限定。
分区模块910,用于根据交易类型将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区。
分区模块910可以按照交易类型对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易类型进行范围分区。大部分增量数据对应的交易类型都是主营业务,只有小部分增量数据对应的交易类型是副营业务,因此,分区模块910可以将每天的增量数据分为两部分,即交易类型为主营业务的数据分区和交易类型为副营业务的数据分区。以某个主营电子产品的网站为例,如果该网站还经营文体用品,但业务量相对于主营的电子产品较小,因此,可以将该网站的数据表和增量数据均按照电子产品和文体用品的交易类型分别划分为不同的范围分区和数据分区。
当然,本发明实施例并不限定上述划分数据分区和范围分区的方式,也可以按照交易类型将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
上述分区模块910是以上所述装置中负责根据交易类型将增量数据划分为至少两个数据分区的部分,可以是软件、硬件或两者的结合。
索引模块920,用于使用所述增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供更新模块930使用。
具体地,索引模块920可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
上述索引模块920是以上所述装置中负责使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引的部分,可以是软件、硬件或两者的结合。
更新模块930,用于根据分区模块910划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易类型为主营业务的数据,由于该数据多达千万条,更新模块930可以使用hash join操作关联整个数据表,并限制交易类型为主营业务,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易类型为副营业务的数据,由于数据量很少,只有几千或上万条,更新模块930可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
上述更新模块930是以上所述装置中负责根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区的部分,可以是软件、硬件或两者的结合。
上述更新模块930,具体包括:
匹配子模块931,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
修改子模块932,用于在匹配子模块931匹配成功时,将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;
添加子模块933,用于在匹配子模块931匹配不成功时,将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为按照交易类型将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图10所示,为本申请实施例十中的一种更新数据表的装置结构示意图,包括:
增量数据提取模块1000,用于按照预定周期由生产库中提取交易数据,并存储至增量数据表中。
其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中,然后由其他模块更新至数据表中。当然本申请对预定周期的具体取值并不做限定。
分区模块1010,用于根据交易创建地域将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区。
具体地,分区模块1010可以按照交易创建地域对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易创建时间进行范围分区。大部分增量数据对应的交易创建地域都是同城,只有小部分增量数据对应的交易创建时间是异地,因此,分区模块1010可以将每天的增量数据分为两部分,即交易创建地域为同城的数据分区和交易创建地域为异地的数据分区。当然,本发明实施例也可以按照交易创建地域将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
上述分区模块1010是以上所述装置中负责根据交易创建地域将增量数据划分为至少两个数据分区的部分,可以是软件、硬件或两者的结合。
索引模块1020,用于使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供更新模块1030使用。
上述索引模块1020是以上所述装置中负责使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引的部分,可以是软件、硬件或两者的结合。
具体地,索引模块1020可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
更新模块1030,用于根据分区模块1010划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易创建地域为同城的数据,由于该数据多达千万条,更新模块1030可以使用hash join操作关联整个数据表,并限制交易创建地域为同城,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易创建地域为异地的数据,由于数据量很少,只有几千或上万条,更新模块1030可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
上述更新模块1030是以上所述装置中负责根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区的部分,可以是软件、硬件或两者的结合。
上述更新模块1030,具体包括:
匹配子模块1031,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识。
更新子模块1032,用于在匹配子模块1031匹配成功时,使用所述增量数据更新所述范围分区内匹配成功的交易信息。
添加子模块1033,用于在匹配子模块1031匹配不成功时,将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为按照交易创建地域将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图11所示,为本申请实施例十一中的一种更新数据表的装置结构示意图,包括:
增量数据提取模块1100,用于按照预定周期由生产库中提取交易数据,并存储至增量数据表中。
其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中,然后由其他模块更新至数据表中。当然本申请对预定周期的具体取值并不做限定。
分区模块1110,用于根据交易实现方式将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易实现方式预先划分的不同范围分区。
分区模块1110可以按照交易实现方式对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易实现方式进行范围分区。大部分增量数据对应的交易实现方式都是邮寄,只有小部分增量数据对应的交易实现方式是当面交易,因此,分区模块1110可以将每天的增量数据分为两部分,即交易实现方式为邮寄的数据分区和交易实现方式为当面交易的数据分区。
当然,本发明实施例并不限定上述划分数据分区和范围分区的方式,也可以按照交易类型将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
上述分区模块1110是以上所述装置中负责根据交易实现方式将增量数据划分为至少两个数据分区的部分,可以是软件、硬件或两者的结合。
索引模块1120,用于使用所述增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供更新模块1130使用。
具体地,索引模块1120可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
上述索引模块1120是以上所述装置中负责使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引的部分,可以是软件、硬件或两者的结合。
更新模块1130,用于根据分区模块1110划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易实现方式为邮寄的数据,由于该数据多达千万条,更新模块1130可以使用hash join操作关联整个数据表,并限制交易实现方式为邮寄,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易实现方式为当面交易的数据,由于数据量很少,只有几千或上万条,更新模块1130可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
上述更新模块1130是以上所述装置中负责根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区的部分,可以是软件、硬件或两者的结合。
上述更新模块1130,具体包括:
匹配子模块1131,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
修改子模块1132,用于在匹配子模块1131匹配成功时,将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;
添加子模块1133,用于在匹配子模块1131匹配不成功时,将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为按照交易实现方式将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
如图12所示,为本申请实施例十二中的一种更新数据表的装置结构示意图,包括:
增量数据提取模块1200,用于按照预定周期由生产库中提取交易数据,并存储至增量数据表中。
其中,可以设定预定周期为1天,则增量数据提取模块每天都会从生产库中提取交易数据,并存储至增量数据表中,然后由其他模块更新至数据表中。当然本申请对预定周期的具体取值并不做限定。
分区模块1210,用于根据交易额度将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易额度预先划分的不同范围分区。
具体地,分区模块1210可以按照交易额度对数据表进行每天的范围分区;对于每天新产生或修改的增量数据,也同样可以按照交易额度进行范围分区。大部分增量数据对应的交易额度大于预设数值,只有小部分增量数据对应的交易额度不大于预设数值,因此,分区模块1210可以将每天的增量数据分为两部分,即交易额度大于预设数值的数据分区和交易额度不大于预设数值的数据分区。当然,本发明实施例也可以按照交易额度将增量数据划分为两个以上的数据分区,并相应地将数据表预先划分为两个以上的范围分区。
上述分区模块1210是以上所述装置中负责根据交易额度将增量数据划分为至少两个数据分区的部分,可以是软件、硬件或两者的结合。
索引模块1220,用于使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供更新模块1230使用。
上述索引模块1220是以上所述装置中负责使用增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引的部分,可以是软件、硬件或两者的结合。
具体地,索引模块1220可以使用增量数据的交易id和数据表的交易id分别作为增量数据的索引和数据表的索引,上述索引用于对增量数据和数据表进行匹配。通过创建索引的方式可以加快查询速度,高效地更新数据表中的数据。
更新模块1230,用于根据分区模块1210划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
具体地,不同范围分区内的数据表可以采用不同的更新方式,对于增量数据表delta中交易额度大于预设数值的数据,由于该数据多达千万条,更新模块1230可以使用hash join操作关联整个数据表,并限制交易额度大于预设数值,只扫描少部分分区的数据,防止全表扫描。
对于增量数据表delta中交易额度不大于预设数值的数据,由于数据量很少,只有几千或上万条,更新模块1230可用索引去快速定位记录,对相关联的数据表中的数据进行nest loop操作,由于数据量小,查询非常快。
上述更新模块1230是以上所述装置中负责根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区的部分,可以是软件、硬件或两者的结合。
上述更新模块1230,具体包括:
匹配子模块1231,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识。
更新子模块1232,用于在匹配子模块1231匹配成功时,使用所述增量数据更新所述范围分区内匹配成功的交易信息。
添加子模块1233,用于在匹配子模块1231匹配不成功时,将所述增量数据添加到所述范围分区内。
本申请实施例包括以下优点,因为按照交易额度将增量数据和数据表分别对应地划分为至少两个数据分区和范围分区,并使用不同数据分区内的增量数据更新数据表中相应的范围分区,能够快速、高效、低消耗地将每天产生的增量数据更新到存储历史交易数据的数据表中,并保证更新结果的准确性。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种更新数据表的方法,其特征在于,包括以下步骤:
按照预定周期由生产库中提取增量交易数据,并存储至增量数据表中;
按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照所述预定规则预先划分的不同范围分区;
根据各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
2.如权利要求1所述的方法,其特征在于,还包括:
使用所述增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引。
3.如权利要求2所述的方法,其特征在于,所述根据所述增量数据中的各个数据分区,分别更新所述数据表中对应的范围分区,具体包括:
根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
如果匹配成功,则使用所述增量数据更新所述范围分区内匹配成功的交易信息;
如果匹配不成功,则将所述增量数据添加到所述范围分区内。
4.如权利要求2所述的方法,其特征在于,所述根据所述增量数据中的各个数据分区,分别更新所述数据表中对应的范围分区,具体包括:
根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
如果匹配成功,则将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;
如果匹配不成功,则直接将所述增量数据添加到所述范围分区内。
5.如权利要求1所述的方法,其特征在于,所述按照预定规则将增量数据表划分为至少两个数据分区,具体包括:
根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区,或
根据交易类型将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区,或
根据交易创建地域将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区,或
根据交易实现方式将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易实现方式预先划分的不同范围分区,或
根据交易额度将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易额度预先划分的不同范围分区。
6.一种更新数据表的装置,其特征在于,包括:
增量数据提取模块,用于按照预定周期由生产库中提取增量交易数据,并存储至增量数据表中;
分区模块,用于按照预定规则将增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照所述预定规则预先划分的不同范围分区;
更新模块,用于根据所述分区模块划分的各个数据分区的增量数据,分别更新所述数据表中对应的范围分区。
7.如权利要求6所述的装置,其特征在于,还包括:
索引模块,用于使用所述增量数据的交易标识作为所述增量数据的索引,使用所述数据表的交易标识作为所述数据表的索引,供所述更新模块使用。
8.如权利要求7所述的装置,其特征在于,所述更新模块,具体包括:
匹配子模块,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
更新子模块,用于在所述匹配子模块匹配成功时,使用所述增量数据更新所述范围分区内匹配成功的交易信息;
添加子模块,用于在所述匹配子模块匹配不成功时,将所述增量数据添加到所述范围分区内。
9.如权利要求7所述的装置,其特征在于,所述更新模块,具体包括:
匹配子模块,用于根据所述各个数据分区的增量数据的交易标识,分别匹配对应的范围分区内的数据表的交易标识;
修改子模块,用于在所述匹配子模块匹配成功时,将所述范围分区内匹配成功的交易信息删除,将所述增量数据添加到所述范围分区内;
添加子模块,用于在所述匹配子模块匹配不成功时,将所述增量数据添加到所述范围分区内。
10.如权利要求6所述的装置,其特征在于,
所述分区模块,具体用于根据交易创建时间将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建时间预先划分的不同范围分区,或
根据交易类型将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易类型预先划分的不同范围分区,或
根据交易创建地域将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易创建地域预先划分的不同范围分区,或
根据交易实现方式将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易实现方式预先划分的不同范围分区,或
根据交易额度将所述增量数据表划分为至少两个数据分区,每个增量数据分区对应数据表中按照交易额度预先划分的不同范围分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101807464A CN102043789A (zh) | 2009-10-21 | 2009-10-21 | 一种更新数据表的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101807464A CN102043789A (zh) | 2009-10-21 | 2009-10-21 | 一种更新数据表的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102043789A true CN102043789A (zh) | 2011-05-04 |
Family
ID=43909931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101807464A Pending CN102043789A (zh) | 2009-10-21 | 2009-10-21 | 一种更新数据表的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043789A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577474A (zh) * | 2012-08-03 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种数据库的更新方法及系统 |
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN105095484A (zh) * | 2015-08-17 | 2015-11-25 | 北京京东世纪贸易有限公司 | 一种数据拉链方法 |
CN105512313A (zh) * | 2015-12-15 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 一种增量式数据处理的方法和装置 |
CN106339209A (zh) * | 2015-07-17 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN106598969A (zh) * | 2015-10-14 | 2017-04-26 | 北京国双科技有限公司 | 数据查询方法和装置 |
CN107291439A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种目标增量数据构建方法及装置 |
CN107451204A (zh) * | 2017-07-10 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
WO2018058627A1 (zh) * | 2016-09-30 | 2018-04-05 | 深圳市华傲数据技术有限公司 | 基于增量的数据存储方法及装置 |
CN107909258A (zh) * | 2017-11-08 | 2018-04-13 | 国网山东省电力公司德州供电公司 | 一种电能表台区识别方法及系统 |
CN108376169A (zh) * | 2018-02-26 | 2018-08-07 | 众安信息技术服务有限公司 | 一种用于联机分析处理的数据处理方法和装置 |
CN108449231A (zh) * | 2018-03-15 | 2018-08-24 | 华青融天(北京)技术股份有限公司 | 一种交易数据的过滤方法、装置及实现装置 |
CN110019436A (zh) * | 2017-07-14 | 2019-07-16 | 北京国双科技有限公司 | 数据导入\导出方法和装置、数据表处理方法和装置 |
CN111198911A (zh) * | 2018-11-19 | 2020-05-26 | 珠海格力电器股份有限公司 | 一种数据提取增量区间的获取方法、数据提取方法 |
-
2009
- 2009-10-21 CN CN2009101807464A patent/CN102043789A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577474B (zh) * | 2012-08-03 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种数据库的更新方法及系统 |
CN103577474A (zh) * | 2012-08-03 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种数据库的更新方法及系统 |
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN106339209A (zh) * | 2015-07-17 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN105095484A (zh) * | 2015-08-17 | 2015-11-25 | 北京京东世纪贸易有限公司 | 一种数据拉链方法 |
CN106598969B (zh) * | 2015-10-14 | 2019-12-03 | 北京国双科技有限公司 | 数据查询方法和装置 |
CN106598969A (zh) * | 2015-10-14 | 2017-04-26 | 北京国双科技有限公司 | 数据查询方法和装置 |
CN105512313B (zh) * | 2015-12-15 | 2019-01-22 | 北京京东尚科信息技术有限公司 | 一种增量式数据处理的方法和装置 |
CN105512313A (zh) * | 2015-12-15 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 一种增量式数据处理的方法和装置 |
CN107291439A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种目标增量数据构建方法及装置 |
CN107291439B (zh) * | 2016-04-13 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 一种目标增量数据构建方法及装置 |
WO2018058627A1 (zh) * | 2016-09-30 | 2018-04-05 | 深圳市华傲数据技术有限公司 | 基于增量的数据存储方法及装置 |
CN107451204A (zh) * | 2017-07-10 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
CN110019436A (zh) * | 2017-07-14 | 2019-07-16 | 北京国双科技有限公司 | 数据导入\导出方法和装置、数据表处理方法和装置 |
CN107909258A (zh) * | 2017-11-08 | 2018-04-13 | 国网山东省电力公司德州供电公司 | 一种电能表台区识别方法及系统 |
CN108376169A (zh) * | 2018-02-26 | 2018-08-07 | 众安信息技术服务有限公司 | 一种用于联机分析处理的数据处理方法和装置 |
CN108449231A (zh) * | 2018-03-15 | 2018-08-24 | 华青融天(北京)技术股份有限公司 | 一种交易数据的过滤方法、装置及实现装置 |
CN108449231B (zh) * | 2018-03-15 | 2020-07-07 | 华青融天(北京)软件股份有限公司 | 一种交易数据的过滤方法、装置及实现装置 |
CN111198911A (zh) * | 2018-11-19 | 2020-05-26 | 珠海格力电器股份有限公司 | 一种数据提取增量区间的获取方法、数据提取方法 |
CN111198911B (zh) * | 2018-11-19 | 2021-05-25 | 珠海格力电器股份有限公司 | 一种数据提取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043789A (zh) | 一种更新数据表的方法和装置 | |
CN104298760B (zh) | 一种应用于数据仓库的数据处理方法和数据处理装置 | |
CN106681739B (zh) | 一种智能合约的自动化生成方法 | |
CN107918621A (zh) | 日志数据处理方法、装置及业务系统 | |
CN103077183A (zh) | 一种分布式顺序表的数据导入方法及其系统 | |
CN105447723A (zh) | 推广系统与推广方法 | |
CN103559301A (zh) | 更新数据的方法、数据库触发器和搜索引擎 | |
CN113468199B (zh) | 索引更新方法及系统 | |
CN105447172A (zh) | 一种Hadoop平台下的数据处理方法和系统 | |
WO2017092444A1 (zh) | 基于Hadoop的日志数据挖掘方法及系统 | |
CN106156070A (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN109885395A (zh) | 一种游戏配置表加载内存优化方法及装置 | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
CN109388636A (zh) | 业务数据插入数据库方法、装置、计算机设备及存储介质 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN107103035A (zh) | 本地表数据更新方法及装置 | |
CN102932416A (zh) | 一种信息流任务的中间数据存储方法、处理方法及装置 | |
CN114860727A (zh) | 拉链表更新方法及装置 | |
CN108959229A (zh) | 基于客户信息的策划报告生成方法、终端及存储介质 | |
CN105468676A (zh) | 一种大数据处理方法 | |
CN110362540B (zh) | 一种数据存储、访客数获取方法及装置 | |
CN102855288A (zh) | 差异数据的处理方法和装置 | |
CN103699627A (zh) | 一种基于Hadoop集群的超大文件并行数据块定位方法 | |
CN103809915A (zh) | 一种磁盘文件的读写方法和装置 | |
CN109582476A (zh) | 数据处理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1154950 Country of ref document: HK |
|
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110504 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1154950 Country of ref document: HK |