CN109241063A - 一种数据合并方法及系统 - Google Patents

一种数据合并方法及系统 Download PDF

Info

Publication number
CN109241063A
CN109241063A CN201811132215.3A CN201811132215A CN109241063A CN 109241063 A CN109241063 A CN 109241063A CN 201811132215 A CN201811132215 A CN 201811132215A CN 109241063 A CN109241063 A CN 109241063A
Authority
CN
China
Prior art keywords
under
data layer
full dose
data
subregion
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
Application number
CN201811132215.3A
Other languages
English (en)
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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201811132215.3A priority Critical patent/CN109241063A/zh
Publication of CN109241063A publication Critical patent/CN109241063A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据合并方法及系统,方法包括:对数据进行压缩处理,基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,对增量数据层和全量数据层对应分区下的文件执行相应的合并操作,将合并操作结果输出到临时目录和全量数据目录。本申请在大数据的情景下,能够高效的实现数据的合并。

Description

一种数据合并方法及系统
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据合并方法及系统。
背景技术
大数据应用下,尤其银行系统有些时点类的表(如储蓄表)量级很大(约数百G),每日增量数据也在数十G的量级,批量加工过程中,为了获取每日最新的全量数据,就需要将增量数据表和全量数据表做合并获取最新的全量数据。
现有的数据合并基本都是基于oracle(关系数据库管理系统)等数据库的一种sql(Structured Query Language,结构化查询语言)语句,用来合并update语句和insert语句,但是大数据应用下,在HDFS(Hadoop分布式文件系统)集群上,基于hive(hive是基于Hadoop的一个数据仓库工具)存储如何进行数据合并,hive本身没有成熟的数据合并技术,目前采用的数据合并方法在数据量很大时效率又很低,成为批量加工的瓶颈。
因此,实现在大数据的情景下对数据进行合并,且提高数据合并的效率,是一项亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种数据合并方法,在大数据的情景下,能够高效的实现数据的合并。
本申请提供了一种数据合并方法,所述方法包括:
对数据进行压缩处理;
基于压缩后表的数据量大小设置分区个数;
通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
对增量数据层和全量数据层对应分区下的文件执行相应的合并操作;
将合并操作结果输出到临时目录和全量数据目录。
优选地,所述对数据进行压缩处理包括:
采用ORC格式对数据进行压缩处理。
优选地,所述对增量数据层和全量数据层对应分区下的文件执行相应的合并操作包括:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录。
优选地,所述对增量数据层和全量数据层对应分区下的文件执行相应的合并操作包括:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录。
优选地,所述对增量数据层和全量数据层对应分区下的文件执行相应的合并操作包括:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录。
一种数据合并系统,包括:
处理模块,用于对数据进行压缩处理;
设置模块,用于基于压缩后表的数据量大小设置分区个数;
拆分模块,用于通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
合并处理模块,用于对增量数据层和全量数据层对应分区下的文件执行相应的合并操作;
输出模块,用于将合并操作结果输出到临时目录和全量数据目录。
优选地,所述处理模块具体用于:
采用ORC格式对数据进行压缩处理。
优选地,所述合并处理模块具体用于:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录。
优选地,所述合并处理模块具体用于:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录。
优选地,所述合并处理模块具体用于:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录。
综上所述,本申请公开了一种数据合并方法,当需要对大数据进行合并处理时,首先对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,对增量数据层和全量数据层对应分区下的文件执行相应的合并操作,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种数据合并方法实施例1的方法流程图;
图2为本申请公开的一种数据合并方法实施例2的方法流程图;
图3为本申请公开的一种数据合并方法实施例3的方法流程图;
图4为本申请公开的一种数据合并方法实施例4的方法流程图;
图5为本申请公开的一种数据合并系统实施例1的结构示意图;
图6为本申请公开的一种数据合并系统实施例2的结构示意图;
图7为本申请公开的一种数据合并系统实施例3的结构示意图;
图8为本申请公开的一种数据合并系统实施例4的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为申请提供的一种数据合并方法实施例1的方法流程图,所述方法可以包括以下步骤:
S101、对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
S102、基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
S103、通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
S104、对增量数据层和全量数据层对应分区下的文件执行相应的合并操作;
然后再用spark sql进行合并加工,针对全量数据层和增量数据层对应n(0<=n<N)分区下的文件执行相应的合并操作。
S105、将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,对增量数据层和全量数据层对应分区下的文件执行相应的合并操作,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图2所示,为申请提供的一种数据合并方法实施例2的方法流程图,所述方法可以包括以下步骤:
S201、采用ORC格式对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小;在对数据进行压缩处理时,可以采用ORC格式。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
S202、基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
S203、通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
S204、增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录;
增量数据层T+1日对应n分区下,和全量数据层T日对应n分区下,相同主键的,则取增量数据层n分区的对应记录。
S205、将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先采用ORC格式对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图3所示,为申请提供的一种数据合并方法实施例3的方法流程图,所述方法可以包括以下步骤:
S301、采用ORC格式对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小;在对数据进行压缩处理时,可以采用ORC格式。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
S302、基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
S303、通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
S304、增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录;
增量数据层T+1日对应n分区下,和全量数据层T日对应n分区下,增量数据层有记录,全量数据层无记录的,取增量数据层n分区下的记录。
S305、将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先采用ORC格式对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图4所示,为申请提供的一种数据合并方法实施例4的方法流程图,所述方法可以包括以下步骤:
S401、采用ORC格式对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小;在对数据进行压缩处理时,可以采用ORC格式。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
S402、基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
S403、通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
S404、增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录;
增量数据层T+1日对应n分区下,和全量数据层T日对应n分区下,增量数据层无记录,全量数据层有记录的,取全量数据层n分区下的记录。
S405、将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先采用ORC格式对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图5所示,为申请提供的一种数据合并系统实施例1的结构示意图,所述系统可以包括:
处理模块501,用于对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
设置模块502,用于基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
拆分模块503,用于通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
合并处理模块504,用于对增量数据层和全量数据层对应分区下的文件执行相应的合并操作。
然后再用spark sql进行合并加工,针对全量数据层和增量数据层对应n(0<=n<N)分区下的文件执行相应的合并操作。
输出模块505,用于将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,对增量数据层和全量数据层对应分区下的文件执行相应的合并操作,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图6所示,为申请提供的一种数据合并系统实施例2的结构示意图,所述系统可以包括:
处理模块601,用于采用ORC格式对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小;在对数据进行压缩处理时,可以采用ORC格式。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
设置模块602,用于基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
拆分模块603,用于通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
合并处理模块604,用于增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录;
增量数据层T+1日对应n分区下,和全量数据层T日对应n分区下,相同主键的,则取增量数据层n分区的对应记录。
输出模块605,用于将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先采用ORC格式对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图7所示,为申请提供的一种数据合并系统实施例3的结构示意图,所述系统可以包括:
处理模块701,用于采用ORC格式对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小;在对数据进行压缩处理时,可以采用ORC格式。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
设置模块702,用于基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
拆分模块703,用于通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
合并处理模块704,用于增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录;
增量数据层T+1日对应n分区下,和全量数据层T日对应n分区下,增量数据层有记录,全量数据层无记录的,取增量数据层n分区下的记录。
输出模块705,用于将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先采用ORC格式对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
如图8所示,为申请提供的一种数据合并系统实施例4的结构示意图,所述系统可以包括:
处理模块801,用于采用ORC格式对数据进行压缩处理;
需要合并的每个表全量数据层T-1日分区数据量达到数百G,增量数据层T日分区数据量达到数十G,在前期数据清洗等过程后,需要进一步对数据进行压缩处理,以节省存储空间,并减小合并操作的数据大小;在对数据进行压缩处理时,可以采用ORC格式。
需要说明的是,增量数据是指每日新增数据,在行内常指每日下发的变更后数据;全量数据是指某个时间点全部记录数据。增量数据层是指存放每日增量数据的目录,全量数据层是指存放每日全量数据的目录。
设置模块802,用于基于压缩后表的数据量大小设置分区个数;
当对数据进行压缩处理后,通过参数化配置,根据表数据量大小分别独立设置分区个数,直接在配置文件配置即可。假设表A,分区个数设置为N,主键为字符串key。
拆分模块803,用于通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
然后,对标A主键执行MOD(HASH(key),N)操作,使用Mapreduce拆分区到临时目录,临时目录下文件有N个。
需要说明的是,全量数据除首次需要执行上述操作外,以后每次只需使用上一天的临时目录下对应日期分区下的文件即可,这种多个分区并行做合并的过程,同时使用spark sql技术大大缩短了合并的使用时间。
合并处理模块804,用于增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录;
增量数据层T+1日对应n分区下,和全量数据层T日对应n分区下,增量数据层无记录,全量数据层有记录的,取全量数据层n分区下的记录。
输出模块805,用于将合并操作结果输出到临时目录或全量数据目录。
最后将结果输出到临时目录T+1分区下,和全量数据层的T+1日分区目录下。
综上所述,当需要对大数据进行合并处理时,首先采用ORC格式对数据进行压缩处理,然后基于压缩后表的数据量大小设置分区个数,通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录,增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录,最后将合并操作结果输出到临时目录和全量数据目录。本申请相对于现有技术,能够高效的实现数据的合并。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据合并方法,其特征在于,所述方法包括:
对数据进行压缩处理;
基于压缩后表的数据量大小设置分区个数;
通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
对增量数据层和全量数据层对应分区下的文件执行相应的合并操作;
将合并操作结果输出到临时目录和全量数据目录。
2.根据权利要求1所述的方法,其特征在于,所述对数据进行压缩处理包括:
采用ORC格式对数据进行压缩处理。
3.根据权利要求1所述的方法,其特征在于,所述对增量数据层和全量数据层对应分区下的文件执行相应的合并操作包括:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录。
4.根据权利要求1所述的方法,其特征在于,所述对增量数据层和全量数据层对应分区下的文件执行相应的合并操作包括:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录。
5.根据权利要求1所述的方法,其特征在于,所述对增量数据层和全量数据层对应分区下的文件执行相应的合并操作包括:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录。
6.一种数据合并系统,其特征在于,包括:
处理模块,用于对数据进行压缩处理;
设置模块,用于基于压缩后表的数据量大小设置分区个数;
拆分模块,用于通过对增量数据层和全量数据层的主键哈希,按照分区个数取模,将增量数据和全量数据分别拆分到不同的临时目录;
合并处理模块,用于对增量数据层和全量数据层对应分区下的文件执行相应的合并操作;
输出模块,用于将合并操作结果输出到临时目录和全量数据目录。
7.根据权利要求6所述的系统,其特征在于,所述处理模块具体用于:
采用ORC格式对数据进行压缩处理。
8.根据权利要求6所述的系统,其特征在于,所述合并处理模块具体用于:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,相同主键的,取增量数据层临时目录对应的记录。
9.根据权利要求6所述的系统,其特征在于,所述合并处理模块具体用于:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层有记录,全量数据层无记录的,取增量数据层临时目录下的记录。
10.根据权利要求6所述的系统,其特征在于,所述合并处理模块具体用于:
增量数据层T+1日对应的临时目录下每个分区下和全量数据层T日对应临时目录下每个分区下,增量数据层无记录,全量数据层有记录的,取全量数据层临时目录下的记录。
CN201811132215.3A 2018-09-27 2018-09-27 一种数据合并方法及系统 Pending CN109241063A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811132215.3A CN109241063A (zh) 2018-09-27 2018-09-27 一种数据合并方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811132215.3A CN109241063A (zh) 2018-09-27 2018-09-27 一种数据合并方法及系统

