CN111782134A - 数据处理方法、装置、***和计算机可读存储介质 - Google Patents

数据处理方法、装置、***和计算机可读存储介质 Download PDF

Info

Publication number
CN111782134A
CN111782134A CN201910515339.8A CN201910515339A CN111782134A CN 111782134 A CN111782134 A CN 111782134A CN 201910515339 A CN201910515339 A CN 201910515339A CN 111782134 A CN111782134 A CN 111782134A
Authority
CN
China
Prior art keywords
data
memory
written
packet
group
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
CN201910515339.8A
Other languages
English (en)
Other versions
CN111782134B (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 CN201910515339.8A priority Critical patent/CN111782134B/zh
Publication of CN111782134A publication Critical patent/CN111782134A/zh
Application granted granted Critical
Publication of CN111782134B publication Critical patent/CN111782134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及一种数据处理方法、装置、***和计算机可读存储介质,涉及数据存储领域。本公开的方法包括:接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据;获取当前状态为写入状态的分组的拓扑信息;其中,拓扑信息包括分组中各个存储分片的地址信息,不同的分组是根据时间顺序划分的;根据拓扑信息,将各组待写入的数据分配至分组中不同的存储分片,以便由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。

Description

数据处理方法、装置、***和计算机可读存储介质
技术领域
本公开涉及数据存储领域,特别涉及一种数据处理方法、装置、***和计算机可读存储介质。
背景技术
随着互联网技术的发展,数据量呈现***式增长的特征,数据的存储和管理变得尤为重要。
时序数据是一种按照时间顺序记录的数据,例如,日志数据。时序数据存在持续高并发写入,冷热数据分明,数据重复等特性。
发明内容
本公开所要解决的一个技术问题是:提出一种针对时序数据进行存储的方法,更好的应对时序数据的持续高并发写入的特点。
根据本公开的一些实施例,提供的一种数据处理方法,包括:接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据;获取当前状态为写入状态的分组的拓扑信息;其中,拓扑信息包括分组中各个存储分片的地址信息,不同的分组是根据时间顺序划分的;根据拓扑信息,将各组待写入的数据分配至分组中不同的存储分片,以便由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。
在一些实施例中,将各组待写入的数据分配至分组中不同的存储分片包括:针对一组待写入的数据,根据该组待写入的数据的标识信息计算该组待写入的数据的哈希值;根据该组待写入的数据的哈希值,确定对应的存储分片。
在一些实施例中,在分组被写满的情况下,分组的当前状态被修改为只读状态,分组被配置对应的时间窗口,时间窗口的范围根据创建时间和写满时间确定;并且另一个分组被创建并被设置为写入状态。
在一些实施例中,在分组的保留时长超过预设时长的情况下,分组中的数据被删除,保留时长是从分组的当前状态被修改为只读状态的时刻开始计时的。
在一些实施例中,待写入的数据是根据字符串压缩技术被压缩后写入对应的存储分片,字符串压缩技术包括将待写入的数据转换为枚举。
在一些实施例中,拓扑信息还包括:各个存储分片的版本信息;该方法还包括:将存储分片的版本信息发送至对应的存储分片,以便存储分片对版本信息进行验证;响应于接收到存储分片返回的版本信息错误的信息,从控制中心获取分组的正确的拓扑信息。
在一些实施例中,该方法还包括:接收客户端发送的数据查询请求;根据数据查询请求获取对应的分组的拓扑信息;根据拓扑信息向对应的分组中的各个存储分片发送数据查询请求,以便各个存储分片对应的各个存储引擎分别获取欲查询的数据;接收各个存储分片返回的欲查询的数据,将欲查询的数据进行合并,并返回至客户端。
在一些实施例中,根据数据查询请求获取对应的分组的拓扑信息包括:在数据查询请求包括时间范围的情况下,获取该时间范围对应的分组的拓扑信息;在数据查询请求不包括时间范围的情况下,获取全部分组的拓扑信息。
根据本公开的另一些实施例,提供的一种数据处理装置,包括:请求接收模块,用于接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据;分组信息获取模块,用于获取当前状态为写入状态的分组的拓扑信息;其中,拓扑信息包括分组中各个存储分片的地址信息,不同的分组是根据时间顺序划分的;数据分配模块,用于根据拓扑信息,将各组待写入的数据分配至分组中不同的存储分片,以便由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。
在一些实施例中,数据分配模块用于针对一组待写入的数据,根据该组待写入的数据的标识信息计算该组待写入的数据的哈希值;根据该组待写入的数据的哈希值,确定对应的存储分片。
在一些实施例中,拓扑信息还包括:各个存储分片的版本信息;该装置还包括:信息更新模块,用于将存储分片的版本信息发送至对应的存储分片,以便存储分片对版本信息进行验证;响应于接收到存储分片返回的版本信息错误的信息,从控制中心获取分组的正确的拓扑信息。
在一些实施例中,请求接收模块还用于接收客户端发送的数据查询请求;分组信息获取模块还用于根据数据查询请求获取对应的分组的拓扑信息;该装置还包括:请求转发模块,用于根据拓扑信息向对应的分组中的各个存储分片发送数据查询请求,以便各个存储分片对应的各个存储引擎分别获取欲查询的数据;数据合并模块,用于接收各个存储分片返回的欲查询的数据,将欲查询的数据进行合并,并返回至客户端。
在一些实施例中,分组信息获取模块还用于在数据查询请求包括时间范围的情况下,获取该时间范围对应的分组的拓扑信息;在数据查询请求不包括时间范围的情况下,获取全部分组的拓扑信息。
根据本公开的又一些实施例,提供的一种数据处理***,包括:前述任意实施例的数据处理装置,以及多个存储分片;多个存储分片被划分为不同的分组;存储分片用于利用对应的存储引擎将分配的待写入的数据写入该存储分片。
在一些实施例中,待写入的数据是根据字符串压缩技术被压缩后写入对应的存储分片,字符串压缩技术包括将待写入的数据转换为枚举。
在一些实施例中,该***还包括:控制中心,用于在分组被写满的情况下,将分组的当前状态修改为只读状态,为分组配置对应的时间窗口,时间窗口的范围根据创建时间和写满时间确定;并且创建另一个分组并将该分组设置为写入状态;或者,在分组的保留时长超过预设时长的情况下,将分组中的数据删除,保留时长是从分组的当前状态被修改为只读状态的时刻开始计时的。
根据本公开的再一些实施例,提供的一种数据处理***,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行如前述任意实施例的数据处理方法的步骤。
根据本公开的又一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据处理方法的步骤。
本公开中根据时间顺序将不同的分片划分为不同的分组,在接收到并发的多个数据写入请求的情况下,查找当前状态为写入状态的分组的拓扑信息,根据拓扑信息将各组待写入的数据分配至各个存储分片,由分配的各个存储分片对应的存储引擎将待写入的数据写入对应的存储分片。通过多个分片对应的存储引擎并行写入的方式,能够更好的支持时序数据持续高并发写入的特点。并且根据时间顺序划分分组,将数据写入对应的分组,便于时序数据的管理,以及后续数据的查找和应用。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的数据处理方法的流程示意图。
图2示出本公开的一些实施例的分组的结构示意图。
图3示出本公开的另一些实施例的数据处理方法的流程示意图。
图4示出本公开的一些实施例的存储结构的示意图。
图5示出本公开的一些实施例的数据处理装置的结构示意图。
图6示出本公开的另一些实施例的数据处理装置的结构示意图。
图7示出本公开的一些实施例的数据处理***的结构示意图。
图8示出本公开的另一些实施例的数据处理***的结构示意图。
图9示出本公开的又一些实施例的数据处理***的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
针对时序数据持续高并发写入的特点,本公开提出一种针对时序数据进行存储的方法,能够更好的应对时序数据的持续高并发写入的特点,下面结合图1进行描述。
图1为本公开数据处理方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S108。
在步骤S102中,接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据。
可以由网关接收客户端发送的各种请求,并判断请求是否为数据写入请求。待写入的数据可以是日志数据,对应着具体的日志时间戳。每组时序数据可以被包装成一个文件(Document)。
在步骤S104中,获取当前状态为写入状态的分组的拓扑信息。
在一些实施例中,不同的分组是根据时间顺序划分的,不同的分组对应不同的时间窗口。一个分组中包含多个存储分片,存储分片可以理解为具有预设存储容量的存储空间。并且在一个时刻可以只有一个写入状态的分组,便于数据写入的管理。分组中的存储分片的数量可以灵活添加,在当前状态为写入状态的分组无法满足待写入的数据的性能需求的情况下,可以在该分组中实时增加新的存储分片。由于分组中的存储分片由于可以灵活增加,因此,一个时刻只要有一个分组即可满足写入需求。当然,采用增加分组来满足写入需求的方式也可以,但是同一时刻对应多个分组,会增加后续数据查询过程的工作量,后续实施例中将对查询方法进行描述。因此,优先方式为在一个时刻只有一个写入状态的分组。只读状态的分组无法增加新的存储分片。
如图2所示,优选的,存储空间被划分为多个存储分片,不同的存储分片在逻辑中被划分至不同的分组,不同的分组对应不同的时间窗口,一个分组的当前状态为写入和可读(Write&Read)状态,其他分组均为只读(Read Only)状态。例如分组1(Group 1)包括分片(Shard)1~6,对应时间窗口为T1~T2,当前状态为只读状态。图2中每个分组包含的分片数量相同,实际应用中可以相同也可以不同,根据需求进行设置。每个分组中的存储分片可以位于一个或多个存储节点,位于不同的存储节点上可以更好的发挥分布式存储的优势,提高数据写入和读取的效率。由于存储节点的CPU、内存、磁盘IO、网络IO等能力的限制,当一个存储节点上的存储分片过多,可能导致数据读写能力的下降。因此,还可以设置每个存储节点上存储分片的数量阈值,提高数据的写入和读取效率。
进一步,可以由控制中心(Master)来实现分组的创建、状态的转换等管理过程。在当前状态为写入状态的分子分组被写满的情况下,分组的当前状态被修改为只读状态,同时控制中心可以创建一个新的分组,并将新的分组的状态设置为写入状态。写入状态的分组也可读。分组被创建对应一个开始时间,分组被写满后修改为只读状态对应一个结束时间,开始时间到结束时间对应的时间范围作为该分组的时间窗口<startTime,endTime>。在该时间窗口对应的时间范围内的时序数据都被写入该分组,便于后续的数据查询和管理。
在一些实施例中,在分组的保留时长超过预设时长的情况下,分组中的数据被删除,保留时长是从分组的当前状态被修改为只读状态的时刻开始计时的。分组的保留时长即结束时间到当前时间的时长。将保留时长过长的历史分组的数据进行删除,可以释放存储空间,节约存储资源。并且通过按照时间顺序划分分组,更加容易实现数据的时效管理,只需要管理分组的保留时长即可实现对整个分组的数据的时效管理。将分组中的数据删除后,还可以删除分组,分组中的存储分片被释放可以用于组建新的分组。或者,分组中的数据删除后,在需要新建分组的情况下,可以直接将该分组的时间窗口进行修改作为新的分组使用。
拓扑信息包括可以分组中各个存储分片的地址信息,例如IP地址信息,还可以包括各个存储分片的版本信息等。网关中可以存储各个分组的拓扑信息,网关可以周期性更新各个分组的拓扑信息,也可以由控制中心在分组的拓扑信息更新后通知网关进行相应的更新。网关也可以向控制中心获取各个分组的拓扑信息,控制中心负责更新和管理所有分组的拓扑信息。
在步骤S106中,根据拓扑信息,将各组待写入的数据分配至分组中不同的存储分片。
在一些实施例中,可以采用轮询各个存储分片的形式,将各组待写入的数据分配到不同的存储分片,例如,第1组待写入的数据分配至存储分片1,第2组待写入的数据分配至存储分片2……以此类推,依次轮询各个存储分片。
在另一些实施例中,针对一组待写入的数据,根据该组待写入的数据的标识信息计算该组待写入的数据的哈希值;根据该组待写入的数据的哈希值,确定对应的存储分片。例如,每组时序数据可以被包装成一个文件(Document),每个Document可以对应一个标识(Document ID),计算Document ID的哈希值,利用哈希值模存储分片的个数,根据得到的数值选取对应的存储分片。
也可以采用其他方式为待写入的数据分配存储分片。上述两种方式可以尽量将各组数据均衡的分配至不同的存储分片,有利于各个存储分片的负载均衡,提高存储效率。
在一些实施例中,拓扑信息还包括:各个存储分片的版本信息。网关在向各个存储分片发送待写入的数据的情况下,可以将存储分片的版本信息发送至对应的存储分片,以便存储分片对版本信息进行验证。网关响应于接收到存储分片返回的版本信息错误的信息,从控制中心获取分组的正确的拓扑信息。版本信息用于反映存储分片当前的属性信息是否发生变化,例如,存储分片的名称、存储范围、地址等信息发生变化会导致版本变化。
在步骤S108中,由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。
每个存储分片底层对应一个存储引擎,可以实现各个存储分片并行独立写入数据。存储引擎例如为Lucene检索存储引擎,不限于所举示例。Lucene检索存储引擎具备高性能的全文检索和聚合分析能力,但是相对于现有的HBase或者其他采用LSM(日志结构合并树)架构的检索存储引擎吞吐量较低,但是应用本公开的方案,通过对存储分片分组,每个存储分片对应一个存储引擎,可以将不同的待写入的数据分散到不同的Lucene检索存储引擎,在很大程度上提高了写入的吞吐量,更好的应对高持续并发的写入请求。
在一些实施例中,待写入的数据是根据字符串压缩技术被压缩后写入对应的存储分片。字符串压缩技术包括将待写入的数据转换为枚举。针对例如日志数据,这种重复性很高的时序数据,利用将字符串转换为枚举等字符串压缩技术,可以在很大程度上减少数据的存储量,节约磁盘存储空间。
上述实施例的方法中根据时间顺序将不同的分片划分为不同的分组,在接收到并发的多个数据写入请求的情况下,查找当前状态为写入状态的分组的拓扑信息,根据拓扑信息将各组待写入的数据分配至各个存储分片,由分配的各个存储分片对应的存储引擎将待写入的数据写入对应的存储分片。通过多个分片对应的存储引擎并行写入的方式,能够更好的支持时序数据持续高并发写入的特点。并且根据时间顺序划分分组,将数据写入对应的分组,便于时序数据的管理,以及后续数据的查找和应用。
针对上述实施例的待写入的数据的存储方式,本公开还提供一种数据查询的方法,下面结合图3进行描述。
图3为本公开数据处理方法另一些实施例的流程图。如图3所示,该实施例的方法包括:步骤S302~S310。
在步骤S302中,接收客户端发送的数据查询请求。
可以由网关接收客户端发送的各种请求,并判断请求是否为数据查询请求。数据查询请求中可以包含过滤条件,例如,时间信息、关键字段等。
在步骤S304中,根据数据查询请求获取对应的分组的拓扑信息。
在一些实施例中,网关可以对数据查询请求进行解析,在数据查询请求包括时间范围的情况下,获取该时间范围对应的分组的拓扑信息。在数据查询请求不包括时间范围的情况下,获取全部分组的拓扑信息。
在步骤S306中,根据拓扑信息向对应的分组中的各个存储分片发送数据查询请求。
网关可以将数据查询请求发送至对应的各个分组中存储分片,由存储分片的存储引擎进行处理。
在步骤S308中,各个存储分片对应的各个存储引擎分别获取欲查询的数据。
每个存储分片对应一个存储引擎,例如,存储引擎为Lucene。存储引擎根据数据查询请求中的过滤条件获取欲查询的数据。
在步骤S310中,接收各个存储分片返回的欲查询的数据,将欲查询的数据进行合并,并返回至客户端。
由于数据分散的存储在各个存储分片,因此,网关从各个存储分片获取到用户欲查询的数据后,需要将数据进行合并后返回至客户端。
上述实施例的方法,将用户的数据查询请求分散至各个存储分片进行处理,提高了数据查询的效率。通过按照时间顺序划分分组,将时序数据按照时间信息存储的不同的分组,便于数据查询,进一步提高了数据查询的效率。
如图4所示,本公开中可以由网关负责接收客户端的请求,并将请求转发至对应的分组中各个存储分片进行处理。分组的创建和管理可以由控制中心(Master)负责。控制中心可以管理分组的生命周期,由控制中心启动一个分组,分组对应一个创建时间,当分组中的存储分片写满后,控制中心可以冻结这个分组,即修改分组的状态为只读,同时会创建一个新的分组负责写操作。如果一个分组的保留时长超过配置的预设时长,控制中心还可以删除这个分组。控制中心还可以负责管理和更新各个分组的拓扑信息。
控制中心还可以负责例如,存储分片或节点健康管理(或故障管理),例如,存储分片或节点可以周期性向控制中心上报心跳信息,控制中心根据心跳信息获知各个分片或节点的健康状态。控制中心可以采用多副本的方式保证高可用,当主副本异常时,从副本可以快读切换成主副本继续提供服务。
存储集群包括多个存储节点,存储节点的存储空间在逻辑上可以划分为元数据存储空间(Meta Store)和数据存储空间(例如,线程私有数据(TSD)Store)。元数据存储空间中可以存储字符串字典,用于将在存储时将字符串转换为枚举。数据存储空间用于存储时序数据,包括多个分组,每个分组包括多个存储分片。
本公开还提供一种数据处理装置,该装置可以设置于网关,下面结合图5进行描述。
图5为本公开数据处理装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:请求接收模块502,分组信息获取模块504,数据分配模块506。
请求接收模块502,用于接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据。
分组信息获取模块504,用于获取当前状态为写入状态的分组的拓扑信息;其中,拓扑信息包括分组中各个存储分片的地址信息,不同的分组是根据时间顺序划分的。
数据分配模块506,用于根据拓扑信息,将各组待写入的数据分配至分组中不同的存储分片,以便由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。
在一些实施例中,数据分配模块506用于针对一组待写入的数据,根据该组待写入的数据的标识信息计算该组待写入的数据的哈希值;根据该组待写入的数据的哈希值,确定对应的存储分片。
下面结合图6描述本公开数据处理装置的另一些实施例。
图6为本公开数据处理装置的一些实施例的结构图。如图6所示,该实施例的装置60包括:请求接收模块602,分组信息获取模块604,数据分配模块606,分别具有与请求接收模块502,分组信息获取模块504,数据分配模块506相同或相似的功能。
在一些实施例中,拓扑信息还包括:各个存储分片的版本信息。装置60还包括:信息更新模块608,用于将存储分片的版本信息发送至对应的存储分片,以便存储分片对版本信息进行验证;响应于接收到存储分片返回的版本信息错误的信息,从控制中心获取分组的正确的拓扑信息。
在一些实施例中,请求接收模块602还用于接收客户端发送的数据查询请求。分组信息获取模块604还用于根据数据查询请求获取对应的分组的拓扑信息。述装置60还包括:请求转发模块610,用于根据拓扑信息向对应的分组中的各个存储分片发送数据查询请求,以便各个存储分片对应的各个存储引擎分别获取欲查询的数据。数据合并模块612,用于接收各个存储分片返回的欲查询的数据,将欲查询的数据进行合并,并返回至客户端。
在一些实施例中,分组信息获取模块604还用于在数据查询请求包括时间范围的情况下,获取该时间范围对应的分组的拓扑信息;在数据查询请求不包括时间范围的情况下,获取全部分组的拓扑信息。
本公开还提供一种数据处理***,下面结合图7进行描述。
图7为本公开数据处理***的一些实施例的结构图。如图7所示,该实施例的***7包括:前述任意实施例的数据处理装置50/60,以及多个存储分片72;多个存储分片72被划分为不同的分组;
存储分片72用于利用对应的存储引擎将分配的待写入的数据写入该存储分片。存储分片72还用于利用对应的存储引擎获取欲查询的数据,并返回至数据处理装置50/60。
在一些实施例中,待写入的数据是根据字符串压缩技术被压缩后写入对应的存储分片,字符串压缩技术包括将待写入的数据转换为枚举。
在一些实施例中,***7还包括:控制中心74,用于在分组被写满的情况下,将分组的当前状态修改为只读状态,为分组配置对应的时间窗口,时间窗口的范围根据创建时间和写满时间确定;并且创建另一个分组并将该分组设置为写入状态;或者,在分组的保留时长超过预设时长的情况下,将分组中的数据删除,保留时长是从分组的当前状态被修改为只读状态的时刻开始计时的。
本公开的实施例中的数据处理***中的装置可各由各种计算设备或计算机***来实现,下面结合图8以及图9进行描述。
图8为本公开数据处理***的一些实施例的结构图。如图8所示,该实施例的数据处理***80包括:存储器810以及耦接至该存储器810的处理器820,处理器820被配置为基于存储在存储器810中的指令,执行本公开中任意一些实施例中的数据处理方法。
其中,存储器810例如可以包括***存储器、固定非易失性存储介质等。***存储器例如存储有操作***、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图9为本公开数据处理***的另一些实施例的结构图。如图9所示,该实施例的数据处理***90包括:存储器910以及处理器920,分别与存储器810以及处理器820类似。还可以包括输入输出接口930、网络接口940、存储接口950等。这些接口930,940,950以及存储器910和处理器920之间例如可以通过总线260连接。其中,输入输出接口930为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口940为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口950为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (18)

1.一种数据处理方法,包括:
接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据;
获取当前状态为写入状态的分组的拓扑信息;其中,所述拓扑信息包括所述分组中各个存储分片的地址信息,不同的分组是根据时间顺序划分的;
根据所述拓扑信息,将各组待写入的数据分配至所述分组中不同的存储分片,以便由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。
2.根据权利要求1所述的数据处理方法,其中,
将各组待写入的数据分配至所述分组中不同的存储分片包括:
针对一组待写入的数据,根据该组待写入的数据的标识信息计算该组待写入的数据的哈希值;
根据该组待写入的数据的哈希值,确定对应的存储分片。
3.根据权利要求1所述的数据处理方法,其中,
在所述分组被写满的情况下,所述分组的当前状态被修改为只读状态,所述分组被配置对应的时间窗口,时间窗口的范围根据创建时间和写满时间确定;并且另一个分组被创建并被设置为写入状态。
4.根据权利要求3所述的数据处理方法,其中,
在所述分组的保留时长超过预设时长的情况下,所述分组中的数据被删除,所述保留时长是从所述分组的当前状态被修改为只读状态的时刻开始计时的。
5.根据权利要求1所述的数据处理方法,其中,
所述待写入的数据是根据字符串压缩技术被压缩后写入对应的存储分片,所述字符串压缩技术包括将所述待写入的数据转换为枚举。
6.根据权利要求1所述的数据处理方法,其中,
所述拓扑信息还包括:各个存储分片的版本信息;
所述方法还包括:
将存储分片的版本信息发送至对应的存储分片,以便所述存储分片对所述版本信息进行验证;
响应于接收到所述存储分片返回的版本信息错误的信息,从控制中心获取所述分组的正确的拓扑信息。
7.根据权利要求1所述的数据处理方法,还包括:
接收客户端发送的数据查询请求;
根据所述数据查询请求获取对应的分组的拓扑信息;
根据所述拓扑信息向所述对应的分组中的各个存储分片发送所述数据查询请求,以便所述各个存储分片对应的各个存储引擎分别获取欲查询的数据;
接收所述各个存储分片返回的欲查询的数据,将所述欲查询的数据进行合并,并返回至所述客户端。
8.根据权利要求7所述的数据处理方法,其中,
所述根据所述数据查询请求获取对应的分组的拓扑信息包括:
在所述数据查询请求包括时间范围的情况下,获取该时间范围对应的分组的拓扑信息;
在所述数据查询请求不包括时间范围的情况下,获取全部分组的拓扑信息。
9.一种数据处理装置,包括:
请求接收模块,用于接收多个并发的数据写入请求,每个数据写入请求包括一组待写入的数据;
分组信息获取模块,用于获取当前状态为写入状态的分组的拓扑信息;其中,所述拓扑信息包括所述分组中各个存储分片的地址信息,不同的分组是根据时间顺序划分的;
数据分配模块,用于根据所述拓扑信息,将各组待写入的数据分配至所述分组中不同的存储分片,以便由分配的各个存储分片对应的各个存储引擎将各组待写入的数据写入对应的存储分片。
10.根据权利要求9所述的数据处理装置,其中,
所述数据分配模块用于针对一组待写入的数据,根据该组待写入的数据的标识信息计算该组待写入的数据的哈希值;根据该组待写入的数据的哈希值,确定对应的存储分片。
11.根据权利要求9所述的数据处理装置,其中,
所述拓扑信息还包括:各个存储分片的版本信息;
所述装置还包括:
信息更新模块,用于将存储分片的版本信息发送至对应的存储分片,以便所述存储分片对所述版本信息进行验证;响应于接收到所述存储分片返回的版本信息错误的信息,从控制中心获取所述分组的正确的拓扑信息。
12.根据权利要求9所述的数据处理装置,其中,
所述请求接收模块还用于接收客户端发送的数据查询请求;
所述分组信息获取模块还用于根据所述数据查询请求获取对应的分组的拓扑信息;
所述装置还包括:
请求转发模块,用于根据所述拓扑信息向所述对应的分组中的各个存储分片发送所述数据查询请求,以便所述各个存储分片对应的各个存储引擎分别获取欲查询的数据;
数据合并模块,用于接收所述各个存储分片返回的欲查询的数据,将所述欲查询的数据进行合并,并返回至所述客户端。
13.根据权利要求12所述的数据处理装置,其中,
所述分组信息获取模块还用于在所述数据查询请求包括时间范围的情况下,获取该时间范围对应的分组的拓扑信息;在所述数据查询请求不包括时间范围的情况下,获取全部分组的拓扑信息。
14.一种数据处理***,包括:权利要求9-13任一项所述的数据处理装置,以及多个存储分片;多个存储分片被划分为不同的分组;
所述存储分片用于利用对应的存储引擎将分配的待写入的数据写入该存储分片。
15.根据权利要求14所述的数据处理***,其中,
所述待写入的数据是根据字符串压缩技术被压缩后写入对应的存储分片,所述字符串压缩技术包括将所述待写入的数据转换为枚举。
16.根据权利要求14所述的数据处理***,还包括:
控制中心,用于在所述分组被写满的情况下,将所述分组的当前状态修改为只读状态,为所述分组配置对应的时间窗口,时间窗口的范围根据创建时间和写满时间确定;并且创建另一个分组并将该分组设置为写入状态;
或者,在所述分组的保留时长超过预设时长的情况下,将所述分组中的数据删除,所述保留时长是从所述分组的当前状态被修改为只读状态的时刻开始计时的。
17.一种数据处理***,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-8任一项所述的数据处理方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
CN201910515339.8A 2019-06-14 2019-06-14 数据处理方法、装置、***和计算机可读存储介质 Active CN111782134B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910515339.8A CN111782134B (zh) 2019-06-14 2019-06-14 数据处理方法、装置、***和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910515339.8A CN111782134B (zh) 2019-06-14 2019-06-14 数据处理方法、装置、***和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111782134A true CN111782134A (zh) 2020-10-16
CN111782134B CN111782134B (zh) 2024-06-14

Family

ID=72755698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910515339.8A Active CN111782134B (zh) 2019-06-14 2019-06-14 数据处理方法、装置、***和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111782134B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231501A (zh) * 2020-10-20 2021-01-15 浙江大华技术股份有限公司 人像库的数据存储、检索方法及装置、存储介质
CN112364019A (zh) * 2020-11-04 2021-02-12 中盈优创资讯科技有限公司 一种自定义Spark数据源实现数据快速写入ClickHouse的方法和装置
CN112463333A (zh) * 2020-12-03 2021-03-09 北京浪潮数据技术有限公司 一种基于多线程并发的数据存取方法、装置和介质
CN112684983A (zh) * 2020-12-28 2021-04-20 北京三快在线科技有限公司 数据存储方法、装置、电子设备及可读存储介质
CN114443703A (zh) * 2021-12-15 2022-05-06 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
WO2022110196A1 (zh) * 2020-11-30 2022-06-02 华为技术有限公司 一种数据处理方法、装置及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692655A (zh) * 2009-10-23 2010-04-07 烽火通信科技股份有限公司 一种数据帧存储管理装置
CN108509652A (zh) * 2018-04-17 2018-09-07 山东大众益康网络科技有限公司 数据处理***及方法
CN108616556A (zh) * 2016-12-13 2018-10-02 阿里巴巴集团控股有限公司 数据处理方法、装置和***
US20180341410A1 (en) * 2017-03-24 2018-11-29 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692655A (zh) * 2009-10-23 2010-04-07 烽火通信科技股份有限公司 一种数据帧存储管理装置
CN108616556A (zh) * 2016-12-13 2018-10-02 阿里巴巴集团控股有限公司 数据处理方法、装置和***
US20180341410A1 (en) * 2017-03-24 2018-11-29 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
CN108509652A (zh) * 2018-04-17 2018-09-07 山东大众益康网络科技有限公司 数据处理***及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231501A (zh) * 2020-10-20 2021-01-15 浙江大华技术股份有限公司 人像库的数据存储、检索方法及装置、存储介质
CN112364019A (zh) * 2020-11-04 2021-02-12 中盈优创资讯科技有限公司 一种自定义Spark数据源实现数据快速写入ClickHouse的方法和装置
CN112364019B (zh) * 2020-11-04 2022-10-04 中盈优创资讯科技有限公司 一种自定义Spark数据源实现数据快速写入ClickHouse的方法和装置
WO2022110196A1 (zh) * 2020-11-30 2022-06-02 华为技术有限公司 一种数据处理方法、装置及***
CN112463333A (zh) * 2020-12-03 2021-03-09 北京浪潮数据技术有限公司 一种基于多线程并发的数据存取方法、装置和介质
CN112684983A (zh) * 2020-12-28 2021-04-20 北京三快在线科技有限公司 数据存储方法、装置、电子设备及可读存储介质
CN114443703A (zh) * 2021-12-15 2022-05-06 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111782134B (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
CN111782134B (zh) 数据处理方法、装置、***和计算机可读存储介质
US10795905B2 (en) Data stream ingestion and persistence techniques
US10691716B2 (en) Dynamic partitioning techniques for data streams
US9276959B2 (en) Client-configurable security options for data streams
US9794135B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US10635644B2 (en) Partition-based data stream processing framework
US20170277556A1 (en) Distribution system, computer, and arrangement method for virtual machine
US10019459B1 (en) Distributed deduplication in a distributed system of hybrid storage and compute nodes
US9342529B2 (en) Directory-level referral method for parallel NFS with multiple metadata servers
CN110147411A (zh) 数据同步方法、装置、计算机设备及存储介质
US20130218934A1 (en) Method for directory entries split and merge in distributed file system
CN110347651A (zh) 基于云存储的数据同步方法、装置、设备及存储介质
US20170031948A1 (en) File synchronization method, server, and terminal
JP2014232483A (ja) データベースシステム、検索方法およびプログラム
CN116304390B (zh) 时序数据处理方法、装置、存储介质及电子设备
CN111694505B (zh) 数据存储管理方法、装置和计算机可读存储介质
JP2023531751A (ja) 車載データ記憶方法およびシステム
JP2012190377A (ja) コンテンツ分散保管システム
Lu et al. Research on Cassandra data compaction strategies for time-series data
CN115292280A (zh) 一种跨区域的数据调度方法、装置、设备及存储介质
CN113905252A (zh) 直播间的数据存储方法、装置、电子设备及存储介质
CN113326335A (zh) 数据存储***、方法、装置、电子设备及计算机存储介质
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
JP6193491B2 (ja) 計算機システム
WO2017104012A1 (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
GR01 Patent grant
GR01 Patent grant