CN106445968A - 一种数据合并方法及装置 - Google Patents

一种数据合并方法及装置 Download PDF

Info

Publication number
CN106445968A
CN106445968A CN201510489555.1A CN201510489555A CN106445968A CN 106445968 A CN106445968 A CN 106445968A CN 201510489555 A CN201510489555 A CN 201510489555A CN 106445968 A CN106445968 A CN 106445968A
Authority
CN
China
Prior art keywords
data
key assignments
nth
inquiry
merging
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.)
Granted
Application number
CN201510489555.1A
Other languages
English (en)
Other versions
CN106445968B (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510489555.1A priority Critical patent/CN106445968B/zh
Publication of CN106445968A publication Critical patent/CN106445968A/zh
Application granted granted Critical
Publication of CN106445968B publication Critical patent/CN106445968B/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/284Relational databases

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)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据合并方法及装置,所述方法包括:接收第一数据;确定所述第一数据对应的第一键值;根据所述第一键值将所述第一数据存储到数据库中;根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;如果根据所述第二键值从所述数据库中查询到对应的所述第二数据,则合并所述第一数据和所述第二数据。本发明中,对接收到的第一数据采用键值存储,并根据该第一数据构造查询第二数据的键值,然后,根据第二数据的键值查询数据库是否存储有对应的第二数据,并在查询第二数据时,合并第一条和第二数据,简化了多条数据合并时的关联查询,提高了流式数据中多条数据的实时合并效率。

Description

