[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN111753019B - 一种应用于数据仓库的数据分区方法和装置 - Google Patents

一种应用于数据仓库的数据分区方法和装置 Download PDF

Info

Publication number
CN111753019B
CN111753019B CN201910231836.5A CN201910231836A CN111753019B CN 111753019 B CN111753019 B CN 111753019B CN 201910231836 A CN201910231836 A CN 201910231836A CN 111753019 B CN111753019 B CN 111753019B
Authority
CN
China
Prior art keywords
data
sub
objects
partition
target object
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.)
Active
Application number
CN201910231836.5A
Other languages
English (en)
Other versions
CN111753019A (zh
Inventor
宫敬财
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Wodong Tianjun Information Technology Co Ltd
Priority to CN201910231836.5A priority Critical patent/CN111753019B/zh
Publication of CN111753019A publication Critical patent/CN111753019A/zh
Application granted granted Critical
Publication of CN111753019B publication Critical patent/CN111753019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种应用于数据仓库的数据分区方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:统计目标对象中所存储的数据量,结合预定分区方式,将目标对象中的数据拆分至多个子对象中;根据目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。该实施方式通过将对象中的数据拆分至多个子对象中,减少了原来单个对象中的数据量,且同一条数据记录只出现在唯一的单对象中,使得单对象之间具有相互独立的特点;每个表都具有唯一可以识别的标识,为后续数据读取/写入提供了便利。

Description

一种应用于数据仓库的数据分区方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用于数据仓库的数据分区方法和装置。
背景技术
随着互联网的普及和数字信息技术的飞速发展,几乎每天都能产生海量的电子数据,已经很难衡量现今的社会中存储的电子数据总量。如今不仅产生和存储的电子数据数量庞大,而且数据本身也越来越趋于复杂化,对于海量数据的处理,越来越受到关注。
现有技术通常采用拉链的方式,记录一个事物从开始到当前状态的所有变化。在进行数据拉链操作时,需将当日的增量数据(包括新产生的数据或发生变化的数据)与当前拉链表活动分区中的数据进行比对:如果增量数据存在活动(active)分区中,则需要对活动分区中的相应数据进行更新,并且需要把被更新的历史数据保存到无效(expired)分区中;否则,直接将该增量数据插入当前的拉链表中。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
当数据量累计到非常大的时候,活动分区每日进行拉链处理时,就会消耗大量计算资源,开销较大,且任务运行时间长,影响下游应用方对数据的使用。
发明内容
有鉴于此,本发明实施例提供一种应用于数据仓库的数据分区方法和装置,至少能够解决现有技术中当订单数据量积累到非常大的时候,活动区的分区每日进行拉链处理,就会消耗大量计算资源和时间。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用于数据仓库的数据分区方法,包括:
统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;
根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
可选的,在所述结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中之前,还包括:统计所述目标对象所存储的数据量,结合预定分配至子对象中的数据量,确定所需创建的子对象数量。
可选的,所述统计目标对象所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中,包括:确定所述目标对象中数据的主键信息,用所述主键信息对所述子对象的总数量取余数,以将数据存储至与所述余数相应的子对象中。
可选的,在所述建立子对象标识与相应所存储的数据之间的对应关系之后,还包括:
接收增量数据,根据所述增量数据的主键信息,确定与所述增量数据相应的子对象、以及所确定的子对象中与所述增量数据相应的历史数据;
若所述增量数据与所述历史数据不同,则将所述增量数据作为最新数据记录并进行记录更新。
为实现上述目的,根据本发明实施例的另一方面,提供了一种应用于数据仓库的数据分区装置,包括:
数据拆分模块,用于统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;
标识建立模块,用于根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
可选的,所述数据拆分模块,还用于:统计所述目标对象所存储的数据量,结合预定分配至子对象中的数据量,确定所需创建的子对象数量。
可选的,所述数据拆分模块,用于:确定所述目标对象中数据的主键信息,用所述主键信息对所述子对象的总数量取余数,以将数据存储至与所述余数相应的子对象中。
可选的,还包括数据更新模块,用于:接收增量数据,根据增量数据的主键信息,确定与所述增量数据相应的子对象、以及所确定的子对象中与所述增量数据相应的历史数据;若所述增量数据与所述历史数据不同,则将所述增量数据作为最新数据记录并进行记录更新。
为实现上述目的,根据本发明实施例的再一方面,提供了一种应用于数据仓库的数据分区电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的应用于数据仓库的数据分区方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的应用于数据仓库的数据分区方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:在订单等交易型的数据量几乎都为海量的场景中,通过来源表数据的标识,在当前分区的基础上追加分区,可以降低单个区域中的数据存储量;对所拆分的拉链程序可以同时并行处理,可以降低拉链操作时候的计算资源消耗,缩短计算时间,提升了数据加工效率,实现优化设计,实现应用于数据仓库海量数据高效、高性能的拉链数据处理目的。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种应用于数据仓库的数据分区方法的主要流程示意图;
图2是现有技术和本方案拉链表缓存数据表的比较示意图;
图3是根据本发明实施例的一种可选的应用于数据仓库的数据分区方法的流程示意图;
图4是具体举例分析示意图;
图5是根据本发明实施例的一种应用于数据仓库的数据分区装置的主要模块示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明实施例所处理的数据,可以是交易数据(例如订单类),也可以是用户、产品等类的主数据。其中,交易数据的数据量增长较快,一般情况下都会有海量数据的积累;但主数据,虽然数据量的增长较之交易数据慢,但依然可能会有海量数据的积累。
以在书籍中增加目录为例,虽然不是技术上的难点,但其创造性方式会给阅读带来巨大的体验提升。本发明类似于该方式,增加分区可能较为容易,但这种方式是一种创新性的应用,其所带来的性能提升也是极为明显的。
对于本发明涉及到的词语,做解释如下:
数据仓库:是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建的,对需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
ETL:数据抽取、转换、清洗、装载的过程,是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表。
拉链表:是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,就是历史记录,用以记录一个事物从开始,一直到当前状态的所有变化的信息。拉链表是数据仓库中处理源数据的一种重要的设计方法,也是加工主题域模型的数据基础。
分表:企业开发中经常会遇见某个业务使用频繁,导致数据量特别大,而数据库的单表承载的数据量有限。解决这种业务就需要对数据进行拆分,也叫sharding,将一个表拆分多个表,或者多个数据库。
拆分因子:也就是需要按照什么维度拆分,例如用户维度、商户维度。拆分因子的选取和业务强绑定,需要重点考虑。
参见图1,示出的是本发明实施例提供的一种应用于数据仓库的数据分区方法的主要流程图,包括如下步骤:
S101:统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;
S102:根据所述目标对象的标识和每个子对象中所存储的数据,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
上述实施方式中,对于步骤S101,目标对象,可以为数据表、数据文件、数据仓库等可以存储数据的对象,本发明主要以数据表为例进行说明。
所拆分的子对象,其结构可以与目标对象相同,也可以不同。例如,订单表的表头包括订单号、交易日期、发货日期,而分表的表头可以为订单号、交易日期、发货日期,也可以仅包括订单号、交易日期。
对于拉链表,其字段可以只是来源表字段的一部分,但通常来讲是需要一一对应的,因为需要记录一个事件从开始到当前状态的所有变化信息,是有数据需求的。因此,本发明中子对象的结构与目标对象一致。
将目标对象中的数据拆分至子对象的方式,可以有:
1)子对象有编号或排序:以数据的主键信息为被除数,子对象总数量为除数,对主键信息和子对象的总数量进行取模操作(即取余数),以将该数据存储至与该余数相应的子对象中。
例如,源表包含1280个数据,分表有128个,id%128会返回0到127之间共128个数字,此数字可以作为分表的序号,且每张分表仅包含10个数据。进一步的,还可以对应于64个分区,或者设置64个分区,每个分区对应2个分表。
对于订单表,这里数据的主键信息可以是订单编号,也可以是商品编号,还可以是没有业务含义的自增ID,比如不代表任何意义的数字组合,取决于拉链表是何种类型的业务数据。
2)根据数据的主键信息/时间戳等,对数据进行排序。然后按照循环的方式,将数据拆分至不同的子对象中,例如,订单号1、订单号11存储于分表1中,订单号2、订单号12存储于分表2中。
通常,拆分不是根据业务维度来的,而是根据数据主键的数字特征。且鉴于取模方式得到的结果唯一,子对象中存在重复订单的几率较小。以订单表中的订单号(主键信息)为例,同一个订单只会存在于一个分表中,体现各分表相互独立的特点。
因此,本发明主要采用第一种方式进行,较之第二种方式,无需等待前一个数据处理完毕,可直接并行处理,进而提高数据分配速度,便于后续数据更新处理。
但通常来讲,并行任务过多会瞬间占用系统较多的资源,这里在资源与数据分配、时间之间可以有不同的权衡,进而体现在子对象的数量确定上。
这里子对象的数量可以是预先设定的,例如,1280或128个;也可以是根据目标对象中的数据量所确定。例如,源表包含1280个数据,预定在每个分表中仅存储1个数据,那么就需要创建1280个分表;若每个分表中存储10个数据,那么就会有128个分表。当然,也存在有商不为整数的情况,例如,设定每个分表中存储3个数据,那么就会有427(即426+1)个分表。
以上,将目标对象中的数据进行拆分至多个子对象中,可以降低单个对象所存储的数据量,实现均衡化对象服务压力的效果;后续为降低自身服务压力,可以将子对象分发至不同服务器的数据库中,以实现数据的分布式管理。
对于步骤S102,本发明中拆分是关键,所设置子对象的标识是与源目标对象的标识相对应的,便于后续新增数据的归置与处理。
以订单表为例,在设计的时候主要基于逻辑模型,一个拉链表针对于一个逻辑模型,而分表仅仅是一个逻辑模型物理化的时候所创建的多个副本,通过表名+编号来区分,如orders_1、orders_2。
这里各子对象的编号,一般是按照其数量来确定的,例如,数字、大小写字母或者其组合。例如,有128个分表,数据标识就有0~127、或者1~128,对于字母,可以为A、B、C1、C2等。
以下以核心交易系统中的订单表为例进行说明:
表1订单拉链数据表fdm_orders_chain
表1中字段描述:
表2表1中的字段描述
其中,dp、dt(表示日期,即年月日)、end_date三个字段为分区字段,现有技术的分区结构如下表3所示:
表3分区结构(拉链表中的end_date,就是dt的意思)
本发明在表3的基础上,扩展分区操作,由原有的双层分区变为三层分区,即在当前分区的最后一层后增加一个src_id字段,如下表所示:
表4增加分区后的结构(这里EXPIRED仅取2014.8.6进行说明)
若有1280个分表,src_id字段对应于标识1~1280,这里的n即为1280。若需要新增加一个分区字段,也就是需要在原分表的基础上,每个end_date每天的分区上再分区为1280个分区(1~1280),整体呈树状结构。
除了拉链数据表之外,还有缓冲数据表,用来临时存储从线上系统抽取过来的数据(即增量数据),是拉链数据表的数据来源,例如:
表5订单缓冲数据表bdm_orders_di
缓冲数据表中的dt数据来源是取更新时间的日期部分,之所以是取日期部分(即年月日),是数据处理的时间粒度是天(日),无论是一天中哪一时刻的数据,可以均当作当天一天的数据进行处理。
在上述举例中,对拉链数据表中的数据进行了分区。同理,对于缓冲数据表,也可以进行分区操作,具体参见图2,为现有订单表缓冲数据表和本发明的对比。
上述实施例所提供的方法,通过将对象中的数据拆分至多个子对象中,减少了原来单对象中的数据量,且同一条数据记录只出现在唯一的单对象中,使得单个对象之间具有相互独立的特点;每个表都具有唯一可以识别的标识,为后续数据读取/写入提供了便利。
参见图3,示出了根据本发明实施例的一种可选的应用于数据仓库的数据分区方法流程示意图,包括如下步骤:
S301:统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;
S302:根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系;
S303:接收增量数据,根据所述增量数据的主键信息,确定与所述增量数据相应的子对象、以及所确定的子对象中与所述增量数据相应的历史数据;
S304:若所述增量数据与所述历史数据不同,则将所述增量数据作为最新数据记录并进行记录更新。
上述实施方式中,对于步骤S301、S302可分别参见图1所示步骤S101、S102的描述,在此不再赘述。
上述实施方式中,对于步骤S303以及S304,按照数据来源唯一标识,拆分拉链程序,每个拉链程序只负责一个子对象中的数据操作。鉴于每个子对象中的数据都是唯一的,整体子对象都呈独立状态,所有的拉链程序可以同时并行处理。
例如,原来一个订单表中有1280个数据,前一个数据处理完毕后才能处理后一个数据,现在1280个分表中,每个分表仅包含一个数据,且相互独立,那这1280个数据都可以同时处理。
同样以缓冲数据表和拉链数据表为例,说明数据更新操作:
缓冲数据表通过新增数据的主键信息跟拉链数据表进行关联,实现新数据的拉链操作。
例如,订单号1852920的数据1,当前数据状态为配送,通过订单号查询到其历史数据分配至orders_1中,即证明该orders_1与该数据1相应。若历史数据状态为支付,则基于新数据1对其进行更新,更新后的数据状态为配送。
拉链表中,ACTIVE分区中的src_id,以当前订单的订单号为数据来源,每天新生成的订单按照来源表标识放入该来源表src_id的分区中,实现将整表数据可以按照来源表进行拆分。例如,src_id=1的数据来自orders_1,src_id=2的数据来自orders_2,以此类推。
对于新增数据与历史数据的判断,一般来讲,时间戳可以体现出创建时间和更新时间。不过拉链表对比数据是否发生更新,通常不是使用判断时间戳的方式,而是通过字段对比。例如,增量数据的状态为“配送”,历史数据的状态为“支付”,通过字段比较得到,“配送”与“支付”不同,则确定增量数据为最新数据。
新增数据每个分区的数据,都是分区当天的增量数据,包括两种:更新的数据和当天新增的数据,代表过去已经发生的业务、新增业务或者业务变更,没有业务则没有新增数据的产生。
更新的数据参见上述描述,且更新前的历史数据保存到EXPIRED分区中end_date最新的分区中。而对于当天新增的数据,是查询不到相应子对象的,这种情况下拉链操作不会发生数据变更。
对于Hive表的数据,不支持Update(即数据更新操作),只能对Hive表或者表的某个分区进行数据覆盖。该覆盖方式区别与数据更新,数据更新是通过重写整个表的数据来达成Update操作的目标,即原来的数据清除,重新写入整个表或者整个分区的数据。
本发明不限于适用于是Hive数据仓库,只是Hive是当前的主流环境,大多数拉链都是基于Hive环境来描述。
以下举例进行具体分析,具体参见图4所示:
如果当前拉链表有9个单位数据量,数据全部更新的话,就是9*9=81,需要消耗81个单位计算资源;
现将这9个单位数据量拆分为3份,每份3个单位数据量。那么全部更新的话,是3*3+3*3+3*3=27,需要消耗27个单位计算资源。
由此可见计算资源的消耗大幅下降,同时,由于并行同时计算,可以消耗3*3=9个单位计算时间,计算效率大幅提升。
上述实施例所提供的方法,在不影响当前拉链表的正常使用下,基于源对象的多表唯一标识,可以降低拉链操作时候的计算资源消耗,缩短计算时间,提升了数据加工效率,实现优化设计。
本发明实施例所提供的方法,在订单等交易型的数据量几乎都为海量的场景中,通过来源表数据的标识,在当前分区的基础上追加分区,可以降低单个区域中的数据存储量;对所拆分的拉链程序可以同时并行处理,可以降低拉链操作时候的计算资源消耗,缩短计算时间,提升了数据加工效率,实现优化设计,实现应用于数据仓库海量数据高效、高性能的拉链数据处理目的。
参见图5,示出了本发明实施例提供的一种应用于数据仓库的数据分区装置500的主要模块示意图,包括:
数据拆分模块501,用于统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;
标识建立模块502,用于根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
本发明实施装置中,所述数据拆分模块501,还用于:统计所述目标对象所存储的数据量,结合预定分配至子对象中的数据量,确定所需创建的子对象数量。
本发明实施装置中,所述数据拆分模块501,用于:确定所述目标对象中数据的主键信息,用所述主键信息对所述子对象的总数量取余数,以将数据存储至与所述余数相应的子对象中。
本发明实施装置还包括数据更新模块503(图中未标出),用于:
接收增量数据,根据所述增量数据的主键信息,确定与所述增量数据相应的子对象、以及所确定的子对象中与所述增量数据相应的历史数据;
若所述增量数据与所述历史数据不同,则将所述增量数据作为最新数据记录并进行记录更新。
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
本发明实施例所提供的装置,在订单等交易型的数据量几乎都为海量的场景中,通过来源表数据的标识,在当前分区的基础上追加分区,可以降低单个区域中的数据存储量;对所拆分的拉链程序可以同时并行处理,可以降低拉链操作时候的计算资源消耗,缩短计算时间,提升了数据加工效率,实现优化设计,实现应用于数据仓库海量数据高效、高性能的拉链数据处理目的。
图6示出了可以应用本发明实施例的应用于数据仓库的数据分区方法或应用于数据仓库的数据分区装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605(仅仅是示例)。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的应用于数据仓库的数据分区方法一般由服务器605执行,相应地,应用于数据仓库的数据分区装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据拆分模块、标识建立模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,数据拆分模块还可以被描述为“拆分目标对象中的数据至子对象的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;
根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
根据本发明实施例的技术方案,在订单等交易型的数据量几乎都为海量数据的场景中,通过来源表数据的标识,在当前分区的基础上追加分区,可以降低单个区域中的数据存储量;对所拆分的拉链程序可以同时并行处理,可以降低拉链操作时候的计算资源消耗,缩短计算时间,提升了数据加工效率,实现优化设计,实现应用于数据仓库海量数据高效、高性能的拉链数据处理目的。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种应用于数据仓库的数据分区方法,其特征在于,包括:
统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;其中,目标对象为拉链数据表,分区结构包括最新数据分区和已失效数据分区,每个分区均记录失效时间;预定分区方式为在当前分区的最后一层后增加一个标识字段,在原分表的基础上,在每个失效时间每天的分区上再分区为多个子分区,多个子分区的数量为多个子对象的数量,子分区的标识字段对应子对象的标识;
根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,在所述结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中之前,还包括:
统计所述目标对象所存储的数据量,结合预定分配至子对象中的数据量,确定所需创建的子对象数量。
3.根据权利要求1所述的方法,其特征在于,所述统计目标对象所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中,包括:
确定所述目标对象中数据的主键信息,用所述主键信息对所述子对象的总数量取余数,以将数据存储至与所述余数相应的子对象中。
4.根据权利要求1所述的方法,其特征在于,在所述建立子对象标识与相应所存储的数据之间的对应关系之后,还包括:
接收增量数据,根据所述增量数据的主键信息,确定与所述增量数据相应的子对象、以及所确定的子对象中与所述增量数据相应的历史数据;
若所述增量数据与所述历史数据不同,则将所述增量数据作为最新数据记录并进行记录更新。
5.一种应用于数据仓库的数据分区装置,其特征在于,包括:
数据拆分模块,用于统计目标对象中所存储的数据量,结合预定分区方式,将所述目标对象中的数据拆分至多个子对象中;其中,目标对象为拉链数据表,分区结构包括最新数据分区和已失效数据分区,每个分区均记录失效时间;预定分区方式为在当前分区的最后一层后增加一个标识字段,在原分表的基础上,在每个失效时间每天的分区上再分区为多个子分区,多个子分区的数量为多个子对象的数量,子分区的标识字段对应子对象的标识;
标识建立模块,用于根据所述目标对象的标识和子对象的编号,确定每个子对象的标识,建立子对象标识与相应所存储的数据之间的对应关系。
6.根据权利要求5所述的装置,其特征在于,所述数据拆分模块,还用于:
统计所述目标对象所存储的数据量,结合预定分配至子对象中的数据量,确定所需创建的子对象数量。
7.根据权利要求5所述的装置,其特征在于,所述数据拆分模块,用于:
确定所述目标对象中数据的主键信息,用所述主键信息对所述子对象的总数量取余数,以将数据存储至与所述余数相应的子对象中。
8.根据权利要求5所述的装置,其特征在于,还包括数据更新模块,用于:
接收增量数据,根据所述增量数据的主键信息,确定与所述增量数据相应的子对象、以及所确定的子对象中与所述增量数据相应的历史数据;
若所述增量数据与所述历史数据不同,则将所述增量数据作为最新数据记录并进行记录更新。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201910231836.5A 2019-03-26 2019-03-26 一种应用于数据仓库的数据分区方法和装置 Active CN111753019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910231836.5A CN111753019B (zh) 2019-03-26 2019-03-26 一种应用于数据仓库的数据分区方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910231836.5A CN111753019B (zh) 2019-03-26 2019-03-26 一种应用于数据仓库的数据分区方法和装置