Publications (1)

Publication Number Publication Date
CN109241063A true CN109241063A (zh) 2019-01-18

Family

ID=65057017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811132215.3A Pending CN109241063A (zh) 2018-09-27 2018-09-27 一种数据合并方法及系统

Country Status (1)

Country Link
CN (1) CN109241063A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162513A (zh) * 2019-05-31 2019-08-23 广州水沐青华科技有限公司 用于智能电网大数据处理的数据表连接方法及计算机可读存储介质
CN110850824A (zh) * 2019-11-12 2020-02-28 北京矿冶科技集团有限公司 一种将分布式控制系统数据采集至Hadoop平台的实现方法
CN112395252A (zh) * 2020-10-10 2021-02-23 广州三七互娱科技有限公司 文件合并方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222219A1 (en) * 2007-03-05 2008-09-11 Appassure Software, Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
CN103678392A (zh) * 2012-09-20 2014-03-26 阿里巴巴集团控股有限公司 一种数据增量合并的方法及其装置
CN104298687A (zh) * 2013-07-18 2015-01-21 阿里巴巴集团控股有限公司 一种哈希分区管理方法及装置
CN105550296A (zh) * 2015-12-10 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN107944896A (zh) * 2016-10-13 2018-04-20 北京京东尚科信息技术有限公司 确定商品关联程度的方法以及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222219A1 (en) * 2007-03-05 2008-09-11 Appassure Software, Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
CN103678392A (zh) * 2012-09-20 2014-03-26 阿里巴巴集团控股有限公司 一种数据增量合并的方法及其装置
CN104298687A (zh) * 2013-07-18 2015-01-21 阿里巴巴集团控股有限公司 一种哈希分区管理方法及装置
CN105550296A (zh) * 2015-12-10 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN107944896A (zh) * 2016-10-13 2018-04-20 北京京东尚科信息技术有限公司 确定商品关联程度的方法以及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162513A (zh) * 2019-05-31 2019-08-23 广州水沐青华科技有限公司 用于智能电网大数据处理的数据表连接方法及计算机可读存储介质
CN110850824A (zh) * 2019-11-12 2020-02-28 北京矿冶科技集团有限公司 一种将分布式控制系统数据采集至Hadoop平台的实现方法
CN112395252A (zh) * 2020-10-10 2021-02-23 广州三七互娱科技有限公司 文件合并方法、装置及电子设备

Similar Documents

Publication Publication Date Title
EP3563268B1 (en) Scalable database system for querying time-series data
US11314779B1 (en) Managing timestamps in a sequential update stream recording changes to a database partition
JP2022534215A (ja) ハイブリッド・インデックス作成方法、システム、プログラム
EP2917854B1 (en) Method for automated scaling of massive parallel processing (mpp) database
KR102005831B1 (ko) 범위-기반 검색을 위한 데이터 저장 관리
CN102541694B (zh) 一种数据库备份的方法及装置
CN109241063A (zh) 一种数据合并方法及系统
US20150032695A1 (en) Client and server integration for replicating data
AU2018290758A1 (en) Systems and methods of restoring a dataset of a database for a point in time
US20120150797A1 (en) Method and system for safely transporting legacy data to an object semantic form data grid
CN107273482A (zh) 基于HBase的告警数据存储方法及装置
CN111881223B (zh) 数据管理方法、设备、系统及存储介质
CN106933859B (zh) 一种医疗数据的迁移方法和装置
CN110209728A (zh) 一种分布式异构数据库同步方法、电子设备及存储介质
KR102038529B1 (ko) 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템
CN107526733A (zh) 一种拉链表数据存储方法和装置
CN110309233A (zh) 数据存储的方法、装置、服务器和存储介质
CN105808653A (zh) 一种基于用户标签系统的数据处理方法及装置
GB2534374A (en) Distributed System with accelerator-created containers
CN105787058A (zh) 一种用户标签系统及基于用户标签系统的数据推送系统
CN104216966A (zh) 一种支持多种方式创建索引的方法
CN106155838A (zh) 一种数据库备份数据恢复方法及装置
CN110704442A (zh) 一种大数据的实时获取方法及装置
CN103365740A (zh) 一种数据冷备方法及装置
CN113590613A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190118