一种数据合并方法及装置
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据合并方法及装置。
背景技术
随着时代的进步和经济的发展,人们日常生活中对信息的需求量也越来越大,尤其是随着互联网的日益普及,每天海量的信息都在互联网上发布和传播,大规模数据处理越来越趋向于实时,各种应用场景对数据的实时性要求越来越高,而出现了流式数据,因此,对流式数据处理的技术要求也越来越高。
对于流式数据的处理,如果按照传统关系数据库的处理,应用程序每次只能处理数据流的当前一条数据,并对这条数据进行实时计算和处理。而对多个有关联的数据流的处理,往往需要按一定规则将不同数据流的数据关联在一起,再进行处理,类似于传统数据库中多表格的连接操作,即把已存在表格中的数据按照一定规则合并。而这种使用传统关系数据库的处理过程对于流式数据来说,只能将每个流的数据都保存在对应的表格中,然后使用结构化查询语言(SQL,Structured Query Language)语句进行定期的关联查询。
但是,由于传统关系数据库多表关联查询性能有限,因此只能以较长的周期T(至少是几秒甚至几分钟或者更长)进行关联查询,并触发合并动作,因此,对于流式数据合并操作来说,平均延误的时间为T/2,丧失了流式数据处理的实时性。因此,如何提高流式数据合并的实时效率是目前有待解决的技术问题。
发明内容
本发明实施例中提供了一种数据合并方法及装置,以解决现有流式数据中多条数据合并实时效率不高问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
第一方面提供了一种数据合并方法,所述方法包括:
接收第一数据;
确定所述第一数据的第一键值;
根据所述第一键值将所述第一数据存储到数据库中;
根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;
如果根据所述第二键值从所述数据库中查询到对应的所述第二数据,则合并所述第一数据和所述第二数据。
可选的,所述第一预设合并条件为所述第一数据和第二数据的属性值相同。
可选的,还包括:
在查询到对应的所述第二数据时,根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N为大于等于3的自然数;
如果根据所述第N键值从所述数据库中逐步查询到对应的所述第N数据,则合并所述第一数据、所述第二数据至所述第N数据。
可选的,所述根据所述第二数据逐步构建查询第N数据的第N键值包括:
根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值。
可选的,所述第二预设合并条件为所述第一数据、第二数据至第N数据的属性值相同。
第二方面提供一种数据合并装置,包括:
接收单元,用于接收第一数据;
确定单元,用于确定所述第一数据的第一键值;
发送单元,用于根据所述第一键值将所述第一数据发送到数据库进行存储;
第一构建单元,用于在所述发送单元发送所述第一数据后,根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;
第一查询单元,用于根据所述第二键值查询所述数据库中是否存储有对应的所述第二数据;
第一合并单元,用于在所述第一查询单元查询到所述第二数据时,合并所述第一数据和所述第二数据。
可选的,所述第一构建单元构建所述第一键值的第一预设合并条件为所述第一数据和第二数据的属性值相同。
可选的,还包括:
第二构建单元,用于在所述查询单元查询到对应的所述第二数据时,根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N≥3的自然数;
第二查询单元,用于根据所述第N键值逐步查询所述数据库中是否存储有对应的所述第N数据;
第二合并单元,用于在所述第二查询单元查询到所述第N数据时,合并所述第一数据、所述第二数据至所述第N数据。
可选的,所述第二构建单元,具体用于根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值。
可选的,所述第二构建单元构建所述第二键值的第二预设合并条件为第一数据,第二数据至第N数据的属性值相同。
由上述技术方案可知,本发明实施例中,对接收到的第一数据采用键值存储,并根据该第一数据构造查询第二数据的键值,然后,根据第二数据的键值查询数据库是否存储有对应的第二数据,如果有,则合并(即关联)第一数据和第二数据,简化了多条数据合并时的关联查询,提高了流式数据中多条数据的实时合并效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据合并方法的流程图;
图2为本发明实施例提供的一种数据合并方法的另一流程图;
图3为本发明实施例提供的一种数据合并装置的构示意图;
图4为本发明实施例提供的一种数据合并装置的另一结构示意图;
图5为本发明实施例提供的一种数据合并方法的第一应用实例的流程图;
图6为本发明实施例提供的一种数据合并方法的第二应用实例的流程图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
请参阅图1,图1为本发明实施例提供的一种数据合并方法的流程图,所述方法包括:
步骤101:接收第一数据;
该实施例中,系统接收到的第一数据可以是单独的一条数据,也可以是一个数据包,该数据包中可以包括一条数据,也可以包括多条数据,当然,第一数据也可以是数据流。如果接收到的是多条数据或者是数据流,需要将多条数据或数据流拆分成每条数据,然后,确定每条数据对应的键值,根据每条数据对应的键值将该条数据存储到数据库中;然后,根据每条数据按照对应的预设合并条件构建查询与每条数据对应数据(即相关数据)的键值;然后,根据每条数据对应数据的键值,判断是否能从所述数据库中查询到对应的该键值的数据,如果能查询到,则合并每条数据及其对应的数据(即相关的数据)。如果查询不到,结束本次操作,或结束流程。
比如,一条数据,可以是用户登录网站的交易数据,也可以是用户的支付数据等。
需要说明的是,本发明实施例中,将连续进入系统的多条数据可以称为流式数据,流式数据中的每条数据流可以由多条数据组成。通常情况下,数据流中的每条数据的数据结构都是一样的,但是每条数据对应的键值不同。
步骤102:确定所述第一数据对应的第一键值;
该步骤中,第一数据可以包括一条数据,也可以包括多条数据,每条数据都对应一个键值,键值可以根据该数据的一个属性或多个属性值来构造,其具体的构造方式,对于本领域技术人员来说,已是熟知技术,在此不再赘述。
比如,当数据流A的一条数据进入系统时,系统根据接收到的当前数据的属性值得到键值(Key)A0(也可以称为是数据流A的键值)。其中,键值是windows中注册表中的概念,位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据。其中,注册表里面的所有信息是以各种形式的键值项数据保存下来。在注册表编辑器的右窗口中,保存的都是各种键值项数据。键值项由键值名、数据类型和键值三部分组成,其格式为:“键值名:数据类型:键值”。通常情况下,键值与数据类型或格式有关,键值可以包括几种数据类型,以适应不同环境的使用需求。
其中,键值又可以称为存储键值,其作用是用来存储数据的,每条数据都对应一个键值。确定当前数据对应的键值有多种方式,并且,确定当前数据键值的过程与该数据的格式有关,比如,如果数据是java对象,可以从配置信息中的属性名通过反射来从java对象中获取对应属性的键值内容;如果数据是字符串,可以根据不同的分隔符对字符串进行分割来获取对应位置的键值内容;如果是其他特定的数据格式,需要根据相应的数据格式来获取键值内容。本实施例不再一一赘述。
步骤103:根据所述第一键值将所述第一数据存储到数据库中;
该步骤中,也就是说,以第一键值为索引,将第一数据存储到数据库中,以便于后续根据该第一键值可以查询到该第一数据。当然,还可以根据该第一键值构造能与该第一数据关联的第二数据的第二键值。如下所述。
步骤104:根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;其中,所述第一数据和所述第二数据相关;
该步骤中,根据第一数据按照第一预设合并条件计算出查询能合并的第二数据的第二键值。第一预设合并条件是两条数据(即第一数据和第二数据,下同)的属性值相同,根据该属性值来构造该数据对应的键值,即A.B0’=B.B0,其中,A是第一数据,B是第二数据,B0’是根据第一数据构建出查询第二数据B的键值,B0是第二数据B的键值,B0’和B0的值相同,只是二者是根据不同的数据的属性值构造的。
其中,本实施例中,预设合并条件是用户根据实际需要预先设置的,其目的是合并(即关联)数据库相关的数据,当然,预设合并条件还可以包括其他参数,本实施例不作限制。
需要说明的是,本实施例中,对于任意的数据流A,假设该数据流A中的一条数据需要与数据流B中的数据进行合并,对于数据流A中的任一条数据,根据该条数据可以得到查询数据流B中的一个Key B0,并且对于数据流B中的任意一条数据,也可以得到数据流A中的一个Key A0。
步骤105:如果根据所述第二键值从所述数据库中查询到对应的所述第二数据,则合并所述第一数据和所述第二数据。
该步骤中,系统在构建查询第二数据的第二键值后,查询数据库中是否存储有与所述第二键值对应的第二数据,如果有,则合并第一数据和第二数据;如果没有,即结束该流程。需要说明的是,本实施例中,对内存中的数据合并,也可以理解为,在数据库中将第一数据和第二数据进行关联。
本发明实施例中,对接收到的第一数据采用键值存储,并根据该第一数据构造查询第二数据(即将与第一数据相关的数据称为第二数据)的键值,然后,根据第二数据的键值查询数据库是否存储有对应的第二数据,如果有,则合并(即关联)第一数据和第二数据,简化了数据合并时的关联查询,提高了多条数据的实时合并效率。
还请参阅图2,图2为本发明实施例提供的一种数据合并方法的另一流程图,所述方法包括:
步骤201至步骤204,详见步骤101至步骤104,在此不再赘述:
步骤205:如果根据所述第二键值从所述数据库中查询到对应的所述第二数据,则根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N为大于等于3的自然数;
需要说明的是,本实施例中的第N数据,可以是一条数据,也可以多条数据,本实施例统称为第N数据。
其中,根据所述第二数据逐步构建查询第N数据的第N键值,可以是根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值。
其中,第二预设合并条件为N条数据合并。N为大于等于3的自然数,也就是,第二预设合并条件为3条数据(即第一数据、第二数据至第N数据,下同)的属性值相同,当然,还可以是更多条的数据的属性值相同。
步骤206:如果根据所述第N键值从所述数据库中逐步查询到对应的所述第N数据,则合并所述第一数据、所述第二数据至所述第N数据。
其中,该步骤中,在查询到第二数据时,按照第二预设合并条件,根据所述第二数据构建查询第三数据的第三键值,如果根据第三键值从数据库中能查询到第三数据,然后,再根据第三数据构建查询第四数据的第四键值,然后,根据第四键值从数据库中查询到第四数据,依次类推,直至查询到第N数据,然后合并第一数据、第二数据、第三条数据……直到第N数据。
当然,在该实施例中,第N数据也可以是一条数据,比如,N为第三条数据,或者第四条数据等等。
该步骤中,在查询到第N数据时,直接合并查询到的第一数据到第N数据。
需要说明的是,在该实施例中,如果预设合并条件是两条数据合并(即两条数据的键值相同),则在数据库中查询到对应的第一条数据和第二条数据时,就合并该第一条数据和第二条数据,即在数据库中关联第一条数据和第二条数据;如果预设合并条件是N条(其中N可是第三条或第四条以上)数据合并(即N数据的键值相同),则在数据库中查询到对应的所有N条数据时,才能合并该N条数据。
本发明实施例中,对接收到的第一数据采用键值存储,并根据该第一数据构造查询第二数据的键值,然后,如果根据第二数据的键值查询到数据库中存储有对应的第二数据,则根据第二数据构造查询第三数据的键值,如果根据第三键值查询数库得到对应的第三数据,依次类推,直到查找到第N数据,然后合并N数据。简化了流式数据中的多条数据合并时的关联查询,提高了多条数据的实时合并效率。
为了便于理解,下面依据的应用实例来说明。
请参阅图3,图3为本发明实施例提供的一种数据合并方法的第一应用示例图,该实施例中,预设合并条件以两条数据合并为例,具体包括:
步骤301:系统接收到数据A;
其中,数据A可以是流式数据中的其中一条数据。
步骤302:系统构建所述数据A的键值A0;其中,键值A0也可以称为存储键值。
假设数据A为用户登录网上的交易数据,则构建所述数据A的键值A0,为,其构建键值的方式可以根据数据中的用户ID来构建键值,当然,并不限于此。
步骤303:系统根据键值A0将所述数据A存储到数据库中;
其中,本实施例中的数据库,可以是内存,存储器,KV存储器等,当然,所述数据库可以是所有能存储数据的设备。本实施例以KV存储器为例。
步骤304:根据所述数据A构建查询条数据B的键值B0;
结合上述例子,假设数据B为交易数据,由于数据A和数据B均为同一用户(即同一ID)发送的交易数据和支付数据等,根据该数据A和数据B的属性分别构造的键值也相同(即是同一ID),所以,数据A和数据B就是相关联的数据,需要在数据库中将二者关联起来。
步骤305:系统根据所述键值B0从所述数据库中查询所述数据B;
步骤306:系统判断是否查询到所述数据B,如果查询到,则执行步骤307;否则,执行步骤308;
步骤307:合并所述数据A和所述数据B;
步骤308:结束本次流程。
该实施例中,当数据流的一条数据A进入系统时,系统根据当前数据A得到键值(Key)A0,并根据该Key A0将当前数据A存储到数据库中,形如A0->A,即通过键值A0可以查询到数据A。
然后,根据数据A计算出需要查询数据B的Key B0,并根据B0到数据库中进行查询,如果查询到该B0对应的数据B,则合并数据A和数据B,得到合并结果A和B。
如果未查询到数据B,则结束时本次流程。以便于系统后续在接收到数据B进入系统时,按照上述过程进行构造和查询,然后,再触发合并数据A和数据B的操作。
请参阅图4,图4为本发明实施例提供的一种数据合并方法的第二应用示例图,该实施例中,假设需要合并的数据(或数据流)为A,B和C,其中,预设合并条件为A.B0’=B.B0并且B.C0’=C.C0,其中,B0’是根据数据A构建的键值,B0是数据B的键值,C0’是根据数据B构建的键值,C0是数据C的键值。本实施例,以三条数据合并为例,在实际应用中,并不限于此三条,可以是N条,其N条数据合并过程,与三条数据合并过程类似,具体详见下述,在此不再赘述,所述方法包括:
步骤401:系统接收到数据A;
其中,数据A可以是流式数据中的其中一条数据。
步骤402:系统构建所述数据A的键值A0;其中,键值A0也可以称为存储键值。
假设数据A为用户登录网上交易数据,则构建所述数据A的键值A0,为,可以根据数据中的用户ID来构建键值,当然,并不限于此。
步骤403:系统根据键值A0将所述数据A存储到数据库中;
其中,本实施例中的数据库,可以是内存,存储器,KV存储器等,也就是说,所述数据库可以是所有能存储数据的设备。
步骤404:根据所述数据A按照预设合并条件构建查询条数据B的键值B0’;其中,所述数据A和所述数据B相关;
比如,数据A和数据B均为同一用户(即同一ID)发送的交易数据和支付数据等。
步骤405:系统根据所述键值B0’从所述数据库中查询所述数据B;
步骤406:系统判断是否查询到数据B,如果查询到,则执行步骤407;否则,执行步骤411;
步骤407:系统根据所述数据B按照预设合并条件构建查询数据C的键值C0’;
步骤408:系统根据所述键值C0’从所述数据库中查询所述数据C;
步骤409:系统判断是否查询到所述数据C,如果查询到,则执行步骤410;否则,执行步骤411;
步骤410:系统合并所述数据A、数据B和数据C,得到合并结果数据A、B和C;
步骤411:结束本次流程。
也就是说,该实施例中,以需要合并的是三个数据A、B和C为例,预设合并条件为A.B0’=B.B0并且B.C0’=C.C0。
当任意一条数据进入系统时,例如数据A,根据事先定义好的预设合并条件,将数据A保存到数据库中;然后,从数据A中构建出查询数据B的Key B0’,并且根据Key B0’去数据库中查询数据B,如果没有查询到,则合并结束。
如果查询到数据B,在根据事先定义好的预设合并条件,从数据B中构建出查询数据C的键值Key C0’,然后,根据键值Key C0’去数据库中查询数据C,如果没有查询到,则合并结束;
如果查询到数据C,则即符合预设合并条件的数据A,B,C都已存在,合并数据A,B,C,并合并成功后,将该合并后的数据A,B,C交由其他设备进行数据处理。
本发明实施例中,对接收到的数据采用键值存储,并根据该数据构造查询能合并的数据的键值,然后,根据查询到的键值查询数据库是否存储有对应的数据,如果查询到对应的数据,则合并该数据。本实施例简化了多条数据合并时的关联查询,提高了多条数据合并时的实时效率。
基于上述方法的实现过程,本实施例还提供一种数据合并装置,其结构示意图如图5所示,所述装置包括:接收单元51,确定单元52,发送单元53,第一构建单元54,第一查询单元55和第一合并单元56,其中,
所述接收单元51,用于接收第一数据;其中,第一数据的描述详见上述,在此不再赘述;
所述确定单元52,用于确定所述第一数据对应的第一键值;
所述发送单元53,用于根据所述第一键值将所述第一数据发送到数据库进行存储;
所述第一构建单元54,用于在所述发送单元53发送所述第一数据后,根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;
其中,所述第一构建单元54构建所述第一键值的第一预设合并条件为两条数据的属性值相同。
所述第一查询单元55,用于根据所述第二键值查询所述数据库中是否存储有对应的所述第二数据;
所述第一合并单元56,用于在所述第一查询单元55查询到所述第二数据时,合并所述第一数据和所述第二数据。
可选的,所述装置还可以包括:第二构建单元61,第二查询单元62和第二合并单元64,其结构示意图如图6所示,其中,
所述第二构建单元61,用于在所述查询单元查询到对应的所述第二数据时,根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N≥3,所述第N数据与所述第二数据相关和/或第一数据的属性值相同;
其中,所述第二构建单元61,具体用于根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值。所述第二预设合并条件为三条以上数据的属性值相同。
所述第二查询单元62,用于根据所述第N键值逐步查询所述数据库中是否存储有对应的所述第N数据;
所述第二合并单元63,用于在所述第二查询单元62查询到所述第N数据时,合并所述第一数据、所述第二数据至所述第N数据。
所述装置中各个单元的功能和作用的实现过程,详见上述方法中对应步骤的实现过程,在此不再赘述。
参见图7,为本发明实施例电子设备结构图,该电子设备700包括:处理器710、存储器720、收发器730和总线740;
处理器710、存储器720、收发器730通过总线740相互连接;总线740可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器720,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器720可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。具体用于存储预设合并条件。
收发器730用于连接其他设备,并与其他设备进行通信。具体的所述收发器730可以用于:接收第一数据;其中,所述第一数据可以是一条数据,也可以是一个数据包,该数据包中包括一条或多条,当然,第一数据也可以是数据流。需要说明的是,当第一数据是多条数据或数据流时,需要将该多条数据或数据流拆分成每条数据。
所述处理器710执行存储器720中存储的所述程序代码,用于确定所述第一数据的第一键值;当然,如果第一数据是多条数据时或数据流时,确定每条数据对应的键值;
所述收发器730,还用于根据所述第一键值将所述第一数据存储到数据库中;
如果第一数据包括多条数据流时,收发器730,还用于需要按照每条数据对应的键值将对应的数据存储到数据库中。
所述处理器710,还用于根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;以及在根据所述第二键值从所述数据库中查询到对应的所述第二数据时,合并所述第一数据和所述第二数据。
可选地,其中,第一预设合并条件为两条数据的属性的属性值相同。
如果第一数据包括多条数据流时,处理器710,还用于根据每条数据按照其对应的预设合并条件分别构建查询与每条数据关联的数据的键值;以及在根据所述键值从所述数据库中查询到对应的每条数据时,合并所述这两条关联的数据。
可选地,所述处理器710,还用于在查询到对应的所述第二数据时,根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N为大于等于3的自然数,所述第N数据与所述第二数据和/或所述第一数据相关;以及在根据所述第N键值从所述数据库中逐步查询到对应的所述第N数据时,合并所述第一数据、所述第二数据至所述第N数据。
可选地,所述处理器710根据所述第二数据逐步构建查询第N数据的第N键值包括:根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值:其中,第二预设合并条件为三条以上数据的属性值相同。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据合并方法,其特征在于,包括:
接收第一数据;
确定所述第一数据对应的第一键值;
根据所述第一键值将所述第一数据存储到数据库中;
根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;
如果根据所述第二键值从所述数据库中查询到对应的所述第二数据,则合并所述第一数据和所述第二数据。
2.根据权利要求1所述的方法,其特征在于,所述第一预设合并条件为所述第一数据和第二数据的属性值相同。
3.根据权利要求1所述的方法,其特征在于,还包括:
在查询到对应的所述第二数据时,根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N≥3的自然数;
如果根据所述第N键值从所述数据库中逐步查询到对应的所述第N数据,则合并所述第一数据、所述第二数据至所述第N数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第二数据逐步构建查询第N数据的第N键值包括:
根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值。
5.根据权利要求4所述的方法,其特征在于,所述第二预设合并条件为所述第一数据、第二数据至第N数据的属性值相同。
6.一种数据合并装置,其特征在于,包括:
接收单元,用于接收第一数据;
确定单元,用于确定所述第一数据的第一键值;
发送单元,用于根据所述第一键值将所述第一数据发送到数据库进行存储;
第一构建单元,用于在所述发送单元发送所述第一数据后,根据所述第一数据按照第一预设合并条件构建查询第二数据的第二键值;
第一查询单元,用于根据所述第二键值查询所述数据库中是否存储有对应的所述第二数据;
第一合并单元,用于在所述第一查询单元查询到所述第二数据时,合并所述第一数据和所述第二数据。
7.根据权利要求6所述的装置,其特征在于,所述第一构建单元构建所述第一键值的第一预设合并条件为所述第一数据和第二数据的属性值相同。
8.根据权利要求6所述的装置,其特征在于,还包括:
第二构建单元,用于在所述查询单元查询到对应的所述第二数据时,根据所述第二数据逐步构建查询第N数据的第N键值;其中,所述N≥3的自然数;
第二查询单元,用于根据所述第N键值逐步查询所述数据库中是否存储有对应的所述第N数据;
第二合并单元,用于在所述第二查询单元查询到所述第N数据时,合并所述第一数据、所述第二数据至所述第N数据。
9.根据权利要求8所述的装置,其特征在于,所述第二构建单元,具体用于根据所述第二数据按照第二预设合并条件逐步构建查询第N数据的第N键值。
10.根据权利要求9所述的装置,其特征在于,
所述第二构建单元构建所述第二键值的第二预设合并条件为所述第一数据、第二数据至所述第N数据的属性值相同。
CN201510489555.1A 2015-08-11 2015-08-11 一种数据合并方法及装置 Active CN106445968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510489555.1A CN106445968B (zh) 2015-08-11 2015-08-11 一种数据合并方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510489555.1A CN106445968B (zh) 2015-08-11 2015-08-11 一种数据合并方法及装置