Publications (2)

Publication Number Publication Date
CN111753019A CN111753019A (zh) 2020-10-09
CN111753019B true CN111753019B (zh) 2024-07-16

Family

ID=72672138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910231836.5A Active CN111753019B (zh) 2019-03-26 2019-03-26 一种应用于数据仓库的数据分区方法和装置

Country Status (1)

Country Link
CN (1) CN111753019B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905596B (zh) * 2021-03-05 2024-02-02 北京中经惠众科技有限公司 数据处理的方法、装置、计算机设备以及存储介质
CN113918659A (zh) * 2021-09-08 2022-01-11 北京火山引擎科技有限公司 数据操作方法、装置、存储介质及电子设备
CN115964372B (zh) * 2023-01-03 2023-11-21 中国科学院空间应用工程与技术中心 一种空间站有效载荷分布式事件提取方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868421A (zh) * 2016-06-12 2016-08-17 浪潮通用软件有限公司 一种数据管理方法及装置
CN107229688A (zh) * 2017-05-12 2017-10-03 上海前隆金融信息服务有限公司 一种数据库水平分库分表方法及系统、服务器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752543B2 (en) * 2006-02-17 2010-07-06 Microsoft Corporation Applying effects to a merged text path
CN105095484B (zh) * 2015-08-17 2019-03-12 北京京东世纪贸易有限公司 一种数据拉链方法
CN108108374B (zh) * 2016-11-25 2021-11-16 百度在线网络技术(北京)有限公司 一种数据仓库的存储方法及装置
CN108629029B (zh) * 2018-05-09 2021-06-29 北京京东尚科信息技术有限公司 一种应用于数据仓库的数据处理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868421A (zh) * 2016-06-12 2016-08-17 浪潮通用软件有限公司 一种数据管理方法及装置
CN107229688A (zh) * 2017-05-12 2017-10-03 上海前隆金融信息服务有限公司 一种数据库水平分库分表方法及系统、服务器

