CN111241088A - 数据写入方法、数据查询方法、装置及设备 - Google Patents

数据写入方法、数据查询方法、装置及设备 Download PDF

Info

Publication number
CN111241088A
CN111241088A CN201811331057.4A CN201811331057A CN111241088A CN 111241088 A CN111241088 A CN 111241088A CN 201811331057 A CN201811331057 A CN 201811331057A CN 111241088 A CN111241088 A CN 111241088A
Authority
CN
China
Prior art keywords
data
data block
block
sub
target
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
CN201811331057.4A
Other languages
English (en)
Other versions
CN111241088B (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 Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke 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 Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201811331057.4A priority Critical patent/CN111241088B/zh
Publication of CN111241088A publication Critical patent/CN111241088A/zh
Application granted granted Critical
Publication of CN111241088B publication Critical patent/CN111241088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明实施例提供数据写入方法、数据查询方法、装置及设备,数据写入方法应用于数据节点,包括:接收网关发送的待写入数据和待写入数据的数据源标识;将所述待写入数据和所述数据源标识写入所述数据节点的内存中的第一数据块;在所述第一数据块写满之后,根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,所述第二数据块位于所述数据节点的持久化磁盘中,所述第二数据块包括多个子数据块。在保证数据存储系统能够存储大量数据的基础上,能够快速进行数据查询。

Description

数据写入方法、数据查询方法、装置及设备
技术领域
本发明实施例涉及存储领域,尤其涉及一种数据写入方法、数据查询方法、装置及设备。
背景技术
目前,在很多数据存储系统中,需要存储大量的数据,并且需要进行频繁数据写入操作以及数据查询操作。
在现有技术中,为了使得数据存储系统能够存储大量的数据,通常会在数据存储系统中部署多个数据节点,由该多个数据节点进行数据存储以及数据读写。在实际应用过程中,在进行数据写入时,通常在多个存储节点中选择一个数据节点进行数据存储,并记录每个数据节点中存储的数据的标识。在进行数据查询时,根据每个数据节点中存储的数据的标识、以及待查询数据的标识确定目标数据节点,并在目标数据节点中获取待查询数据。
然而,在上述过程中,当数据存储系统中存储的数据量较大时,需要通过大量的数据查询才能够确定待查询数据所在的目标数据节点,导致数据查询的效率低下。
发明内容
本发明实施例提供一种数据写入方法、数据查询方法、装置及设备,在保证数据存储系统能够存储大量数据的基础上,能够快速进行数据查询。
第一方面,本发明实施例提供一种数据写入方法,应用于数据节点,所述方法包括:
接收网关发送的待写入数据和所述待写入数据的数据源标识;
将所述待写入数据和所述数据源标识写入所述数据节点的内存中的第一数据块;
在所述第一数据块写满之后,根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,所述第二数据块位于所述数据节点的持久化磁盘中,所述第二数据块包括多个子数据块。
在一种可能的实施方式中,所述根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,包括:
确定所述第一数据块中包括的至少一个数据源标识;
在所述第一数据块中确定每个数据源标识对应的数据;
依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中。
在另一种可能的实施方式中,所述依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中之后,还包括:
生成所述第二数据块的索引文件;
其中,所述索引文件中包括所述第二数据块中每个数据源标识与子数据块的第一映射关系,以及所述第二数据块中数据源标识中包括的每个数据标签与子数据块的第二映射关系。
在另一种可能的实施方式中,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置,以及每个数据标签对应的第二映射关系在所述索引文件中的存储位置。
第二方面,本发明实施例提供一种数据写入方法,应用于网关,所述方法包括:
接收数据写入请求,所述数据写入请求包括待写入数据和所述待写入数据的数据源标识;
根据所述数据源标识,确定待写入数据对应的目标数据节点;
向所述目标数据节点发送所述待写入数据和所述数据源标识,所述目标数据节点用于根据所述数据源标识将所述待写入数据存储至所述目标数据节点。
在一种可能的实施方式中,所述根据所述数据源标识,确定待写入数据对应的目标数据节点,包括:
判断缓存中是否包括所述数据源标识对应的数据节点标识;
若是,则将所述缓存中的所述数据源标识对应数据节点标识所指示的数据节点确定为所述目标数据节点;
若否,则判断路由信息数据库中是否包括所述数据源标识对应的数据节点标识,若是,则将所述路由信息数据库中的所述数据源标识对应数据节点标识所指示的数据节点确定为所述目标数据节点;若否,则根据分布式存储系统中各数据节点的剩余容量确定所述目标数据节点。
在另一种可能的实施方式中,向所述目标数据节点发送所述待写入数据,包括:
将所述待写入数据和所述数据源标识存储至消息队列;
通过多个线程中的空闲线程在所述消息队列中获取所述待写入数据和所述数据源标识;
通过所述空闲线程向所述目标数据节点发送所述待写入数据和所述数据源标识。
第三方面,本发明实施例提供一种数据查询方法,应用于数据节点,所述方法包括:
接收网关发送的第一数据查询条件;
根据所述第一数据查询条件,在所述数据节点中确定目标数据块;
根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,所述索引文件包括所述目标数据块中每个数据源标识与子数据块的第一映射关系、所述目标数据块中的数据源标识中每个数据标签与子数据块的第二映射关系;
在目标子数据块中确定目标数据,并向所述网关发送所述目标数据。
在一种可能的实施方式中,所述根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,包括:
判断所述第一数据查询条件中是否包括第一数据源标识;
若是,则获取所述第一数据源标识对应的第一映射关系,并将所述第一数据源标识对应的第一映射关系中的子数据块确定为所述目标子数据块;
若否,获取所述第一数据查询条件中包括的至少一个第一数据标签,获取每个第一数据标签对应的第二映射关系,根据每个第一数据标签对应的第二映射关系确定所述目标子数据块。
在另一种可能的实施方式中,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置;所述获取所述第一数据源标识对应的第一映射关系,包括:
获取所述第一数据源标识对应的第一映射关系在所述索引文件中的第一存储位置;
在所述第一存储位置中获取所述第一数据源标识对应的第一映射关系。
在另一种可能的实施方式中,所述索引文件还包括每个数据标签对应的第二映射关系在所述索引文件中的存储位置;所述获取每个第一数据标签对应的第二映射关系,包括:
获取每个第一数据标签对应的第二映射关系在所述索引文件中的第二存储位置;
在所述第二存储位置中获取每个第一数据标签对应的第二映射关系。
在另一种可能的实施方式中,所述根据每个第一数据标签对应的第二映射关系确定所述目标子数据块,包括:
将每个第一数据标签对应的第二映射关系均包括的子数据块确定为所述目标子数据块。
第四方面,本发明实施例提供一种数据查询方法,应用于网关,所述方法包括:
接收数据查询请求,所述数据查询请求包括第一数据查询条件;
确定所述第一数据查询条件对应的目标数据节点;
向所述目标数据节点发送所述第一数据查询条件,所述目标数据节点用于根据所述第一查询条件确定目标数据;
接收所述目标数据节点发送的所述目标数据。
在一种可能的实施方式中,所述确定所述第一数据查询条件对应的目标数据节点,包括:
在所述第一数据查询条件中提取第二数据查询条件,所述第二数据查询条件为所述预设对应关系中包括的数据查询条件,所述预设对应关系包括多个数据查询条件和每个数据查询条件对应的数据节点的标识;
根据所述第二数据查询条件和所述预设对应关系,确定所述目标数据节点。
第五方面,本发明实施例提供一种数据写入装置,其特征在于,包括接收模块和写入模块,其中,
所述接收模块用于,接收网关发送的待写入数据和所述待写入数据的数据源标识;
所述写入模块用于,将所述待写入数据和所述数据源标识写入所述数据节点的内存中的第一数据块;
所述写入模块还用于,在所述第一数据块写满之后,根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,所述第二数据块位于所述数据节点的持久化磁盘中,所述第二数据块包括多个子数据块。
在一种可能的实施方式中,所述写入模块具体用于:
确定所述第一数据块中包括的至少一个数据源标识;
在所述第一数据块中确定每个数据源标识对应的数据;
依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中。
在另一种可能的实施方式中,所述装置还包括生成模块,其中,
所述生成模块用于,在所述写入模块依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中之后,生成所述第二数据块的索引文件;
其中,所述索引文件中包括所述第二数据块中每个数据源标识与子数据块的第一映射关系,以及所述第二数据块中数据源标识中包括的每个数据标签与子数据块的第二映射关系。
在另一种可能的实施方式中,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置,以及每个数据标签对应的第二映射关系在所述索引文件中的存储位置。
第六方面,本发明实施例提供一种数据写入装置,包括接收模块、确定模块和发送模块,其中,
所述接收模块用于,接收数据写入请求,所述数据写入请求包括待写入数据和所述待写入数据的数据源标识;
所述确定模块用于,根据所述数据源标识,确定待写入数据对应的目标数据节点;
所述发送模块用于,向所述目标数据节点发送所述待写入数据和所述数据源标识,所述目标数据节点用于根据所述数据源标识将所述待写入数据存储至所述目标数据节点。
在另一种可能的实施方式中,所述确定模块具体用于:
判断缓存中是否包括所述数据源标识对应的数据节点标识;
若是,则将所述缓存中的所述数据源标识对应数据节点标识所指示的数据节点确定为所述目标数据节点;
若否,则判断路由信息数据库中是否包括所述数据源标识对应的数据节点标识,若是,则将所述路由信息数据库中的所述数据源标识对应数据节点标识所指示的数据节点确定为所述目标数据节点;若否,则根据分布式存储系统中各数据节点的剩余容量确定所述目标数据节点。
在另一种可能的实施方式中,所述发送模块具体用于:
将所述待写入数据和所述数据源标识存储至消息队列;
通过多个线程中的空闲线程在所述消息队列中获取所述待写入数据和所述数据源标识;
通过所述空闲线程向所述目标数据节点发送所述待写入数据和所述数据源标识。
第七方面,本发明实施例提供一种数据查询装置,包括接收模块、第一确定模块、第二确定模块、第三确定模块和发送模块,其中,
所述接收模块用于,接收网关发送的第一数据查询条件;
所述第一确定模块用于,根据所述第一数据查询条件,在所述数据节点中确定目标数据块;
所述第二确定模块用于,根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,所述索引文件包括所述目标数据块中每个数据源标识与子数据块的第一映射关系、所述目标数据块中的数据源标识中每个数据标签与子数据块的第二映射关系;
所述第三确定模块用于,在目标子数据块中确定目标数据;
所述发送模块用于,向所述网关发送所述目标数据。
在一种可能的实施方式中,所述第二确定模块具体用于:
判断所述第一数据查询条件中是否包括第一数据源标识;
若是,则获取所述第一数据源标识对应的第一映射关系,并将所述第一数据源标识对应的第一映射关系中的子数据块确定为所述目标子数据块;
若否,获取所述第一数据查询条件中包括的至少一个第一数据标签,获取每个第一数据标签对应的第二映射关系,根据每个第一数据标签对应的第二映射关系确定所述目标子数据块。
在另一种可能的实施方式中,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置;所述第二确定模块具体用于:
获取所述第一数据源标识对应的第一映射关系在所述索引文件中的第一存储位置;
在所述第一存储位置中获取所述第一数据源标识对应的第一映射关系。
在另一种可能的实施方式中,所述索引文件还包括每个数据标签对应的第二映射关系在所述索引文件中的存储位置;所述第二确定模块具体用于:
获取每个第一数据标签对应的第二映射关系在所述索引文件中的第二存储位置;
在所述第二存储位置中获取每个第一数据标签对应的第二映射关系。
在另一种可能的实施方式中,所述第二确定模块具体用于:
将每个第一数据标签对应的第二映射关系均包括的子数据块确定为所述目标子数据块。
第八方面,本发明实施例提供一种数据查询装置,包括接收模块、确定模块和发送模块,其中,
所述接收模块用于,接收数据查询请求,所述数据查询请求包括第一数据查询条件;
所述确定模块用于,确定所述第一数据查询条件对应的目标数据节点;
所述发送模块用于,向所述目标数据节点发送所述第一数据查询条件,所述目标数据节点用于根据所述第一查询条件确定目标数据;
所述接收模块还用于,接收所述目标数据节点发送的所述目标数据。
在一种可能的实施方式中,所述确定模块具体用于:
在所述第一数据查询条件中提取第二数据查询条件,所述第二数据查询条件为所述预设对应关系中包括的数据查询条件,所述预设对应关系包括多个数据查询条件和每个数据查询条件对应的数据节点的标识;
根据所述第二数据查询条件和所述预设对应关系,确定所述目标数据节点。
第九方面,本发明实施例提供一种数据节点,包括处理器,所述处理器与存储器耦合,其中,
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,用于实现上述第一方面任一项所述的数据写入方法。
第十方面,本发明实施例提供一种网关,包括:处理器,所述处理器与存储器耦合,其中,
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,用于实现上述第二方面任一项所述的数据写入方法。
第十一方面,本发明实施例提供一种数据节点,处理器,所述处理器与存储器耦合,其中,
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,用于实现上述第三方面任一项所述的数据查询方法。
第十二方面,本发明实施例提供一种网关,包括:处理器,所述处理器与存储器耦合,其中,
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,用于实现上述第四方面任一项所述的数据查询方法。
第十三方面,本发明实施例提供一种可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如上述第一方面任一项所述的数据写入方法被执行。
第十四方面,本发明实施例提供一种可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在计算机上运行时,如所述第二方面任一项所述的数据写入方法被执行。
第十五方面,本发明实施例提供一种可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如所述第三方面任一项所述的数据查询方法被执行。
第十六方面,本发明实施例提供一种可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如所述第四方面任一项所述的数据查询方法被执行。
本发明实施例提供的数据写入方法、数据查询方法、装置及设备,在终端设备向数据存储系统写入待写入数据时,首先由网关根据路由信息数据库中的路由信息,确定目标数据节点,并将待写入数据发送给目标数据节点。目标数据节点先将待写入数据存储在内存的第一数据块中,在第一数据块写满之后,再将根据第一数据块中的数据源标识,将第一数据块中的数据写入目标数据节点的第二数据块的子数据块中。由上可知,目标数据节点的持久化存储空间包括多个第二数据块,每个第二数据块中包括多个子数据块,且目标数据节点根据第一数据块中的数据源标识将第一数据块中的数据写入第二数据块的子数据块中,使得数据可以在目标数据节点中有规律且层次的存储,使得目标数据节点可以快速查找到需要查询的数据。进一步的,本申请所示的数据存储系统中的数据节点和网关可以根据实际需要进行扩充,使得数据存储系统可以存储大量的数据,这样,可以保证在数据存储系统能够存储大量数据的基础上,能够快速进行数据查询。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据存储系统的架构图;
图2为本发明实施例提供的数据写入方法的示意图一;
图2A为本发明实施例提供的数据节点中的数据块的示意图;
图3为本发明实施例提供的数据写入方法的示意图二;
图4为本发明实施例提供的数据查询方法的流程示意图一;
图5为本发明实施例提供的一种数据写入装置的结构示意图;
图6为本发明实施例提供的另一种数据写入装置的结构示意图;
图7为本发明实施例提供的又一种数据写入装置的结构示意图;
图8为本发明实施例提供的一种数据查询装置的结构示意图;
图9为本发明实施例提供的另一种数据查询装置的结构示意图;
图10为本发明实施例提供的数据节点的硬件结构示意图;
图11为本发明实施例提供的网关的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的数据存储系统的架构图。请参见图1,数据存储系统包括多个网关(分别记为网关101-1、网关101-2、……、网关101-M)、至少一个路由信息数据库102、多个主数据节点(分别记为主数据节点103-1、主数据节点103-2、……、主数据节点103-N)、以及每个主数据节点对应的从数据节点(分别记为从数据节点104-1、从数据节点104-2、……、从数据节点104-N)。终端设备105可以在数据存储系统中写入数据和/或查询数据。
可选的,可以根据实际需要确定数据存储系统中包括的网关个数、路由信息数据库的个数、主数据节点的个数以及从数据节点的个数。
可选的,一个网关可以对应部分主数据节点。可以根据实际需要设置网关与主数据节点之间的对应关系。
可选的,当路由信息数据库为多个时,一个路由信息数据库可以对应部分网关。可以根据实际需要设置路由信息数据库与网关之间的对应关系。
可选的,终端设备105可以为数据源设备,用于向数据存储系统中写入数据。终端设备105可以为客户端,用于在数据存储系统中查询数据。终端设备105还可以既向数据存储系统中写入数据,又从数据存储系统中读取数据。
需要说明的是,图1只是以示例的形式示意数据存储系统的架构,并非对数据存储系统的架构的限定,在实际应用过程中,可以根据实际需要设置该数据存储系统,本发明实施例对此不作具体限定。
在本申请中,在终端设备向数据存储系统写入数据时,首先由网关根据路由信息数据库中的路由信息,确定对应的主数据节点,并将待写入数据发送给对应的主数据节点,主数据节点中包括多个数据块,每个数据块中还包括多个子数据块、以及相应的索引文件,主数据节点根据待存储数据的数据源标识将待存储数据存储至对应的子数据块中,并在索引文件中进行记录。在终端设备进行数据查询时,网关先根据查询条件确定对应的主数据节点,再由主数据节点根据数据查询条件进一步查找待查询数据,由于主数据节点中包括数据块、数据块中又包括子数据块和索引文件,基于该种存储结构,组数据节点根据查询条件以及索引文件可以快速的查询得到待查询数据,进而提高数据查询效率。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
需要说明的是,在本发明实施例中,在没有特殊说明的情况下,所描述的数据节点为图1实施例中的主数据节点。
图2为本发明实施例提供的数据写入方法的示意图一。请参见图2,该方法可以包括:
S201、终端设备向网关发送数据写入请求。
其中,数据写入请求包括待写入数据和待写入数据的数据源标识。
可选的,终端设备用于手机、电脑、工业设备等。例如,工业设备可以为卫星、交通摄像装置等。
当然,在实际应用过程中,可以根据实际需要设置终端设备的类型,本发明实施例对此不作具体限定。
可选的,数据源标识用于指示待写入数据的生成设备和待写入数据的类型。
可选的,数据源标识可以包括多个数据标签。
可选的,数据源标识中的数据标签可以包括:设备类型、设备标识、数据类型。
当然,数据源标识中的数据标签还可以包括其它,本发明实施例对此不作具体限定。
例如,一个数据源标识可以为:卫星、东方红1号、温度。其中,“卫星”、“东方红1号”、“温度”均为该数据源标识中的数据标签。
例如,假设待写入数据的数据源标识为:卫星、东方红1号、温度,则说明该待写入数据为东方红1号采集的温度,且东方红1号为卫星。
可选的,数据写入请求中还可以包括待写入数据的生成时间。
S202、网关根据数据源标识,确定待写入数据对应的目标数据节点。
可选的,可以通过如下可行的实现方式确定待写入数据对应的目标数据节点:
若网关的缓存中包括数据源标识对应的数据节点标识,则将缓存中的数据源标识对应数据节点标识所指示的数据节点确定为目标数据节点。
若网关的缓存中不包括数据源标识对应的数据节点标识,则判断路由信息数据库中是否包括数据源标识对应的数据节点标识,若是,则将路由信息数据库中的数据源标识对应数据节点标识所指示的数据节点确定为目标数据节点;若否,则根据分布式存储系统中各数据节点的剩余容量确定目标数据节点。
可选的,路由信息数据库用于存储路由信息,路由信息可以为数据源标识与数据节点的对应关系。路由信息数据库中存储的路由信息周期性更新。例如,路由信息数据库中的路由信息每一天更新一次。例如,可以在预设时刻将路由信息数据库中的路由信息删除。
初始时,路由信息数据库中不包括路由信息(数据源标识与数据节点的对应关系),且网关的缓存中也不包括数据源标识与数据节点的对应关系。因此,在初始时,网关需要根据分布式存储系统中各数据节点的剩余容量确定目标数据节点。
可选的,网关可以将各数据节点中剩余容量最大的数据节点确定为目标数据节点。
在网关确定得到待写入数据对应的目标数据节点之后,可以确定待写入数据对应的数据源标识与该目标数据节点之间的对应关系,并将该对应关系存储至网关的缓存中,且将该对应关系存储至路由信息数据库。
可选的,在该网关将该对应关系存储至路由信息数据库之后,其它网关则可以在路由信息数据库中获取该对应关系。
S203、网关向目标数据节点发送待写入数据和待写入数据的数据源标识。
可选的,网关还可以向目标数据节点发送待写入数据的生成时间。
可选的,网关可以通过如下可行的实现方式向目标数据节点发送待写入数据和数据源标识:将待写入数据和数据源标识存储至消息队列;通过多个线程中的空闲线程在消息队列中获取待写入数据和数据源标识;通过空闲线程向目标数据节点发送待写入数据和数据源标识。
可选的,网关可以将待写入数据和数据源标识存储至消息队列的队尾。
可选的,网关中包括多个线程,该多个线程可以并行处理消息队列中的数据。即,当该多个线程中存在空闲线程时,空闲线程对消息队列的队首的数据进行处理。在对消息队列中的一个数据处理之后,则在消息队列中删除该数据。
可选的,当待写入数据和数据源标识位于消息队列的队首时,则通过空闲线程对位于队首的待写入数据和数据源标识进行处理,即,通过空闲线程向目标数据节点发送待写入数据和数据源标识。
可选的,网关中可以包括读循环(read loop)和写循环(write loop),网关可以通过读循环和写循环从与终端设备或者数据节点进行数据交互。
下面,以网关通过读循环和写循环与目标数据节点进行数据交互的过程进行说明:网关与目标数据节点之间具有网络连接,当网关需要向目标数据节点发送数据时,则网关通过写循环将需要发送的数据写入该网络连接,以实现向目标数据节点发送数据。当网关需要接收目标数据节点发送的数据时,则网关通过读循环从该网络连接中读取数据。
在上述过程中,由于读循环和写循环相互独立,且读循环和写循环可以并行执行,进而使得网关具有较高的数据处理效率。
S204、目标数据节点将待写入数据和数据源标识存储至目标数据节点的内存中的第一数据块。
可选的,目标数据节点还可以将待写入数据的生成时间写入第一数据块。
可选的,目标数据节点可以将待写入数据和数据源标识写入第一数据块中的任意空闲位置。
可选的,数据源标识和待写入数据可以以键值对的形式写入第一数据块,数据源标识为键(key),待写入数据为值(value)。
可选的,键值对中的键中还可以包括待写入数据的生成时间。
需要说明的是,数据源标识和待写入数据还可以以其它形式写入第一数据块,本发明实施例对此不作具体限定。
在本发明实施例中,数据节点的内存中包括一个第一数据块,数据节点的持久化磁盘中包括多个第二数据块。下面,结合图2A对数据节点中包括的数据块进行详细说明。
图2A为本发明实施例提供的数据节点中的数据块的示意图。请参见图2A,数据节点中包括内存,内存中包括第一数据块,数据节点中还包括持久化磁盘,持久化磁盘中包括多个第二数据块。
可选的,第一数据块和第二数据块的大小可以相同,也可以不相同。
可选的,第一数据块和第二数据块均用于存储预设时长的数据,例如,第一数据块和第二数据块均用于存储2小时的数据。
可选的,在第一数据块写满之后,或者第一数据块存储了预设时长的数据之后,在持久化磁盘中创建新的第二数据块,并将第一数据块中的数据存储至新创建的第二数据块中。
S205、在第一数据块写满之后,目标数据节点根据第一数据块中的数据源标识,将第一数据块中的数据写入数据节点的第二数据块的子数据块中。
其中,第二数据块位于数据节点的持久化磁盘中,第二数据块包括多个子数据块。
需要说明的是,第一数据块写满是指,第一数据块中没有多余的存储控件,或者,第一数据块中存储了预设时长的数据。
可选的,第二数据块的大小与第一数据块的大小相同。
可选的,可以将第一数据块中的数据和数据的生成时刻写入至第二数据块的子数据块中。
可选的,目标数据节点可以确定第一数据块中包括的至少一个数据源标识,在第一数据块中确定每个数据源标识对应的数据,并依次将每个数据源标识对应的数据写入第二数据块的子数据块中。
例如,假设第一数据块中包括三个数据源标识,分别记为数据源标识1、数据源标识2和数据源标识3,假设第二数据块包括10个子数据块,分别记为子数据块1、子数据块2、……、子数据块10。则目标数据节点先将数据源标识1对应的数据写入子数据块1,在子数据块1写满之后,继续将数据源标识1对应的数据写入子数据块2,依次类推,直至将数据源标识1对应的所有数据写入子数据块,假设数据源标识1对应的数据写入至了子数据块1、子数据块2和子数据块3,且数据源标识1对应的数据占用了子数据块3的一部分存储空间。然后,从子数据块3的剩余存储空间开始写入数据源标识2对应的数据,依次类推,直至将数据源标识1-数据源标识3对应的数据全部写入至子数据块。
例如,第二数据块中各子数据块中存储的数据对应的数据源标识可以如表1所示:
表1
Figure BDA0001859999260000151
本发明实施例提供的数据写入方法,在终端设备向数据存储系统写入待写入数据时,首先由网关根据路由信息数据库中的路由信息,确定目标数据节点,并将待写入数据发送给目标数据节点。目标数据节点先将待写入数据存储在内存的第一数据块中,在第一数据块写满之后,再将根据第一数据块中的数据源标识,将第一数据块中的数据写入目标数据节点的第二数据块的子数据块中。由上可知,目标数据节点的持久化存储空间包括多个第二数据块,每个第二数据块中包括多个子数据块,且目标数据节点根据第一数据块中的数据源标识将第一数据块中的数据写入第二数据块的子数据块中,使得数据可以在目标数据节点中有规律且层次的存储,使得目标数据节点可以快速查找到需要查询的数据。进一步的,本申请所示的数据存储系统中的数据节点和网关可以根据实际需要进行扩充,使得数据存储系统可以存储大量的数据,这样,可以在保证数据存储系统能够存储大量数据的基础上,能够快速进行数据查询。
在图2所示实施例的基础上,下面,通过图3所示的实施例,对图2所示的实施例进行进一步详细说明。
图3为本发明实施例提供的数据写入方法的示意图二。在图2所示实施例的基础上,请参见图3,该方法可以包括:
S301、终端设备向网关发送数据写入请求。
其中,数据写入请求包括待写入数据和待写入数据的数据源标识。
S302、网关根据数据源标识,确定待写入数据对应的目标数据节点。
S303、网关向目标数据节点发送待写入数据和数据源标识。
S304、目标数据节点将待写入数据存储至数据节点的内存中的第一数据块。
需要说明的是,S301-S304的执行过程可以参见S201-S204的执行过程,此处不再进行赘述。
S305、在第一数据块写满之后,目标数据节点确定第一数据块中包括的至少一个数据源标识。
可选的,至少一个数据源标识是指第一数据块中存储的所有数据源标识。
S306、目标数据节点在第一数据块中确定每个数据源标识对应的数据。
S307、目标数据节点依次将每个数据源标识对应的数据写入第二数据块的子数据块中。
可选的,第二数据块的各子数据块的地址连续。即,第二数据块的各子数据块的存储空间相邻。
可选的,可以按照子数据块的地址从小到大的顺序,依次将每个数据源标识对应的数据写入第二数据块的子数据块中。
例如,先向第一个子数据块写入数据,在第一个子数据块写满之后,再向第二个子数据块写入数据,在第二个子数据块写满之后,再向第三个子数据块写入数据,依次类推,直至将所述数据源标识对应的数据写入第二数据块的子数据块中。
可选的,可以按照数据源标识的预设顺序,依次将每个数据源标识对应的数据写入第二数据块的子数据块中。
例如,先将第一个数据源标识对应的所有数据写入第二数据块的子数据块中,再将第二个数据源标识对应的所有数据写入第二数据块的子数据块中,依次类推,直至将所述数据源标识对应的数据写入第二数据块的子数据块中。
S308、目标数据节点生成第二数据块的索引文件。
可选的,目标数据节点还可以生成第二数据块的元数据信息。
可选的,元数据信息中包括第二数据块中的数据的起始时间和终止时间;可选的,起始时间是指第二数据块中的数据的生成时间中的最早一个时间。终止时间是指第二数据块中的数据的生成时间中的最晚一个时间。
可选的,元数据信息中还可以包括其它内容,例如元数据信息中还可以包括第二数据块中包括的数据个数等。
当然,在实际应用过程中,可以根据实际需要设置元数据信息中包括的内容,本发明实施例对此不作具体限定。
可选的,索引文件中包括第二数据块中每个数据源标识与子数据块的第一映射关系,以及第二数据块中数据源标识中包括的每个数据标签与子数据块的第二映射关系。
可选的,索引文件还可以包括每个数据源标识对应的第一映射关系在索引文件中的存储位置,以及每个数据标签对应的第二映射关系在索引文件中的存储位置。
例如,假设第二数据块中各子数据块中存储的数据对应的数据源标识可以如表1所示,则第一映射关系可以如表2所示:
表2
数据源标识 子数据块的标识
数据源标识1 子数据块1、子数据块2、子数据块3
数据源标识2 子数据块3、子数据块4、子数据块5、子数据块6
数据源标识3 子数据块7、子数据块8、子数据块9
例如,假设数据源标识1中包括数据标签1、数据标签2和数据标签3,数据源标识2中包括数据标签1、数据标签2和数据标签4,数据源标识3中包括数据标签1、数据标签5和数据标签6,则第二映射关系可以如表3所示:
表3
数据标签的标识 子数据块的标识
数据标签1 子数据块1-子数据块9
数据标签2 子数据块1-子数据块6
数据标签3 子数据块1-子数据块3
数据标签4 子数据块3-子数据块6
数据标签5 子数据块7-子数据块9
数据标签6 子数据块7-子数据块9
在图3所示的实施例中,由于生成了第二数据块的索引文件,因此,在终端设备进行数据查询时,数据存储系统可以根据索引文件进行数据查询,进一步提高了数据查询效率。
在上述图2-图3所示的数据写入方法的基础上,可以通过如下可行的实现方式实现数据查询,具体的,请参见图4-图5所示的实施例。
图4为本发明实施例提供的数据查询方法的流程示意图一。请参见图4,该方法可以包括:
S401、终端设备向网关发送数据查询请求。
其中,数据查询请求包括第一数据查询条件。
可选的,第一数据查询条件可以包括数据源标识、数据标签、时间范围中的至少一个。
当然,第一查询条件还可以包括其它,本发明实施例对此不作具体限定。
S402、网关确定第一数据查询条件对应的目标数据节点。
可选的,网关可以根据第一数据查询条件中的部分查询条件确定目标数据节点。
可选的,网关可以在第一数据查询条件中提取第二数据查询条件,并根据第二数据查询条件和预设对应关系,确定目标数据节点;其中,第二数据查询条件为预设对应关系中包括的数据查询条件,预设对应关系包括多个数据查询条件和每个数据查询条件对应的数据节点的标识。
可选的,第二数据查询条件可以为需要查询的数据的生成时间范围,相应的,网关可以根据第二数据查询条件和各个数据节点的元数据信息,确定目标数据节点。
S403、网关向目标数据节点发送第一数据查询条件。
可选的,网关可以向目标数据节点发送数据查询请求,并在数据查询请求中携带第一数据查询条件。
需要说明的是,网关向目标数据节点发送的数据查询请求,与终端设备向网关发送的数据查询请求可以相同,也可以不同。
S404、目标数据节点根据第一数据查询条件,在数据节点中确定目标数据块。
可选的,网关可以根据第一数据查询条件中的部分查询条件确定目标数据节点。
可选的,网关可以在第一数据查询条件中提取第三数据查询条件,并根据第三数据查询条件和第一预设对应关系,确定目标数据节点;其中,第三数据查询条件为第一预设对应关系中包括的数据查询条件,预设对应关系包括多个数据查询条件和每个数据查询条件对应的目标数据块的标识。
S405、目标数据节点根据第一数据查询条件和目标数据块的索引文件,确定目标子数据块。
其中,索引文件包括目标数据块中每个数据源标识与子数据块的第一映射关系、目标数据块中的数据源标识中每个数据标签与子数据块的第二映射关系。
可选的,目标数据节点可以通过如下可行的实现方式确定子目标数据块:判断第一数据查询条件中是否包括第一数据源标识;若是,则获取第一数据源标识对应的第一映射关系,并将第一数据源标识对应的第一映射关系中的子数据块确定为目标子数据块。若否,获取第一数据查询条件中包括的至少一个第一数据标签,获取每个第一数据标签对应的第二映射关系,根据每个第一数据标签对应的第二映射关系确定目标子数据块。
可选的,索引文件还包括每个数据源标识对应的第一映射关系在索引文件中的存储位置,相应的,目标数据节点可以获取第一数据源标识对应的第一映射关系在索引文件中的第一存储位置,并在第一存储位置中获取第一数据源标识对应的第一映射关系。
可选的,索引文件还包括每个数据标签对应的第二映射关系在索引文件中的存储位置,相应的,目标数据节点可以获取每个第一数据标签对应的第二映射关系在索引文件中的第二存储位置,在第二存储位置中获取每个第一数据标签对应的第二映射关系。
可选的,目标数据节点可以将每个第一数据标签对应的第二映射关系均包括的子数据块确定为目标子数据块。
例如,假设第一数据查询条件中包括数据源标识2,第一映射关系如表2所示,则确定目标子数据块包括:子数据块3、子数据块4、子数据块5、子数据块6
例如,假设第一数据查询条件中包括数据标签2和数据标签4,第二映射关系如表3所示,由于数据标签2对应子数据块1-子数据块6,数据标签4对应的子数据块3-子数据块6,因此,可以确定目标子数据块为:子数据块3、子数据块4、子数据块5、子数据块6。
S406、目标数据节点在目标子数据块中确定目标数据。
可选的,目标子数据块中的数据可以以TV的形式存储,其中,T表示数据的生成时间,V表示数据。
可选的,存储的T可以采用delta-delta压缩算法进行压缩,存储的V可以采用了xor压缩算法进行压缩。
相应的,目标数据节点可以根据第一数据查询条件中的时间范围,在目标子数据块中确定目标数据。
需要说明的是,若第一数据查询条件中不包括时间范围,则可以将目标子数据块中的所有数据确定为目标数据。
还需要说明的是,目标数据节点还可以对目标子数据块中的数据进行处理以确定目标数据。例如,假设终端设备需要请求满足第一数据查询条件的数据的个数,则目标数据节点可以对目标子数据块中包括的目标数据的个数进行统计,以确定得到目标数据。
S407、目标数据节点向网关发送目标数据。
S408、网关向终端设备发送目标数据。
在图4所示的实施例中,在终端设备进行数据查询时,网关先根据第一数据查询条件确定目标数据节点,再由目标数据节点根据第一数据查询条件进一步查找待查询数据,由于目标数据节点中包括数据块、数据块中又包括子数据块和索引文件,基于该种存储结构,组数据节点根据第一数据查询条件以及索引文件可以快速的查询得到待查询数据,进而提高数据查询效率。
下面,通过具体示例,对图4实施例所示的方法进行详细说明。
示例性的,假设终端设备需要查找2018年7月16日下午13:00到13:23期间数据标签1(method)为POST、数据标签2(status)为200总请求数(http_requests_total),则终端设备向网关发送数据查询请求,数据查询请求中包括的第一数据查询条件为:2018年7月16日下午13:00到13:23、method=POST、status=200、metricName=http_requests_total。
网关根据第一数据查询条件中的metricName=http_requests_total和2018年7月16日以及各个数据节点的元数据信息中的起始时间和终止时间,确定目标数据节点为数据节点1,则网关向数据节点1发送上述第一数据查询条件。
数据节点1根据第一数据查询条件中的13:00-13:20,确定目标数据块为数据块1,则数据节点1根据metricName=http_requests_total和method=POST,确定子数据块1、子数据块2和子数据块3。数据节点1根据metricName=http_requests_total和status=200确定子数据块2、子数据块3和子数据块4,则数据节点1将子数据块2和子数据块3确定为目标子数据块,并统计子数据块2和子数据块3中包括的http请求数据量,并将统计得到的http请求数据量发送给网关,由网关将该http请求数据量发送给终端设备。
在上述任意一个实施例的基础上,还可以为每个数据节点(下文称为主节点)设置一个从数据节点。从数据节点可以备份主数据节点中的数据,以在主数据节点故障之后,从数据节点可以接替主数据节点进行工作。
可选的,从数据节点和主数据节点之间可以包括两条连接,主数据节点可以通过一条连接向从数据节点发送增量数据,主数据节点可以通过另一条连接向从数据节点发送历史数据。
可选的,主数据节点中还可以设置临时缓存,当主数据节点和从数据节点之间的连接断开时,主数据节点可以将要发送从数据节点的数据缓存至临时缓存中,当主数据节点和从数据节点恢复连接时,则主数据节点将临时缓存中的数据发送给从数据节点。
可选的,在主数据节点故障时,网关可以将主数据节点对应的从数据节点切换为主数据节点。可选的,可以检测主数据节点的心跳,若在预设时长内未检测到主数据节点的心跳,则确定主数据节点故障,则将主数据节点对应的从数据节点切换为主数据节点。
图5为本发明实施例提供的一种数据写入装置的结构示意图。请参见图5,该数据写入装置10可以包括接收模块11和写入模块12,其中,
所述接收模块11用于,接收网关发送的待写入数据和所述待写入数据的数据源标识;
所述写入模块12用于,将所述待写入数据和所述数据源标识写入所述数据节点的内存中的第一数据块;
所述写入模块12还用于,在所述第一数据块写满之后,根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,所述第二数据块位于所述数据节点的持久化磁盘中,所述第二数据块包括多个子数据块。
本发明实施例提供的数据写入装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述写入模块12具体用于:
确定所述第一数据块中包括的至少一个数据源标识;
在所述第一数据块中确定每个数据源标识对应的数据;
依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中。
图6为本发明实施例提供的另一种数据写入装置的结构示意图。在图5所示实施例的基础上,请参见图6,该装置10还包括生成模块13,其中,
所述生成模块13用于,在所述写入模块12依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中之后,生成所述第二数据块的索引文件;
其中,所述索引文件中包括所述第二数据块中每个数据源标识与子数据块的第一映射关系,以及所述第二数据块中数据源标识中包括的每个数据标签与子数据块的第二映射关系。
在另一种可能的实施方式中,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置,以及每个数据标签对应的第二映射关系在所述索引文件中的存储位置。
本发明实施例提供的数据写入装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图7为本发明实施例提供的又一种数据写入装置的结构示意图。请参见图7,该数据写入装置20可以包括接收模块21、确定模块22和发送模块23,其中,
所述接收模块21用于,接收数据写入请求,所述数据写入请求包括待写入数据和所述待写入数据的数据源标识;
所述确定模块22用于,根据所述数据源标识,确定待写入数据对应的目标数据节点;
所述发送模块23用于,向所述目标数据节点发送所述待写入数据和所述数据源标识,所述目标数据节点用于根据所述数据源标识将所述待写入数据存储至所述目标数据节点。
本发明实施例提供的数据写入装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述确定模块22具体用于:
判断缓存中是否包括所述数据源标识对应的数据节点标识;
若是,则将所述缓存中的所述数据源标识对应数据节点标识所指示的数据节点确定为所述目标数据节点;
若否,则判断路由信息数据库中是否包括所述数据源标识对应的数据节点标识,若是,则将所述路由信息数据库中的所述数据源标识对应数据节点标识所指示的数据节点确定为所述目标数据节点;若否,则根据分布式存储系统中各数据节点的剩余容量确定所述目标数据节点。
在另一种可能的实施方式中,所述发送模块23具体用于:
将所述待写入数据和所述数据源标识存储至消息队列;
通过多个线程中的空闲线程在所述消息队列中获取所述待写入数据和所述数据源标识;
通过所述空闲线程向所述目标数据节点发送所述待写入数据和所述数据源标识。
本发明实施例提供的数据写入装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图8为本发明实施例提供的一种数据查询装置的结构示意图。请参见图8,该数据查询装置30可以包括接收模块31、第一确定模块32、第二确定模块33、第三确定模块34和发送模块35,其中,
所述接收模块31用于,接收网关发送的第一数据查询条件;
所述第一确定模块32用于,根据所述第一数据查询条件,在所述数据节点中确定目标数据块;
所述第二确定模块33用于,根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,所述索引文件包括所述目标数据块中每个数据源标识与子数据块的第一映射关系、所述目标数据块中的数据源标识中每个数据标签与子数据块的第二映射关系;
所述第三确定模块34用于,在目标子数据块中确定目标数据;
所述发送模块35用于,向所述网关发送所述目标数据。
本发明实施例提供的数据查询装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述第二确定模块33具体用于:
判断所述第一数据查询条件中是否包括第一数据源标识;
若是,则获取所述第一数据源标识对应的第一映射关系,并将所述第一数据源标识对应的第一映射关系中的子数据块确定为所述目标子数据块;
若否,获取所述第一数据查询条件中包括的至少一个第一数据标签,获取每个第一数据标签对应的第二映射关系,根据每个第一数据标签对应的第二映射关系确定所述目标子数据块。
在另一种可能的实施方式中,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置;所述第二确定模块33具体用于:
获取所述第一数据源标识对应的第一映射关系在所述索引文件中的第一存储位置;
在所述第一存储位置中获取所述第一数据源标识对应的第一映射关系。
在另一种可能的实施方式中,所述索引文件还包括每个数据标签对应的第二映射关系在所述索引文件中的存储位置;所述第二确定模块33具体用于:
获取每个第一数据标签对应的第二映射关系在所述索引文件中的第二存储位置;
在所述第二存储位置中获取每个第一数据标签对应的第二映射关系。
在另一种可能的实施方式中,所述第二确定模块33具体用于:
将每个第一数据标签对应的第二映射关系均包括的子数据块确定为所述目标子数据块。
本发明实施例提供的数据查询装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图9为本发明实施例提供的另一种数据查询装置的结构示意图。请参见图9,该数据查询装置40可以包括接收模块41、确定模块42和发送模块43,其中,
所述接收模块41用于,接收数据查询请求,所述数据查询请求包括第一数据查询条件;
所述确定模块42用于,确定所述第一数据查询条件对应的目标数据节点;
所述发送模块43用于,向所述目标数据节点发送所述第一数据查询条件,所述目标数据节点用于根据所述第一查询条件确定目标数据;
所述接收模块41还用于,接收所述目标数据节点发送的所述目标数据。
本发明实施例提供的数据查询装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述确定模块42具体用于:
在所述第一数据查询条件中提取第二数据查询条件,所述第二数据查询条件为所述预设对应关系中包括的数据查询条件,所述预设对应关系包括多个数据查询条件和每个数据查询条件对应的数据节点的标识;
根据所述第二数据查询条件和所述预设对应关系,确定所述目标数据节点。
本发明实施例提供的数据查询装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图10为本发明实施例提供的数据节点的硬件结构示意图。如图10所示,该数据节点50包括:至少一个处理器51和存储器52。可选地,该数据节点50还包括通信部件53。其中,处理器51、存储器52以及通信部件53通过总线54连接。
在具体实现过程中,至少一个处理器51执行所述存储器52存储的计算机执行指令,使得至少一个处理器51执行如上方法实施例所示的方法。可选的,处理器51可以执行上述方法实施例中数据节点的执行步骤。
通信部件53可以与其它部件(例如终端设备或者网关)进行数据交互。
处理器51的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图11为本发明实施例提供的网关的硬件结构示意图。如图11所示,该网关60包括:至少一个处理器61和存储器62。可选地,该网关60还包括通信部件63。其中,处理器61、存储器62以及通信部件63通过总线64连接。
在具体实现过程中,至少一个处理器61执行所述存储器62存储的计算机执行指令,使得至少一个处理器61执行如上方法实施例所示的方法。可选的,处理器61可以执行上述方法实施例中网关的执行步骤。
通信部件63可以与其它部件(例如终端设备或者数据节点)进行数据交互。
处理器61的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图10-图11所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的方法实施例所示的方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。

Claims (15)

1.一种数据写入方法,其特征在于,应用于数据节点,所述方法包括:
接收网关发送的待写入数据和所述待写入数据的数据源标识;
将所述待写入数据和所述数据源标识写入所述数据节点的内存中的第一数据块;
在所述第一数据块写满之后,根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,所述第二数据块位于所述数据节点的持久化磁盘中,所述第二数据块包括多个子数据块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,包括:
确定所述第一数据块中包括的至少一个数据源标识;
在所述第一数据块中确定每个数据源标识对应的数据;
依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中。
3.根据权利要求2所述的方法,其特征在于,所述依次将每个数据源标识对应的数据写入所述第二数据块的子数据块中之后,还包括:
生成所述第二数据块的索引文件;
其中,所述索引文件中包括所述第二数据块中每个数据源标识与子数据块的第一映射关系,以及所述第二数据块中数据源标识中包括的每个数据标签与子数据块的第二映射关系。
4.根据权利要求3所述的方法,其特征在于,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置,以及每个数据标签对应的第二映射关系在所述索引文件中的存储位置。
5.一种数据查询方法,其特征在于,应用于数据节点,所述方法包括:
接收网关发送的第一数据查询条件;
根据所述第一数据查询条件,在所述数据节点中确定目标数据块;
根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,所述索引文件包括所述目标数据块中每个数据源标识与子数据块的第一映射关系、所述目标数据块中的数据源标识中每个数据标签与子数据块的第二映射关系;
在目标子数据块中确定目标数据,并向所述网关发送所述目标数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,包括:
判断所述第一数据查询条件中是否包括第一数据源标识;
若是,则获取所述第一数据源标识对应的第一映射关系,并将所述第一数据源标识对应的第一映射关系中的子数据块确定为所述目标子数据块;
若否,获取所述第一数据查询条件中包括的至少一个第一数据标签,获取每个第一数据标签对应的第二映射关系,根据每个第一数据标签对应的第二映射关系确定所述目标子数据块。
7.根据权利要求6所述的方法,其特征在于,所述索引文件还包括每个数据源标识对应的第一映射关系在所述索引文件中的存储位置;所述获取所述第一数据源标识对应的第一映射关系,包括:
获取所述第一数据源标识对应的第一映射关系在所述索引文件中的第一存储位置;
在所述第一存储位置中获取所述第一数据源标识对应的第一映射关系。
8.根据权利要求6所述的方法,其特征在于,所述索引文件还包括每个数据标签对应的第二映射关系在所述索引文件中的存储位置;所述获取每个第一数据标签对应的第二映射关系,包括:
获取每个第一数据标签对应的第二映射关系在所述索引文件中的第二存储位置;
在所述第二存储位置中获取每个第一数据标签对应的第二映射关系。
9.根据权利要求6所述的方法,其特征在于,所述根据每个第一数据标签对应的第二映射关系确定所述目标子数据块,包括:
将每个第一数据标签对应的第二映射关系均包括的子数据块确定为所述目标子数据块。
10.一种数据写入装置,其特征在于,包括接收模块和写入模块,其中,
所述接收模块用于,接收网关发送的待写入数据和所述待写入数据的数据源标识;
所述写入模块用于,将所述待写入数据和所述数据源标识写入所述数据节点的内存中的第一数据块;
所述写入模块还用于,在所述第一数据块写满之后,根据所述第一数据块中的数据源标识,将所述第一数据块中的数据写入所述数据节点的第二数据块的子数据块中,所述第二数据块位于所述数据节点的持久化磁盘中,所述第二数据块包括多个子数据块。
11.一种数据查询装置,其特征在于,包括接收模块、第一确定模块、第二确定模块、第三确定模块和发送模块,其中,
所述接收模块用于,接收网关发送的第一数据查询条件;
所述第一确定模块用于,根据所述第一数据查询条件,在所述数据节点中确定目标数据块;
所述第二确定模块用于,根据所述第一数据查询条件和所述目标数据块的索引文件,确定目标子数据块,所述索引文件包括所述目标数据块中每个数据源标识与子数据块的第一映射关系、所述目标数据块中的数据源标识中每个数据标签与子数据块的第二映射关系;
所述第三确定模块用于,在目标子数据块中确定目标数据;
所述发送模块用于,向所述网关发送所述目标数据。
12.一种数据节点,其特征在于,包括处理器,所述处理器与存储器耦合,其中,
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,用于实现权利要求1-4任一项所述的数据写入方法。
13.一种数据节点,其特征在于,处理器,所述处理器与存储器耦合,其中,
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,用于实现权利要求5-9任一项所述的数据查询方法。
14.一种可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在计算机上运行时,如所述权利要求1-4任一项所述的数据写入方法被执行。
15.一种可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在计算机上运行时,如所述权利要求5-9任一项所述的数据查询方法被执行。
CN201811331057.4A 2018-11-09 2018-11-09 数据写入方法、数据查询方法、装置及设备 Active CN111241088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811331057.4A CN111241088B (zh) 2018-11-09 2018-11-09 数据写入方法、数据查询方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811331057.4A CN111241088B (zh) 2018-11-09 2018-11-09 数据写入方法、数据查询方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111241088A true CN111241088A (zh) 2020-06-05
CN111241088B CN111241088B (zh) 2024-09-20

Family

ID=70868259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811331057.4A Active CN111241088B (zh) 2018-11-09 2018-11-09 数据写入方法、数据查询方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111241088B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984198A (zh) * 2020-08-25 2020-11-24 北京一起教育信息咨询有限责任公司 消息队列实现方法、装置及电子设备
CN112464263A (zh) * 2020-12-04 2021-03-09 苏州浪潮智能科技有限公司 一种数据加密方法、系统、设备及介质
CN112637327A (zh) * 2020-12-21 2021-04-09 北京奇艺世纪科技有限公司 一种数据处理方法、装置及系统
CN114153842A (zh) * 2021-11-12 2022-03-08 广东广信通信服务有限公司 一种跨平台数据处理方法、系统、设备及介质
CN117271525A (zh) * 2023-10-27 2023-12-22 衡阳凯新特种材料科技有限公司 一种特种陶瓷数据长期存储系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257831A (zh) * 2012-02-20 2013-08-21 深圳市腾讯计算机系统有限公司 存储器的读写控制方法及对应的存储器
CN106354840A (zh) * 2016-08-31 2017-01-25 北京小米移动软件有限公司 文件处理方法、装置及分布式文件系统
WO2017096892A1 (zh) * 2015-12-07 2017-06-15 百度在线网络技术(北京)有限公司 索引构建方法、查询方法及对应装置、设备、计算机存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257831A (zh) * 2012-02-20 2013-08-21 深圳市腾讯计算机系统有限公司 存储器的读写控制方法及对应的存储器
WO2017096892A1 (zh) * 2015-12-07 2017-06-15 百度在线网络技术(北京)有限公司 索引构建方法、查询方法及对应装置、设备、计算机存储介质
CN106354840A (zh) * 2016-08-31 2017-01-25 北京小米移动软件有限公司 文件处理方法、装置及分布式文件系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984198A (zh) * 2020-08-25 2020-11-24 北京一起教育信息咨询有限责任公司 消息队列实现方法、装置及电子设备
CN111984198B (zh) * 2020-08-25 2024-02-27 北京一起教育信息咨询有限责任公司 消息队列实现方法、装置及电子设备
CN112464263A (zh) * 2020-12-04 2021-03-09 苏州浪潮智能科技有限公司 一种数据加密方法、系统、设备及介质
CN112637327A (zh) * 2020-12-21 2021-04-09 北京奇艺世纪科技有限公司 一种数据处理方法、装置及系统
CN114153842A (zh) * 2021-11-12 2022-03-08 广东广信通信服务有限公司 一种跨平台数据处理方法、系统、设备及介质
CN117271525A (zh) * 2023-10-27 2023-12-22 衡阳凯新特种材料科技有限公司 一种特种陶瓷数据长期存储系统及方法

Also Published As

Publication number Publication date
CN111241088B (zh) 2024-09-20

Similar Documents

Publication Publication Date Title
CN111241088B (zh) 数据写入方法、数据查询方法、装置及设备
EP3678015B1 (en) Metadata query method and device
CN109656473A (zh) 桥接装置及提供接近存储计算的方法
CN104462225B (zh) 一种数据读取的方法、装置及系统
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN104584524A (zh) 聚合中介系统中的数据
WO2017020668A1 (zh) 一种物理磁盘的共享方法及装置
CN107798063B (zh) 快照处理方法和快照处理装置
CN105183399A (zh) 一种基于弹性块存储的数据写、读方法及装置
CN106681995B (zh) 数据缓存方法、数据查询方法及装置
CN113407376B (zh) 一种数据恢复方法、装置及电子设备
US20160224603A1 (en) Method for Reading and Writing Forwarding Information Base, and Network Processor
US8782375B2 (en) Hash-based managing of storage identifiers
RU2686016C2 (ru) Сетевой интерфейс
CN105446664A (zh) 一种对存储器进行文件存储方法和存储装置
CN116578746A (zh) 对象去重方法及装置
CN104077082A (zh) 网络投票数据存储方法和装置
CN109542860B (zh) 基于hdfs的业务数据管理方法、终端设备
CN104679893A (zh) 一种基于大数据的信息检索方法
CN107861841B (zh) 一种SSD Cache中数据映射的管理方法及系统
CN109271278B (zh) 一种确定磁盘快照数据切片的引用次数的方法和装置
CN110825521B (zh) 一种内存使用管理方法、装置及存储介质
CN114116723A (zh) 快照处理方法、装置及电子设备
CN109104447B (zh) 一种车载数据读写方法及装置
CN110765190A (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