Publications (2)

Publication Number Publication Date
CN106445968A true CN106445968A (zh) 2017-02-22
CN106445968B CN106445968B (zh) 2020-08-04

Family

ID=58093457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510489555.1A Active CN106445968B (zh) 2015-08-11 2015-08-11 一种数据合并方法及装置

Country Status (1)

Country Link
CN (1) CN106445968B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943988A (zh) * 2017-12-01 2018-04-20 中国银行股份有限公司 一种数据拼接方法及装置
CN109947838A (zh) * 2019-03-26 2019-06-28 中国联合网络通信集团有限公司 一种存储数据的方法及装置
CN112527841A (zh) * 2020-12-17 2021-03-19 上海数依数据科技有限公司 一种流数据合并处理方法及装置
CN112667686A (zh) * 2020-12-30 2021-04-16 中国农业银行股份有限公司 一种实时流数据拼接方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055567A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表计算链的生成方法和系统
CN101335737A (zh) * 2008-08-05 2008-12-31 中兴通讯股份有限公司 一种网络处理器及其数据处理方法
CN103200293A (zh) * 2013-03-05 2013-07-10 上海斐讯数据通信技术有限公司 一种导入通讯录文件过程中自动合并重名联系人的方法
CN103597473A (zh) * 2011-06-30 2014-02-19 惠普发展公司,有限责任合伙企业 用于合并部分聚合查询结果的系统和方法
US20140067767A1 (en) * 2008-05-21 2014-03-06 Oracle International Corporation Generating and applying redo records
CN103631910A (zh) * 2013-11-26 2014-03-12 烽火通信科技股份有限公司 一种分布式数据库多列复合查询的系统及方法
CN104112008A (zh) * 2014-07-16 2014-10-22 深圳市国泰安信息技术有限公司 一种多表数据关联查询优化方法和装置
CN104239320A (zh) * 2013-06-14 2014-12-24 深圳中兴网信科技有限公司 一种数据合并方法及系统
US20150074084A1 (en) * 2013-09-12 2015-03-12 Neustar, Inc. Method and system for performing query processing in a key-value store
CN104683422A (zh) * 2013-12-03 2015-06-03 腾讯科技(深圳)有限公司 数据传输方法及装置
CN104699718A (zh) * 2013-12-10 2015-06-10 阿里巴巴集团控股有限公司 用于快速引入业务数据的方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055567A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表计算链的生成方法和系统
US20140067767A1 (en) * 2008-05-21 2014-03-06 Oracle International Corporation Generating and applying redo records
CN101335737A (zh) * 2008-08-05 2008-12-31 中兴通讯股份有限公司 一种网络处理器及其数据处理方法
CN103597473A (zh) * 2011-06-30 2014-02-19 惠普发展公司,有限责任合伙企业 用于合并部分聚合查询结果的系统和方法
CN103200293A (zh) * 2013-03-05 2013-07-10 上海斐讯数据通信技术有限公司 一种导入通讯录文件过程中自动合并重名联系人的方法
CN104239320A (zh) * 2013-06-14 2014-12-24 深圳中兴网信科技有限公司 一种数据合并方法及系统
US20150074084A1 (en) * 2013-09-12 2015-03-12 Neustar, Inc. Method and system for performing query processing in a key-value store
CN103631910A (zh) * 2013-11-26 2014-03-12 烽火通信科技股份有限公司 一种分布式数据库多列复合查询的系统及方法
CN104683422A (zh) * 2013-12-03 2015-06-03 腾讯科技(深圳)有限公司 数据传输方法及装置
CN104699718A (zh) * 2013-12-10 2015-06-10 阿里巴巴集团控股有限公司 用于快速引入业务数据的方法和装置
CN104112008A (zh) * 2014-07-16 2014-10-22 深圳市国泰安信息技术有限公司 一种多表数据关联查询优化方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHIJIA YAN 等: "A High-Performance Key-Value Query Solution Based on Hash Dictionary and Trie Tree", 《ADVANCES IN COMPUTER SCIENCE RESEARCH》 *
沙学府 等: "基于HBase的高效结构化数据查询方法研究", 《数字技术与应用》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943988A (zh) * 2017-12-01 2018-04-20 中国银行股份有限公司 一种数据拼接方法及装置
CN107943988B (zh) * 2017-12-01 2021-10-19 中国银行股份有限公司 一种数据拼接方法及装置
CN109947838A (zh) * 2019-03-26 2019-06-28 中国联合网络通信集团有限公司 一种存储数据的方法及装置
CN112527841A (zh) * 2020-12-17 2021-03-19 上海数依数据科技有限公司 一种流数据合并处理方法及装置
CN112667686A (zh) * 2020-12-30 2021-04-16 中国农业银行股份有限公司 一种实时流数据拼接方法及装置