Also Published As

Publication number Publication date
CN111753019A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN109189835B (zh) 实时生成数据宽表的方法和装置
CN107229718B (zh) 处理报表数据的方法和装置
CN109614402B (zh) 多维数据查询方法和装置
CN112597126B (zh) 一种数据迁移方法和装置
JP7313382B2 (ja) 分散システムの頻繁パターン分析
CN111753019B (zh) 一种应用于数据仓库的数据分区方法和装置
CN112835904A (zh) 一种数据处理方法和数据处理装置
CN112925859A (zh) 数据存储方法和装置
CN112783887B (zh) 一种基于数据仓库的数据处理方法及装置
CN111858621B (zh) 监控业务流程的方法、装置、设备和计算机可读介质
CN111461583B (zh) 一种库存盘点方法和装置
CN112817930A (zh) 一种数据迁移的方法和装置
CN109902847B (zh) 预测分库订单量的方法和装置
CN112182138A (zh) 一种目录编制方法和装置
CN113761565A (zh) 数据脱敏方法和装置
CN116450622B (zh) 数据入库的方法、装置、设备和计算机可读介质
CN111984686A (zh) 一种数据处理的方法和装置
CN112988857B (zh) 一种业务数据的处理方法和装置
CN113778318B (zh) 一种数据存储方法和装置
CN113704242A (zh) 一种数据处理方法和装置
CN113360494B (zh) 一种宽表数据的生成方法、更新方法和相关装置
CN111127077A (zh) 一种基于流计算的推荐方法和装置
CN113111119B (zh) 一种操作数据的方法和装置
CN113760900B (zh) 数据的实时汇总以及区间汇总的方法和装置
CN113515504B (zh) 数据管理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant