CN113971160A - 一种数据融合处理方法、装置、设备及存储介质 - Google Patents
一种数据融合处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113971160A CN113971160A CN202111281668.4A CN202111281668A CN113971160A CN 113971160 A CN113971160 A CN 113971160A CN 202111281668 A CN202111281668 A CN 202111281668A CN 113971160 A CN113971160 A CN 113971160A
- Authority
- CN
- China
- Prior art keywords
- key
- value pair
- data
- identifier
- pair identifier
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据融合处理方法、装置、设备及存储介质,该方法包括:根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;获取设定的数据输出形式,其中,数据输出形式包括增量数据输出形式和全量数据输出形式;根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。相比于现有技术中每次都是将数据进行全量输出,本发明实施例提供的技术方案将数据输出分为全量数据输出与多次增量数据输出,针对不用的数据输出形式,利用不同的数据融合处理方式,获得处理后的结果数据并输出,提高了数据融合处理效率,降低了资源消耗。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据融合处理方法、装置、设备及存储介质。
背景技术
随着互联网、物联网、社交网络等新兴技术的发展,会产生大量访问数据,为了更直观的描述分析数据所属对象,需要融合同一对象的数据,进而进行统计分析。例如,随着系统上线运行时间的延伸,采集数据量的不断累加,导致处理和存储的数据量一直在不断增长。而随着数据量的增长,原有定时进行的碰撞融合功能模块将历史数据和新采集提取数据的全量加载分组合并的处理时间也越来越长、消耗资源越来越多且稳定性越来越差,另存储数据量的增加还导致新增数据存储性能的下降,所以需要采用一种数据碰撞融合的方式解决大量数据合并时稳定性低、资源消耗多、速度慢的问题,同时融合结果细化分类,减少部分存储介质的数据量,例如索引存储介质。
发明内容
本发明实施例提供一种数据融合处理方法、装置、设备及存储介质,通过将数据输出分为全量数据输出与多次增量数据输出,针对不用的数据输出形式,利用不同的数据融合处理方式,获得处理后的结果数据并输出,提高了数据处理效率,降低了资源消耗。
第一方面,本发明实施例提供了一种数据融合处理方法,包括:
根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;
获取设定的数据输出形式,其中,所述数据输出形式包括增量数据输出形式和全量数据输出形式;
根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
第二方面,本发明实施例还提供了一种数据融合处理装置,包括:
分区处理模块,用于根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;
输出形式获取模块,用于获取设定的数据输出形式,其中,所述数据输出形式包括增量数据输出形式和全量数据输出形式;
融合处理模块,用于根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
第三方面,本发明实施例还提供一种计算机设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面所述的数据融合处理方法。
第四方面,本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的数据融合处理方法。
本发明实施例公开了一种数据融合处理方法、装置、设备及存储介质,该方法包括:根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;获取设定的数据输出形式,其中,数据输出形式包括增量数据输出形式和全量数据输出形式;根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。相比于现有技术中每次都是将数据进行全量输出,本发明实施例提供的技术方案将数据输出分为全量数据输出与多次增量数据输出,针对不用的数据输出形式,利用不同的数据融合处理方式,获得处理后的结果数据并输出,提高了数据融合处理效率,降低了资源消耗。
附图说明
图1为本发明实施例一提供的一种数据融合处理方法的流程示意图;
图2为本发明实施例提供的数据融合处理过程的示意图;
图3为本发明实施例二提供的一种数据融合处理装置的结构框图;
图4为本发明实施例三提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据融合处理方法的流程示意图,本实施例可适用于系统运行过程中定期执行数据碰撞融合的情况,该方法可以由数据融合处理装置来执行,该装置可由硬件和/或软件组成,并一般可集成在计算机设备中,该方法具体包括如下步骤:
S110、根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区。
其中,目标分区的个数与历史分区个数相同。分区个数大小可以根据历史数据的存储大小和资源大小进行规划设置。在对数据进行分区时应保证数据尽量均分到各个分区中。本实施例中,预设分区规则可以是哈希分区规则,例如,节点取余分区规则。若哈希分区导致数据倾斜严重,可考虑使用范围分区或自定义分区等方法。
本实施例中,分区标记可以表示为part-i,可以使用part-1、part-2、…、part-N标记每个分区。示例性的,历史分区可以表示为history-full-part-i,每次的历史增量分区可以分别表示为history-modify1-part-i、history-modify2-part-i、…等。
具体的,对于读取的新增数据,根据预设分区规则,将新增数据分别放入目标分区中,获得一个或多个目标分区。
S120、获取设定的数据输出形式。
其中,所述数据输出形式包括增量数据输出形式和全量数据输出形式。可以清楚的是,增量数据输出形式是指将本次新增数据输出,其中新增数据可能是对历史数据的更新,也可能是与历史数据无关联。全量数据输出形式是指将全部记录数据输出。
现有技术中,数据融合处理方式往往是将每次新增数据与全量数据进行融合,并将融合后的全量数据输出。这样就会导致数据存储过大且输出处理时间过长,本实施例中采用全量数据输出加多次增量数据输出的方式进行数据输出。
例如,用户可以设置每隔十天进行一次全量数据输出,其余天数都是进行每天的增量数据输出。可以清楚的是,全量数据输出和增量数据输出的间隔可以根据用户需求设定。
具体的,从数据融合处理装置中获取用户的本次设定的数据输出形式,用以后续确定数据融合处理方式。
S130、根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
具体的,获取数据输出形式后,选择对应数据输出形式的数据融合处理方式,若为增量数据输出形式,则选择对应增量数据输出形式的数据融合处理方法对每个目标分区中数据进行融合处理;若为全量数据输出形式,则选择对应全量数据输出形式的数据融合处理方法对每个目标分区中数据进行融合处理。并获取处理后的结果数据输出至用户。
本发明实施例公开了一种数据融合处理方法、装置、设备及存储介质,该方法包括:根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;获取设定的数据输出形式,其中,数据输出形式包括增量数据输出形式和全量数据输出形式;根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。相比于现有技术中每次都是将数据进行全量输出,本发明实施例提供的技术方案将数据输出分为全量数据输出与多次增量数据输出,针对不用的数据输出形式,利用不同的数据融合处理方式,获得处理后的结果数据并输出,提高了数据融合处理效率,降低了资源消耗。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区的步骤具体可以表述为:
S111、从分布式文件系统中读取新增数据序列。
具体的,使用分布式计算框架从分布式文件系统读取本次新增数据序列,例如,读取的每一条数据可以表示为row。
示例性的,本次以人员信息数据为例进行说明,人员信息数据包括以下字段:人员编号,姓名,手机号,发现次数。分布式文件系统以Hadoop分布式文件系统(HadoopDistributed File System,HDFS)为例,本次新增数据放在HDFS的/data/batch20210908中,假设本次新读取新增数据包含以下内容:
Person1,空值,13111111111,1;
Person2,空值,空值,1;
Person3,张三,15688886666,1。
S112、根据预设处理规则对新增数据序列进行处理,生成一组键值对数据,其中,键值对数据包括键值对标识。
具体的,对每一条新增数据可以按照数据归并维度字段计算信息摘要算法(Message-Digest Algorithm,MD5),从而生成键值对标识,例如,键值对标识可以表示为key。将key表示键值对数据标识,row为键值对数据内容,生成<key,row>键值对数据。根据预设处理规则对每一条新增数据处理,都会生成一个键值对数据,新增数据序列中的多条新增数据,可以生成多个键值对数据,从而形成一组键值对数据。
示例性的,继续接上述步骤S111举例进行描述,以数据集中人员编号字段作为数据融合归并维度,数据处理生成键值对数据为:
<md5-Person1,(Person1,空值,13111111111,1)>;
<md5-Person2,(Person2,空值,空值,1)>;
<md5-Person3,(Person3,张三,15688886666,1)>。
S113、根据哈希分区规则对各键值对数据进行分区,获得至少一个初始分区。
具体的,对各键值对数据进行哈希分区,可以是用节点取余进行分区,将各键值对数据分别放入初始分区中,获得一个或多个初始分区。
示例性的,针对步骤S112中生成的<key,row>键值对数据,使用哈希分区对数据进行分区,具体分区规则可以如下:partitionId=key.hashCode%N,其中,partitionId代表该key对应的键值对数据应当分配到的分区标识,key.hashCode表示数据中key的哈希值,N表示分区个数。其中,分区个数要与历史分区个数保持一致。
继续接上述步骤S112举例进行描述,对步骤S112中数据进行hash分区处理,分区数假设为2,表1为对键值对数据进行分区获得的结果,如表1所示:
表1
S114、在每个初始分区中,按照所包括各键值对标识对相应键值对数据进行排序,将排序后的初始分区确定为目标分区。
具体的,分区完成后,对每个分区的键值对数据按照所包括各键值对标识进行顺序排序,确保每个分区的数据按照键值对标识的大小排列,将排序后的初始分区确定为目标分区。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出的步骤具体可以表述为:
S131、针对每个目标分区,对所包含各键值对数据进行合并处理,获取至少一个新键值对数据。
可以清楚的是,对于每个目标分区,其中的键值对数据可能存在对应键值对标识相同的情况,对于该情况可以将键值对标识相同的键值对数据进行合并处理,处理方式可以是进行数据业务字段融合等,形成一个新键值对数据。
示例性的,新增数据为有序的迭代器Iterator<key,row>,可以记为IteratorNew。遍历IteratorNew获取当前数据记为<key1,rowNew>,往下遍历IteratorNew获取所有key=key1的数据进行数据业务字段融合的记为<key1,rowNew>。
S132、获取分区序号与目标分区相同的历史分区。
具体的,根据分区标记part-i,读取历史全量数据分区history-full-part-i和所有历史增量数据分区history-modify1-part-i、history-modify2-part-i、…等,所有历史数据按逆序遍历,针对每个key分组,取分组的第一个值做为key对应的最新历史数据,输出数据结构Iterator<key,row>。
示例性的,系统历史全量数据分别放在HDFS的/data/history/history-full-part-1和data/history/history-full-part-2中,表2为历史全量数据分区:
表2
history-full-part-1数据 | history-full-part-2数据 |
<md5-Person1,(Person1,王三,空值,2)> | <md5-Person2,(Person2,test,空值,1)> |
系统历史新增数据放在HDFS的/data/history/history-modify1-part-1和data/history/history-modify1-part-2中,表3为历史新增数据分区:
表3
history-modify1-part-1数据 | history-modify1-part-2数据 |
<md5-Person1,(Person1,王三,15677771111,3)> | <md5-Person4,(Person4,李四,空值,1)> |
按照历史数据逆序读取,先读取history-modify1*然后读取history-full*合并历史结果,表4为历史全量数据与历史增量数据合并后的历史分区:
表4
其中,业务合并规则可以是:有确定值的数据和空值合并输出确定值,两个确定值合并为拼接字符串以“;”分隔,历史新增数据和历史全量数据发现次数合并为两个次数相加。
S133、基于历史分区及目标分区中各键值对数据的键值对标识,结合数据输出形式,将历史分区与目标分区中数据进行数据融合处理。
可以清楚的是,历史分区中各键值对数据的键值对标识与目标分区中各键值对数据的键值对标识可能存在大于、等于和小于的关系。
具体的,根据历史分区中各键值对数据的键值对标识与目标分区中各键值对数据的键值对标识的关系,以及读取的数据输出形式,如增量数据输出和全量数据输出,采用不同的数据融合处理方式,将历史分区与目标分区中数据进行数据融合处理。例如,若为增量数据输出,则以遍历新增数据的迭代器IteratorNew为主,遍历完IteratorNew即融合完毕;若为全量数据输出,则需要遍历完IteratorHis和IteratorNew两个迭代器。
S134、获得各目标分区对应的结果数据并输出。
具体的,获取各目标分区对应的结果数据并输出给用户。
本实施例中,若读取数据输出形式为新增数据输出形式,则以遍历新增数据的迭代器IteratorNew为主,遍历完IteratorNew即数据融合处理完毕。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,基于历史分区及目标分区中各键值对数据的键值对标识,结合数据输出形式,将历史分区与目标分区中数据进行数据融合处理的步骤可以表述为:
S1331、将历史分区及目标分区中的首个键值对标识分别作为第一键值对标识和第二键值对标识。
示例性的,将历史分区的首个键值对标识作为第一键值对标识,记为<key1,rowHis>;将目标分区的首个键值对标识作为第二键值对标识,记为<key2,rowNew>。
S1332、若数据输出形式为增量数据输出形式,比较第一键值对标识和第二键值对标识。
具体的,第一键值对标识和第二键值对标识是以字符串的形式表示,可以比较字符串的大小,也就是第一键值对标识与第二键值对标识的关系可以是大于、等于或小于。示例性的,若第一键值对标识表示为key1,第二键值对标识表示为key2,则比较结果可以表示为:key1>key2、key1=key2或key1<key2。
S1333、若第一键值对标识大于第二键值对标识,则确定与第二键值对标识对应的键值对数据为结果数据,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第二键值对标识为末个键值对标识。
本实施例中,可以清楚的是,历史分区和目标分区中的键值对数据都是按照键值标识从小到大排列的,若第一键值对标识大于第二键值对标识,则表明当前新增数据无对应历史数据,可以获取新增数据为结果数据,也就是第二键值对标识对应的键值对数据为结果数据。
继续遍历目标分区,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回执行步骤S1332继续键值对标识的比较操作,直至第二键值对标识为末个键值对标识。当第二键值对标识为末个键值对标识,表明已将目标分区中的键值对数据遍历完,数据融合处理结束。
S1334、若第一键值对标识等于第二键值对标识,则将第一键值对标识对应的键值对数据与第二键值对标识对应的键值对数据进行合并处理,确定合并处理后的数据为结果数据,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第二键值对标识为末个键值对标识。
本实施例中,可以清楚的是,历史分区和目标分区中的键值对数据都是按照键值标识从小到大排列的,若第一键值对标识等于第二键值对标识,则表明当前新增数据有对应的历史数据,则将第一键值对标识对应的键值对数据与第二键值对标识对应的键值对数据依据字段的业务融合进行合并处理,合并处理后更新数据为结果数据。
示例性的,业务合并规则可以是:有确定值的数据和空值合并输出确定值,两个确定值合并为拼接字符串以“;”分隔,新增数据和历史数据发现次数合并为两个次数相加。
继续遍历目标分区,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回执行步骤S1332继续键值对标识的比较操作,直至第二键值对标识为末个键值对标识。当第二键值对标识为末个键值对标识,表明已将目标分区中的键值对数据遍历完,数据融合处理结束。
S1335、若第一键值对标识小于第二键值对标识,则将第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回继续键值对标识的比较操作。
本实施例中,可以清楚的是,历史分区和目标分区中的键值对数据都是按照键值标识从小到大排列的,若第一键值对标识小于第二键值对标识,则表明当前新增数据有对应的历史数据,但当前第一键值对标识对应的键值对数据不是当前新增数据对应的历史数据。则将第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回执行步骤S1332继续键值对标识的比较操作,也就是将第一键值对标识的下一个键值对标识与第二键值对标识进行比较。
可以清楚的是,新的第一键值对标识与第二键值对标识进行比较,所产生的比较结果,同样可能产生三种情况,新的第一键值对标识大于、等于或小于第二键值对标识。若新的第一键值对标识大于第二键值对标识,则执行步骤S1333;若新的第一键值对标识等于第二键值对标识,则执行步骤S1334;若新的第一键值对标识小于第二键值对标识,则继续执行步骤S1335,将新的第一键值对标识的下一个键值对标识作为新的第一键值对标识,继续进行后续操作,直到第一键值对标识大于或等于第二键值对标识。
本实施例中,若读取数据输出形式为全量数据输出形式,则需要遍历完历史数据的迭代器IteratorHis和新增数据的迭代器IteratorNew。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,基于历史分区及目标分区中各键值对数据的键值对标识,结合数据输出形式,将历史分区与目标分区中数据进行数据融合处理的步骤具体可以表述为:
S1331’、将历史分区及目标分区中的首个键值对标识分别作为第一键值对标识和第二键值对标识。
示例性的,将历史分区的首个键值对标识作为第一键值对标识,记为<key1,rowHis>;将目标分区的首个键值对标识作为第二键值对标识,记为<key2,rowNew>。
S1332’、若数据输出形式为全量数据输出形式,比较第一键值对标识和第二键值对标识。
具体的,第一键值对标识和第二键值对标识是以字符串的形式表示,可以比较字符串的大小,也就是第一键值对标识与第二键值对标识的关系可以是大于、等于或小于。示例性的,若第一键值对标识表示为key1,第二键值对标识表示为key2,比较结果可以表示为:key1>key2、key1=key2或key1<key2。
S1333’、若第一键值对标识大于第二键值对标识,则确定第二键值对标识对应的键值对数据为结果数据,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第一键值对标识为末个键值对标识且第二键值对标识为末个键值对标识。
本实施例中,可以清楚的是,历史分区和目标分区中的键值对数据都是按照键值标识从小到大排列的,若第一键值对标识大于第二键值对标识,则表明当前新增数据无历史数据,可以获取新增数据为结果数据,也就是第二键值对标识对应的键值对数据为结果数据。
继续遍历目标分区,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回执行步骤S1332’继续键值对标识的比较操作,直至第一键值对标识和第二键值对标识均为末个键值对标识。当第一键值对标识和第二键值对标识均为末个键值对标识,表明已将历史分区和目标分区中的键值对数据遍历完,数据融合处理结束。
S1334’、若第一键值对标识等于第二键值对标识,则将第一键值对标识对应的键值对数据与第二键值对标识对应的键值对数据进行合并处理,确定合并处理后的数据为结果数据,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第一键值对标识为末个键值对标识且第二键值对标识为末个键值对标识。
本实施例中,可以清楚的是,历史分区和目标分区中的键值对数据都是按照键值标识从小到大排列的,若第一键值对标识等于第二键值对标识,则表明当前新增数据有对应的历史数据,则将第一键值对标识对应的键值对数据与第二键值对标识对应的键值对数据依据字段的业务融合进行合并处理,合并处理后更新数据为结果数据。
示例性的,业务合并规则可以是:有确定值的数据和空值合并输出确定值,两个确定值合并为拼接字符串以“;”分隔,新增数据和历史数据发现次数合并为两个次数相加。
继续遍历目标分区,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回执行步骤S1332’继续键值对标识的比较操作,直至第一键值标识和第二键值对标识均为末个键值对标识。当第一键值对标识和第二键值对标识均为末个键值对标识,表明已将历史分区和目标分区中的键值对数据遍历完,数据融合处理结束。
S1335’、若第一键值对标识小于第二键值对标识,则确定第一键值对标识对应的数据为结果数据,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回继续键值对标识的比较操作,直至第一键值对标识为末个键值对标识且第二键值对标识为末个键值对标识。
本实施例中,可以清楚的是,历史分区和目标分区中的键值对数据都是按照键值标识从小到大排列的,若第一键值对标识小于第二键值对标识,则表明当前历史数据无对应的新增数据,可以获取历史数据为结果数据,也就是第一键值对标识对应的键值对数据为结果数据。继续遍历历史分区,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回执行步骤S1332’继续键值对标识的比较操作。
可以清楚的是,新的第一键值对标识与第二键值对标识进行比较,所产生的比较结果,同样可能产生三种情况,新的第一键值对标识大于、等于或小于第二键值对标识。若新的第一键值对标识大于第二键值对标识,则执行步骤S1333’;若新的第一键值对标识等于第二键值对标识,则执行步骤S1334’;若新的第一键值对标识小于第二键值对标识,则继续执行步骤S1335’。直至所述第一键值对标识为末个键值对标识且所述第二键值对标识为末个键值对标识。当第一键值对标识和第二键值对标识均为末个键值对标识,表明已将历史分区和目标分区中的键值对数据遍历完,数据融合处理结束。
可选的,基于历史分区及目标分区中各键值对数据的键值对标识,结合数据输出形式,将历史分区与目标分区中数据进行数据融合处理,包括:
若数据输出形式为全量数据输出形式且目标分区中无新增数据,则获取相应历史分区中历史数据为结果数据。
具体的,若数据输出形式为全量数据输出形式,若当前分区新增数据为空,则表明当前历史分区无对应新增数据,则可以获取相应历史分区中历史数据为结果数据。例如,可直接复制历史文件数据输出,不用加载读取历史数据,减少数据读取。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出之后,还包括:
针对每个目标分区,将结果数据分别存储至分布式文件系统中,并根据结果数据更新索引存储库和内容存储库,其中,索引存储库存储索引更新的结果数据,内容存储库存储内容更新的结果数据。
具体的,从上述步骤获得每个分区的结果数据,无论是全量数据还是增量数据,都按分区标记存储在分布式文件系统HDFS上,输出文件命名以分区标记结尾,便于下次数据碰撞融合。另将新增数据New和索引更新数据Mod-index入索引存储库,减少索引入库数据,新增数据New、内容更新数据Mod-content入内容存储库。
示例性的,输出到hdfs新的路径下/data/history0908/,输出文件命名以part-1和part-2结尾,便于下次碰撞融合时使用。另新增数据和更新数据分别入索引库es和列式存储库hbase。
为了更清楚的表述,对于新增数据输出形式和全量数据输出形式,以分别举例说明新增数据和历史数据的数据融合处理方法,表5为目标分区与历史分区所包含数据;表6为若本次为增量数据输出形式获取的结果数据;表7为若本次为全量数据输出形式获取的结果数据。
表5
表6
表7
以手机号为索引字段计算得到:
(Person3,张三,15688886666,1)为新增数据;
(Person1,王三,13111111111;15677771111,6)为更新数据,且手机号字段更新,为索引更新数据;
(Person2,test,空值,2)为更新数据,且索引字段未更新;
(Person4,李四,空值,1)为历史数据。
为了更清楚的描述本发明实施例提供的数据融合处理过程,图2为本发明实施例提供的数据融合处理过程的示意图,如图2所示:
在数据融合处理过程中,所需的处理对象均是基于分布式计算框架从分布式文件系统中获取新增数据和历史数据,数据融合处理过程需要经过:对新增数据进行读取处理;进行分区处理获得目标分区并排序;获取历史分区;目标分区和历史分区中数据合并处理;最终获取结果数据;结果数据都按分区标记存储在分布式文件系统上,另根据结果数据是索引更新还是内容更新分别存储至索引数据库和内容数据库中。
作为上述实施例的可选实施例,具体化了新增数据输出形式下数据融合处理步骤及全量数据输出形式下数据融合处理步骤,采用全量加多次增量的方式进行数据融合处理,提高了数据处理效率,降低了资源消耗。同时,将结果数据分别存储至分布式文件系统中,并根据结果数据更新索引存储库和内容存储库,便于下次数据融合处理,且减少索引入库数据。
实施例二
图3为本发明实施例二提供的一种数据融合处理装置的结构框图,如图3所示,该装置包括:分区处理模块21、输出形式获取模块22和融合处理模块23。
分区处理模块21,用于根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;
输出形式获取模块22,用于获取设定的数据输出形式,其中,所述数据输出形式包括增量数据输出形式和全量数据输出形式;
融合处理模块23,用于根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
可选的,分区处理模块21,包括:
新增数据序列读取单元,用于从分布式文件系统中读取新增数据序列;
键值对数据生成单元,用于根据预设处理规则对新增数据序列进行处理,生成一组键值对数据,其中,键值对数据包括键值对标识;
初始分区获取单元,用于根据哈希分区规则对各键值对数据进行分区,获得至少一个初始分区;
目标分区获取单元,用于在每个初始分区中,按照所包括各键值对标识对相应键值对数据进行排序,将排序后的初始分区确定为目标分区。
可选的,融合处理模块23包括:
新键值对数据获取单元,用于针对每个目标分区,对所包含各键值对数据进行合并处理,获取至少一个新键值对数据;
历史分区获取单元,用于获取分区序号与目标分区相同的历史分区;
数据融合处理单元,用于基于历史分区及目标分区中各键值对数据的键值对标识,结合数据输出形式,将历史分区与目标分区中数据进行数据融合处理;
结果数据获取单元,用于获得各目标分区对应的结果数据并输出。
可选的,数据融合处理单元具体可以用于:
将历史分区及目标分区中的首个键值对标识分别作为第一键值对标识和第二键值对标识;
若数据输出形式为增量数据输出形式,比较第一键值对标识和第二键值对标识;
若第一键值对标识大于第二键值对标识,则确定与第二键值对标识对应的键值对数据为结果数据,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第二键值对标识为末个键值对标识;
若第一键值对标识等于第二键值对标识,则将第一键值对标识对应的键值对数据与第二键值对标识对应的键值对数据进行合并处理,确定合并处理后的数据为结果数据,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第二键值对标识为末个键值对标识;
若第一键值对标识小于第二键值对标识,则将第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回继续键值对标识的比较操作。
可选的,数据融合处理单元具体可以用于:
将历史分区及目标分区中的首个键值对标识分别作为第一键值对标识和第二键值对标识;
若数据输出形式为全量数据输出形式,比较第一键值对标识和第二键值对标识;
若第一键值对标识大于第二键值对标识,则确定第二键值对标识对应的键值对数据为结果数据,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第一键值对标识为末个键值对标识且第二键值对标识为末个键值对标识;
若第一键值对标识等于第二键值对标识,则将第一键值对标识对应的键值对数据与第二键值对标识对应的键值对数据进行合并处理,确定合并处理后的数据为结果数据,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,将第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至第一键值对标识为末个键值对标识且第二键值对标识为末个键值对标识;
若第一键值对标识小于第二键值对标识,则确定第一键值对标识对应的数据为结果数据,将第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回继续键值对标识的比较操作,直至第一键值对标识为末个键值对标识且第二键值对标识为末个键值对标识。
可选的,数据融合处理单元具体可以用于:
若数据输出形式为全量数据输出形式且目标分区中无新增数据,则获取相应历史分区中历史数据为结果数据。
可选的,该装置还包括:
存储模块,用于针对每个目标分区,将结果数据分别存储至分布式文件系统中,并根据结果数据更新索引存储库和内容存储库,其中,索引存储库存储索引更新的结果数据,内容存储库存储内容更新的结果数据。
上述装置可执行本发明前述所有实施例所提供的数据融合处理方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
实施例三
图4为本发明实施例三提供的一种计算机设备的结构框图,如图4所示,该计算机设备包括处理器31、存储器32、输入装置33和输出装置34;计算机设备中处理器31的数量可以是一个或多个,图4中以一个处理器31为例;计算机设备中的处理器31、存储器32、输入装置33和输出装置34可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据融合处理方法对应的模块(例如,数据融合处理装置中的分区处理模块21、输出形式获取模块22和融合处理模块23)。处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的数据融合处理方法。
存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器32可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置33可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置34可包括显示屏等显示设备。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据融合处理方法,该方法包括:
根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;
获取设定的数据输出形式,其中,数据输出形式包括增量数据输出形式和全量数据输出形式;
根据数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据融合处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据融合处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据融合处理方法,其特征在于,包括:
根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;
获取设定的数据输出形式,其中,所述数据输出形式包括增量数据输出形式和全量数据输出形式;
根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
2.根据权利要求1所述的方法,其特征在于,所述根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,包括:
从分布式文件系统中读取新增数据序列;
根据预设处理规则对所述新增数据序列进行处理,生成一组键值对数据,其中,所述键值对数据包括键值对标识;
根据哈希分区规则对各所述键值对数据进行分区,获得至少一个初始分区;
在每个初始分区中,按照所包括各键值对标识对相应键值对数据进行排序,将排序后的初始分区确定为目标分区。
3.根据权利要求2所述的方法,其特征在于,所述根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出,包括:
针对每个目标分区,对所包含各键值对数据进行合并处理,获取至少一个新键值对数据;
获取分区序号与所述目标分区相同的历史分区;
基于所述历史分区及目标分区中各键值对数据的键值对标识,结合所述数据输出形式,将所述历史分区与目标分区中数据进行数据融合处理;
获得各所述目标分区对应的结果数据并输出。
4.根据权利要求3所述的方法,其特征在于,所述基于所述历史分区及目标分区中各键值对数据的键值对标识,结合所述数据输出形式,将所述历史分区与目标分区中数据进行数据融合处理,包括:
将所述历史分区及目标分区中的首个键值对标识分别作为第一键值对标识和第二键值对标识;
若所述数据输出形式为增量数据输出形式,比较第一键值对标识和第二键值对标识;
若所述第一键值对标识大于所述第二键值对标识,则确定所述第二键值对标识对应的键值对数据为结果数据,将所述第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至所述第二键值对标识为末个键值对标识;
若所述第一键值对标识等于所述第二键值对标识,则将所述第一键值对标识对应的键值对数据与所述第二键值对标识对应的键值对数据进行合并处理,确定合并处理后的数据为结果数据,将所述第一键值对标识的下一个键值对标识作为新的第一键值对标识,将所述第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至所述第二键值对标识为末个键值对标识;
若所述第一键值对标识小于所述第二键值对标识,则将所述第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回继续键值对标识的比较操作。
5.根据权利要求3所述的方法,其特征在于,所述基于所述历史分区及目标分区中各键值对数据的键值对标识,结合所述数据输出形式,将所述历史分区与目标分区中数据进行数据融合处理,包括:
将所述历史分区及目标分区中的首个键值对标识分别作为第一键值对标识和第二键值对标识;
若所述数据输出形式为全量数据输出形式,比较第一键值对标识和第二键值对标识;
若所述第一键值对标识大于所述第二键值对标识,则确定所述第二键值对标识对应的键值对数据为结果数据,将所述第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至所述第一键值对标识为末个键值对标识且所述第二键值对标识为末个键值对标识;
若所述第一键值对标识等于所述第二键值对标识,则将所述第一键值对标识对应的键值对数据与所述第二键值对标识对应的键值对数据进行合并处理,确定合并处理后的数据为结果数据,将所述第一键值对标识的下一个键值对标识作为新的第一键值对标识,将所述第二键值对标识的下一个键值对标识作为新的第二键值对标识,返回继续键值对标识的比较操作,直至所述第一键值对标识为末个键值对标识且所述第二键值对标识为末个键值对标识;
若所述第一键值对标识小于所述第二键值对标识,则确定第一键值对标识对应的数据为结果数据,将所述第一键值对标识的下一个键值对标识作为新的第一键值对标识,返回继续键值对标识的比较操作,直至所述第一键值对标识为末个键值对标识且所述第二键值对标识为末个键值对标识。
6.根据权利要求3所述的方法,其特征在于,所述基于所述历史分区及目标分区中各键值对数据的键值对标识,结合所述数据输出形式,将所述历史分区与目标分区中数据进行数据融合处理,包括:
若所述数据输出形式为全量数据输出形式且目标分区中无新增数据,则获取相应历史分区中历史数据为结果数据。
7.根据权利要求1所述的方法,其特征在于,所述根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出之后,还包括:
针对每个目标分区,将所述结果数据分别存储至分布式文件系统中,并根据结果数据更新索引存储库和内容存储库,其中,所述索引存储库存储索引更新的结果数据,内容存储库存储内容更新的结果数据。
8.一种数据融合处理装置,其特征在于,包括:
分区处理模块,用于根据预设分区规则对新增数据进行分区处理,获得至少一个目标分区,其中,目标分区的个数与历史分区个数相同;
输出形式获取模块,用于获取设定的数据输出形式,其中,所述数据输出形式包括增量数据输出形式和全量数据输出形式;
融合处理模块,用于根据所述数据输出形式,对每个目标分区中数据进行融合处理,获得处理后的结果数据并输出。
9.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据融合处理方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的数据融合处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111281668.4A CN113971160A (zh) | 2021-11-01 | 2021-11-01 | 一种数据融合处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111281668.4A CN113971160A (zh) | 2021-11-01 | 2021-11-01 | 一种数据融合处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113971160A true CN113971160A (zh) | 2022-01-25 |
Family
ID=79589113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111281668.4A Pending CN113971160A (zh) | 2021-11-01 | 2021-11-01 | 一种数据融合处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971160A (zh) |
-
2021
- 2021-11-01 CN CN202111281668.4A patent/CN113971160A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004518226A (ja) | データベースシステムおよびクエリオプティマイザ | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
WO2022134471A1 (zh) | 区块链节点的管理方法、装置、计算机设备和存储介质 | |
CN110597852A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN112445889A (zh) | 存储数据、检索数据的方法及相关设备 | |
KR20190079354A (ko) | 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN113220904A (zh) | 数据处理方法及数据处理装置、电子设备 | |
CN110535686B (zh) | 异常事件处理方法和装置 | |
CN113285960B (zh) | 一种服务数据共享云平台的数据加密方法及系统 | |
CN115905630A (zh) | 一种图数据库查询方法、装置、设备及存储介质 | |
CN111475511A (zh) | 基于树状结构的数据存储方法、访问方法、装置及设备 | |
CN108628969B (zh) | 一种空间关键字索引方法及平台、存储介质 | |
US10216771B2 (en) | Creating and handling identification for a resource in a configuration database | |
CN113971160A (zh) | 一种数据融合处理方法、装置、设备及存储介质 | |
CN113821550B (zh) | 路网拓扑图的划分方法、装置、设备及计算机程序产品 | |
CN116127154A (zh) | 知识标签推荐方法、装置、电子设备及存储介质 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
EP3793171B1 (en) | Message processing method, apparatus, and system | |
CN111858527A (zh) | 一种日志数据建模分析方法及计算机可读存储介质 | |
CN111143582A (zh) | 一种双索引实时更新联想词的多媒体资源推荐方法及装置 | |
CN112749189A (zh) | 数据查询方法及装置 | |
CN117729176B (zh) | 基于网络地址和响应体的应用程序接口聚合方法及装置 | |
CN114417085B (zh) | 数据处理方法、装置、设备及存储介质 | |
JP5953262B2 (ja) | データ索引装置、データ索引方法及びプログラム |
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 |