Also Published As

Publication number Publication date
CN106445968B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
US20190138540A1 (en) Search box auto-complete
CN108846133B (zh) 基于b-m树的区块链存储结构、b-m树建立算法及查找算法
CN100445999C (zh) 一种数据存储及搜索方法
WO2016127720A1 (zh) 一种数据互通的方法,及数据互通设备
CN103580900B (zh) 一种基于事件链的关联分析系统
CN101840432B (zh) 一种基于Deep Web深层动态数据的数据挖掘装置及方法
CN105574054B (zh) 一种分布式缓存范围查询方法、装置及系统
CN109740034A (zh) 基于图形数据库的企业涉案信息查询方法及装置
CN105164677B (zh) 在并行数据库处执行存储过程的方法和系统
CN106445968A (zh) 一种数据合并方法及装置
CN108304444A (zh) 信息查询方法及装置
CN103366117B (zh) 一种感染型病毒修复方法及系统
JP5923510B2 (ja) オンライン取引プラットフォームのための検索方法、装置およびサーバ
CN106354566B (zh) 一种命令处理的方法以及服务器
CN108804516A (zh) 相似用户查找装置、方法及计算机可读存储介质
CN104008199B (zh) 一种数据查询方法
CN107256180A (zh) 数据处理方法、装置及终端
CN103226609A (zh) 一种web聚焦搜索系统的搜索方法
CN105786629A (zh) 基于消息队列的数据处理方法
CN108897859A (zh) 一种元数据检索方法、装置、设备及计算机可读存储介质
CN110020046A (zh) 一种数据抓取方法及装置
CN101308507B (zh) 互联网信息发布和搜索方法
CN109145016A (zh) 一种金融用互联网大数据检索系统
CN101957860A (zh) 一种发布、搜索信息的方法及装置
CN105653717B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Grand Cayman Islands

Patentee before: Alibaba Group Holding Ltd.