CN112597191A - 数据处理方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据处理方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN112597191A CN112597191A CN202011597446.9A CN202011597446A CN112597191A CN 112597191 A CN112597191 A CN 112597191A CN 202011597446 A CN202011597446 A CN 202011597446A CN 112597191 A CN112597191 A CN 112597191A
- Authority
- CN
- China
- Prior art keywords
- data
- index table
- time period
- data storage
- new
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 24
- 238000013500 data storage Methods 0.000 claims abstract description 93
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000004519 manufacturing process Methods 0.000 claims abstract description 35
- 230000000737 periodic effect Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000003203 everyday effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据处理方法、装置、电子设备、存储介质及程序产品,所述方法包括:响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。该技术方案在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
Description
技术领域
本公开实施例涉及计算机技术领域,具体涉及一种数据处理方法、装置、电子设备、存储介质及程序产品。
背景技术
在联机生产环境中,很多海量数据的多维查询功能是基于ES(Elastic Search)解决方案实现的。ES是一种基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。同时ES还是一种分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。
已有技术中,针对应用场景在ES建立对应的一张索引表,每天根据数据库中数据的更新而更新该索引表,之后再通过ES为前端生产提供查询接口。但是,该方案中存在一个问题,即由于是海量数据,因此在更新索引表时,会产生大量的I/O操作,进而会导致ES的生产读取性能下降,甚至会造成生产服务不可用。因此,如何在更新索引表过程中保持ES的生产读取性能稳定是当前需要解决的技术问题之一。
发明内容
本公开实施例提供一种数据处理方法、装置、电子设备、存储介质及程序产品。
第一方面,本公开实施例中提供了一种数据处理方法,包括:
响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;
将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
进一步地,每个索引表对应一别名,且不同的所述索引表对应于不同的别名。
进一步地,所述方法还包括:
接收数据查询请求;
根据所述数据查询请求确定待查询数据对应的索引表的别名;
基于具有所述别名的所述索引表从所述数据存储节点中查询得到所述待查询数据;
返回所述待查询数据。
进一步地,所述方法还包括:
接收数据更新完成操作;
根据所述数据更新完成操作确定更新数据对应的索引表的别名;
从具有所述别名的所述索引表中删除所述更新数据的信息。
进一步地,所述方法还包括:
响应于周期性触发事件,从所述数据存储节点确定被删除数据的信息;
根据所述被删除数据的信息更新已有索引表。
进一步地,所述方法还包括:
接收索引表更新请求;所述索引表更新请求包括待更新索引表的别名;
创建新索引表,将待更新索引表对应的海量数据的索引写入所述新索引表中;
删除所述待更新索引表。
进一步地,所述方法还包括:
接收索引表创建请求;
确定存储在数据存储节点中的海量数据的产生时间,并根据所述产生时间按照时间周期将所述海量数据进行分组;
针对每组所述海量数据,建立索引表。
第二方面,本公开实施例中提供了一种数据处理方法,包括:
生产系统将新增数据发送至一个或多个数据存储节点;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
一个或多个所述数据存储节点存储所述新增数据;
查询引擎响应于当前时间周期的周期性触发事件,从所述数据存储节点获取当前时间周期内新增数据的信息,并根据所述新增数据的信息创建对应于所述当前时间周期的新索引表,以及将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
进一步地,每个索引表对应一别名,且不同的所述索引表对应于不同的别名。
进一步地,所述方法还包括:
所述查询引擎接收外部的数据查询请求,并根据所述数据查询请求确定待查询数据对应的索引表的别名,以及基于具有所述别名的所述索引表从所述数据存储节点中查询得到所述待查询数据;
所述查询引擎接收向外部返回所述待查询数据。
进一步地,所述方法还包括:
所述生产系统向所述数据存储节点发送数据更新请求;
所述数据存储节点根据所述数据更新请求对已有数据进行更新;
所述数据存储节点向所述数据存储节点发送数据更新完成操作;
所述查询引擎根据所述数据更新完成操作确定更新数据对应的索引表的别名,并从具有所述别名的所述索引表中删除所述更新数据的信息。
进一步地,所述方法还包括:
所述查询引擎响应于周期性触发事件,从所述数据存储节点确定被删除数据的信息,并根据所述被删除数据的信息更新已有索引表。
进一步地,所述方法还包括:
所述查询引擎接收索引表更新请求;所述索引表更新请求包括待更新索引表的别名;
所述查询引擎创建新索引表,将待更新索引表对应的海量数据的索引写入所述新索引表中,并删除所述待更新索引表。
进一步地,所述方法包括:
所述查询引擎接收索引表创建请求,确定存储在数据存储节点中的海量数据的产生时间,并根据所述产生时间按照时间周期将所述海量数据进行分组;
所述查询引擎针对每组所述海量数据,建立索引表。
第三方面,本公开实施例中提供了一种数据处理装置,包括:
响应模块,被配置为响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
创建模块,被配置为根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;
存储模块,被配置为将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,上述装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述装置还可以包括通信接口,用于上述装置与其他设备或通信网络通信。
第四方面,本公开实施例中提供了一种数据处理系统,包括:生产系统、一个或多个数据存储节点和查询引擎;其中,
所述生产系统将新增数据发送至一个或多个数据存储节点;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
一个或多个所述数据存储节点存储所述新增数据;
所述查询引擎响应于当前时间周期的周期性触发事件,从所述数据存储节点获取当前时间周期内新增数据的信息,并根据所述新增数据的信息创建对应于所述当前时间周期的新索引表,以及将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
第五方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持数据处理装置执行上述数据处理方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述数据处理装置还可以包括通信接口,用于数据处理装置与其他设备或通信网络通信。
第六方面,本公开实施例提供了一种计算机可读存储介质,用于存储数据处理装置所用的计算机指令,其包含用于执行上述数据处理方法为数据处理装置所涉及的计算机指令。
第七方面,本公开实施例提供了一种计算机程序产品,其包含计算机指令,该计算机指令被处理器执行时用于实现上述任一方面所述方法的步骤。
本公开实施例提供的技术方案可包括以下有益效果:
本公开实施例通过在每个时间周期建立不同的索引表的方式,使得在每个时间周期内新增数据均可以对应不同的索引表,在数据查询或者数据更新的过程中,无需对记录所有索引信息的索引表进行操作,而是根据数据的不同选择记录少量索引信息的索引表进行操作,并且在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的数据处理方法的流程图;
图2示出根据本公开另一实施方式的数据处理方法的流程图;
图3示出根据本公开一实施方式的数据处理方法的应用场景示意图;
图4示出根据本公开一实施方式的数据处理方法的整体流程图;
图5示出根据本公开一实施方式的数据处理装置的结构框图;
图6示出根据本公开一实施方式的数据处理系统的结构框图;
图7是适于用来实现根据本公开一实施方式的数据处理方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
本公开实施例提供的技术方案在联机生产环境中,针对具体应用场景按照时间周期在ES中建立不同的索引表,并将属于该时间周期内的海量数据的信息写入对应的索引表中。通过在每个时间周期建立不同的索引表的方式,使得在每个时间周期内新增数据均可以对应不同的索引表,在数据查询或者数据更新的过程中,无需对记录所有索引信息的索引表进行操作,而是根据数据的不同选择记录少量索引信息的索引表进行操作,并且在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
图1示出根据本公开一实施方式的数据处理方法的流程图,如图1所示,所述数据处理方法包括以下步骤S101-S103:
在步骤S101中,响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
在步骤S102中,根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;
在步骤S103中,将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
上文提及,在联机生产环境中,很多海量数据的多维查询功能是基于ES(ElasticSearch)解决方案实现的。ES是一种基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。同时ES还是一种分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。
已有技术中,针对应用场景在ES建立对应的一张索引表,每天根据数据库中数据的更新而更新该索引表,之后再通过ES为前端生产提供查询接口。但是,该方案中存在一个问题,即由于是海量数据,因此在更新索引表时,会产生大量的I/O操作,进而会导致ES的生产读取性能下降,甚至会造成生产服务不可用。
考虑到上述问题,在该实施方式中,提出一种数据处理方法,该方法针对具体应用场景按照时间周期在ES中建立不同的索引表,并将属于该时间周期内的海量数据的信息写入对应的索引表中。通过在每个时间周期建立不同的索引表的方式,使得在每个时间周期内新增数据均可以对应不同的索引表,在数据查询或者数据更新的过程中,无需对记录所有索引信息的索引表进行操作,而是根据数据的不同选择记录少量索引信息的索引表进行操作,并且在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
在本公开一实施方式中,该数据处理方法可适用于在ES搜索引擎上建立索引表。
其中,海量数据可以存储在一个或多个数据存储节点中,ES查询引擎可以针对一个或多个数据存储节点上存储的数据建立索引表,并且涉及一个应用场景的数据可以存储在多个数据存储节点上,而ES针对该应用场景对外提供一个统一的数据查询接口,使得前端如用户等无需关心后端数据的存储情况。在一些实施例中,海量数据可以是海量文档数据。
由于不同的应用场景下,所需要的数据可能不同。因此可以针对每种不同场景分别建立一个ES。该ES作为一个搜索引擎,可以为前端提供数据查询接口,前端(例如用户)通过该数据查询接口可以搜索到当前场景下的海量数据。为了能够支持前端对当前场景下海量数据的快速搜索操作,可以在ES上建立索引表。该索引表中可以存储海量数据的索引信息,例如文档的名称、ID、存储路径等。可以理解的是,该索引表中的索引信息还可以基于文档中的内容建立,例如可以针对文档中的字段建立索引信息。具体可以根据实际需求而设置,在此不做限制。
在本公开一实施方式中,可以预先设定时间周期,例如可以将时间周期设置为1天,而周期性请求时间可以在每天固定时间被触发,例如可以在每天凌晨某个时间触发该周期性请求时间。
在本公开一实施方式中,ES接收到该周期性请求时间之后,可以针对当前应用场景,从对应的一个或多个数据存储节点获取当前时间周期(例如当天或前一天)新增加的数据。需要说明的是,该一个或多个数据存储节点中,对于数据的更新可以是先将旧数据删除,再存储更新后的数据,因此无论是新增加的数据还是旧数据的更新数据均以新增数据的形式存储至一个或多个存储节点中。
在本公开一实施方式中,新索引表是指针对当前时间周期内新增数据创建的索引表,该索引表中记录了当前时间周期内新增数据的索引信息,对当前时间周期内新增数据的查询操作可以基于该新索引表查询,而其他时间周期内新增数据的查询操作可以基于其他时间周期对应的索引表查询。
在本公开一实施方式中,创建的新索引表可以存储在ES中,并且可以与已有的索引表关联存储。ES在对外提供查询服务时,可以基于数据查询请求从多个索引表中找到相应的索引表之后,基于该索引表从数据存储节点查询数据。
本公开实施例通过在每个时间周期建立不同的索引表的方式,使得在每个时间周期内新增数据均可以对应不同的索引表,在数据查询或者数据更新的过程中,无需对记录所有索引信息的索引表进行操作,而是根据数据的不同选择记录少量索引信息的索引表进行操作,并且在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
在本公开一实施方式中,每个索引表对应一别名,且不同的所述索引表对应于不同的别名。由于ES支持为每个索引表设置别名,因此尽力多个索引表的情况下,可以为不同索引表赋予不同的别名。在对外提供数据查询服务时,ES可以根据数据查询请求,按照别名找到对应的索引表,并根据所找到的索引表中查找所需的数据。因此,通过本公开实施例,外部通过ES访问当前场景下的数据,由已有技术中访问唯一的索引表名,变为了访问该数据对应的alias别名。
在本公开一实施方式中,所述方法可以包括以下步骤:
接收数据查询请求;
根据所述数据查询请求确定待查询数据对应的索引表的别名;
基于具有所述别名的所述索引表从所述数据存储节点中查询得到所述待查询数据;
返回所述待查询数据。
该实施方式中,ES建立索引表之后,将多个索引表关联存储,并且可以对外提供统一的数据查询接口。外部通过该数据查询接口访问ES支持的数据。
ES接收到外部发送的数据查询请求之后,可以数据查询请求中所有查询数据的索引信息,找到对应的索引表的别名,并根据该别名从关联存储的多个索引表定位具有该别名的索引表,进而从具有该避免的索引表中找到待查询数据的存储路径,进而根据该存储路径从一个或多个数据存储节点获取待查询数据,并将得到的待查询数据返回给外部。
在本公开一实施方式中,所述方法可以包括以下步骤:
接收数据更新完成操作;
根据所述数据更新完成操作确定更新数据对应的索引表的别名;
从具有所述别名的所述索引表中删除所述更新数据的信息。
该实施方式中,如上文所述,一个或多个数据存储节点中,对于数据的更新可以是先将旧数据删除,再存储更新后的数据,因此无论是新增加的数据还是旧数据的更新数据均以新增数据的形式存储至一个或多个存储节点中。因此,在数据存储节点中有数据更新操作之后,数据存储节点将更新数据重新存储,而旧的数据被删除,为了保证在ES上的索引信息能够保持正确,可以由数据存储节点向ES发送数据更新完成操作,该数据更新完成操作中可以包括被删除数据的索引信息。ES可以根据被删除数据的索引信息找到对应的索引表,并将该索引信息从对应的索引表中删除。
可以理解的是,更新的数据由于是以新增数据的方式存储,因此对应的时间周期到了之后,该更新的数据与新增数据的索引信息均会被记录在新创建的索引表中,不会出现丢失的情况。
在本公开一实施方式中,所述方法可以包括以下步骤:
响应于周期性触发事件,从所述数据存储节点确定被删除数据的信息;
根据所述被删除数据的信息更新已有索引表。
该实施方式中,还可以周期性的更新索引表。也即在每个时间周期,可以针对被删除数据更新已有索引表。在接收到周期性触发事件之后,在当前时间周期内,确定数据存储节点上的被删除数据,进而将被删除数据的索引信息从对应的索引表中删除。可以理解的是,对已有索引表的更新和当前时间周期对应的新索引表的建立可以基于同一个周期性触发事件在同一时间段执行,也可以基于不同的周期性触发事件分不同的时间段执行。
在本公开一实施方式中,所述方法可以包括以下步骤:
接收索引表更新请求;所述索引表更新请求包括待更新索引表的别名;
创建新索引表,将待更新索引表对应的海量数据的索引写入所述新索引表中;
删除所述待更新索引表。
该可选的实现方式中,还可以基于实际需求对已有的索引表进行统一更新。例如可以在当前应用场景所涉及的数据有所变化,或者某个时间周期内的数据进行了大量更新时,可以触发一索引表更新请求。这种方式下,ES接收到针对某个索引表的更新请求之后,可以根据该索引表的别名定位该索引表,并创建新的索引表,可以将旧索引表对应的时间周期内的数据的索引信息写入新的索引表中,而将旧的索引表删除。通过这种方式,可以在某个时间周期内的数据发生变化时,可以仅针对该时间周期内的数据进行索引表的更新,而不需要针对所有的索引数据进行更新,这种方式不会在更新索引表的时间段由于占用过多资源,而导致读取性能的下降。
在本公开一实施方式中,所述方法可以包括以下步骤:
接收索引表创建请求;
确定存储在数据存储节点中的海量数据的产生时间,并根据所述产生时间按照时间周期将所述海量数据进行分组;
针对每组所述海量数据,建立索引表。
该实施方式中,针对当前应用场景,初始建立索引信息时,可以针对该应用场景所涉及的一个或多个数据存储节点中的数据,建立多个索引表,且每个索引表对应不同的时间周期。该时间周期可以对应于数据的产生时间。数据的产生时间可以理解为存储至数据存储节点上的时间,或者在数据存储节点中的最后更新时间。例如,当前应用场景为对当月交易数据的利润统计场景,在该场景下,可以针对当月产生的交易数据建立索引表,为了能够使得外部访问和/或更新速度方便,可以针对已经产生的数据建立多个索引表,例如可以针对每天产生的数据建立一索引表。
图2示出根据本公开另一实施方式的数据处理方法的流程图,如图2所示,所述数据处理方法包括以下步骤S201-S203:
在步骤S201中,生产系统将新增数据发送至一个或多个数据存储节点;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
在步骤S202中,一个或多个所述数据存储节点存储所述新增数据;
在步骤S203中,查询引擎响应于当前时间周期的周期性触发事件,从所述数据存储节点获取当前时间周期内新增数据的信息,并根据所述新增数据的信息创建对应于所述当前时间周期的新索引表,以及将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
上文提及,在联机生产环境中,很多海量数据的多维查询功能是基于ES(ElasticSearch)解决方案实现的。ES是一种基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。同时ES还是一种分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。
已有技术中,针对应用场景在ES建立对应的一张索引表,每天根据数据库中数据的更新而更新该索引表,之后再通过ES为前端生产提供查询接口。但是,该方案中存在一个问题,即由于是海量数据,因此在更新索引表时,会产生大量的I/O操作,进而会导致ES的生产读取性能下降,甚至会造成生产服务不可用。
考虑到上述问题,在该实施方式中,提出一种数据处理方法,该方法针对具体应用场景按照时间周期在ES中建立不同的索引表,并将属于该时间周期内的海量数据的信息写入对应的索引表中。通过在每个时间周期建立不同的索引表的方式,使得在每个时间周期内新增数据均可以对应不同的索引表,在数据查询或者数据更新的过程中,无需对记录所有索引信息的索引表进行操作,而是根据数据的不同选择记录少量索引信息的索引表进行操作,并且在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
在本公开一实施方式中,所述数据处理方法可适用于通过在ES上建立的索引表进行数据访问的系统,该系统包括产生数据的生产系统、存储数据的一个或多个数据存储节点以及对外提供当前应用场景中海量数据的ES搜索引擎。
其中,生成系统可以是产生海量数据的平台,其中产生的数据被发送至一个或多个数据存储节点进行存储,生产系统可以包括多个。ES查询引擎可以针对一个或多个数据存储节点上存储的数据建立索引表,并且涉及一个应用场景的数据可以存储在多个数据存储节点上,而ES针对该应用场景对外提供一个统一的数据查询接口,使得前端如用户等无需关心后端数据的存储情况。在一些实施例中,海量数据可以是海量文档数据。
由于不同的应用场景下,所需要的数据可能不同。因此可以针对每种不同应用可以场景分别建立不同的ES。该ES作为一个搜索引擎,可以为前端提供数据查询接口,前端(例如用户)通过该数据查询接口可以搜索到当前场景下的海量数据。为了能够支持前端对当前场景下海量数据的快速搜索操作,可以在ES上建立索引表。该索引表中可以存储海量数据的索引信息,例如文档的名称、ID、存储路径等。可以理解的是,该索引表中的索引信息还可以基于文档中的内容建立,例如可以针对文档中的字段建立索引信息。具体可以根据实际需求而设置,在此不做限制。
在本公开一实施方式中,可以预先设定时间周期,例如可以将时间周期设置为1天,而周期性请求时间可以在每天固定时间被触发,例如可以在每天凌晨某个时间触发该周期性请求时间。
在本公开一实施方式中,ES接收到该周期性请求时间之后,可以针对当前应用场景,从对应的一个或多个数据存储节点获取当前时间周期(例如当天或前一天)新增加的数据。需要说明的是,该一个或多个数据存储节点中,对于数据的更新可以是先将旧数据删除,再存储更新后的数据,因此无论是新增加的数据还是旧数据的更新数据均以新增数据的形式存储至一个或多个存储节点中。
在本公开一实施方式中,新索引表是指针对当前时间周期内新增数据创建的索引表,该索引表中记录了当前时间周期内新增数据的索引信息,对当前时间周期内新增数据的查询操作可以基于该新索引表查询,而其他时间周期内新增数据的查询操作可以基于其他时间周期对应的索引表查询。
在本公开一实施方式中,创建的新索引表可以存储在ES中,并且可以与已有的索引表关联存储。ES在对外提供查询服务时,可以基于数据查询请求从多个索引表中找到相应的索引表之后,基于该索引表从数据存储节点查询数据。
本公开实施例通过在每个时间周期建立不同的索引表的方式,使得在每个时间周期内新增数据均可以对应不同的索引表,在数据查询或者数据更新的过程中,无需对记录所有索引信息的索引表进行操作,而是根据数据的不同选择记录少量索引信息的索引表进行操作,并且在对索引表进行更新的过程中,只需进行局部更新,而无需针对所有索引数据进行更新,能够节省资源,保证在联机生产环境下保持ES的读取性能不下降。
在本公开一实施方式中,每个索引表对应一别名,且不同的所述索引表对应于不同的别名。
在本公开一实施方式中,所述方法还进一步包括以下步骤:
所述查询引擎接收外部的数据查询请求,并根据所述数据查询请求确定待查询数据对应的索引表的别名,以及基于具有所述别名的所述索引表从所述数据存储节点中查询得到所述待查询数据;
所述查询引擎接收向外部返回所述待查询数据。
查询引擎针对同一个应用场景周期性的建立多个索引表,而对外只提供统一的数据查询接口。外部例如用户通过该数据查询接口可以请求访问任一索引表中记录的数据。
在本公开一实施方式中,所述方法还进一步包括以下步骤:
所述生产系统向所述数据存储节点发送数据更新请求;
所述数据存储节点根据所述数据更新请求对已有数据进行更新;
所述数据存储节点向所述数据存储节点发送数据更新完成操作;
所述查询引擎根据所述数据更新完成操作确定更新数据对应的索引表的别名,并从具有所述别名的所述索引表中删除所述更新数据的信息。
该实施方式中,生成系统中如果需要对已经存储在数据存储节点中的数据进行更新,则可以向数据存储节点发送数据更新请求,数据存储节点可以根据数据更新请求将对应的数据进行更新,并且在更新完成之后,可以向查询引擎ES发送数据更新完成操作,查询引擎接收到该数据更新完成操作之后,可以被更新的数据的索引信息对应的索引表的别名,进而根据该别名从已有索引表中找到对应的索引表,将被更新的数据的索引信息从该表中删除。由于更新后的数据以新增数据的方式出现在数据存储节点中,在产生周期性请求时间之后,查询引擎ES会将该更新后的数据的索引信息写入新的索引表中。
在本公开一实施方式中,所述方法还进一步包括以下步骤:
所述查询引擎响应于周期性触发事件,从所述数据存储节点确定被删除数据的信息,并根据所述被删除数据的信息更新已有索引表。
在本公开一实施方式中,所述方法还进一步包括以下步骤:
所述查询引擎接收索引表更新请求;所述索引表更新请求包括待更新索引表的别名;
所述查询引擎创建新索引表,将待更新索引表对应的海量数据的索引写入所述新索引表中,并删除所述待更新索引表。
在本公开一实施方式中,所述方法还进一步包括以下步骤:
所述查询引擎接收索引表创建请求,确定存储在数据存储节点中的海量数据的产生时间,并根据所述产生时间按照时间周期将所述海量数据进行分组;
所述查询引擎针对每组所述海量数据,建立索引表。
图2所示及相关实施方式中涉及的技术术语和技术特征与图1所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图2所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1所示及相关实施方式的解释的说明,此处不再赘述。
图3示出根据本公开一实施方式的数据处理方法的应用场景示意图。图4示出根据本公开一实施方式的数据处理方法的整体流程图。如图3和4所示,在该应用场景中,生产系统1-n不断产生数据,并将所产生的数据存储至一个或多个数据存储节点中。通过ES查询引擎提供的Resful接口针对当前应用场景所涉及的数据建立索引表,并通过ES查询引擎提供的alias接口为索引表赋予索引表名。所建立的索引表可以关联存储。在每天空闲时段,例如凌晨2点左右,ES查询引擎可以从数据存储节点获取系统当天所产生的新数据,进而针对新数据建立新的索引表,并将新数据的索引信息写入新的索引表中,新的索引表与已有索引表关联存储。
在数据存储节点中发生局部数据更新时,可以根据发生数据更新的数据,创建新的索引表,并将更新数据的索引信息写入新的索引表,而重新定义该新的索引表的别名,之后再将原索引表删除。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图5示出根据本公开一实施方式的数据处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,所述数据处理装置包括:
响应模块501,被配置为响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
创建模块502,被配置为根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;
存储模块503,被配置为将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
在本公开一实施方式中,该数据处理装置可适用于在ES搜索引擎上建立索引表。
图6示出根据本公开一实施方式的数据处理系统的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述数据处理系统包括:生产系统601、一个或多个数据存储节点602和查询引擎603;其中,
所述生产系统601将新增数据发送至一个或多个数据存储节点602;所述一个或多个数据存储节点602存储有对应于当前应用场景的海量数据;
一个或多个所述数据存储节点602存储所述新增数据;
所述查询引擎603响应于当前时间周期的周期性触发事件,从所述数据存储节点获取当前时间周期内新增数据的信息,并根据所述新增数据的信息创建对应于所述当前时间周期的新索引表,以及将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
在本公开一实施方式中,所述数据处理系统可适用于通过在ES上建立的索引表进行数据访问的系统,该系统包括产生数据的生产系统、存储数据的一个或多个数据存储节点以及对外提供当前应用场景中海量数据的ES搜索引擎。
上述装置实施例所涉及的技术特征及其对应的解释和说明与上文所描述的方法实施例所涉及的技术特征及其对应的解释和说明相同、相应或相似,对于上述装置实施例所涉及的技术特征及其对应的解释和说明可参考上述方法实施例所涉及的技术特征及其对应的解释和说明,本公开在此不再赘述。
本公开实施例还公开了一种电子设备,所述电子设备包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方法步骤。
图7是适于用来实现根据本公开一实施方式的数据处理方法的计算机系统的结构示意图。
如图7所示,计算机系统700包括处理单元701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行上述实施方式中的各种处理。在RAM703中,还存储有计算机系统700操作所需的各种程序和数据。处理单元701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。其中,所述处理单元701可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
本公开实施例还公开了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一方法步骤。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种数据处理方法,包括:
响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;
将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
2.根据权利要求1所述的方法,其中,每个索引表对应一别名,且不同的所述索引表对应于不同的别名。
3.根据权利要求2所述的方法,所述方法还包括:
接收数据查询请求;
根据所述数据查询请求确定待查询数据对应的索引表的别名;
基于具有所述别名的所述索引表从所述数据存储节点中查询得到所述待查询数据;
返回所述待查询数据。
4.根据权利要求1-3任一项所述的方法,所述方法还包括:
接收数据更新完成操作;
根据所述数据更新完成操作确定更新数据对应的索引表的别名;
从具有所述别名的所述索引表中删除所述更新数据的信息。
5.一种数据处理方法,包括:
生产系统将新增数据发送至一个或多个数据存储节点;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
一个或多个所述数据存储节点存储所述新增数据;
查询引擎响应于当前时间周期的周期性触发事件,从所述数据存储节点获取当前时间周期内新增数据的信息,并根据所述新增数据的信息创建对应于所述当前时间周期的新索引表,以及将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
6.一种数据处理装置,包括:
响应模块,被配置为响应于周期性触发事件,从一个或多个数据存储节点中获取当前时间周期内新增数据的信息;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
创建模块,被配置为根据所述新增数据的信息创建对应于所述当前时间周期的新索引表;
存储模块,被配置为将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
7.一种数据处理系统,包括:生产系统、一个或多个数据存储节点和查询引擎;其中,
所述生产系统将新增数据发送至一个或多个数据存储节点;所述一个或多个数据存储节点存储有对应于当前应用场景的海量数据;
一个或多个所述数据存储节点存储所述新增数据;
所述查询引擎响应于当前时间周期的周期性触发事件,从所述数据存储节点获取当前时间周期内新增数据的信息,并根据所述新增数据的信息创建对应于所述当前时间周期的新索引表,以及将所述新索引表以及已有索引表关联存储,以便通过关联存储的所述新索引表以及所述已有索引表对外提供数据查询服务。
8.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-14任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1-5任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011597446.9A CN112597191B (zh) | 2020-12-29 | 2020-12-29 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011597446.9A CN112597191B (zh) | 2020-12-29 | 2020-12-29 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597191A true CN112597191A (zh) | 2021-04-02 |
CN112597191B CN112597191B (zh) | 2024-06-11 |
Family
ID=75203468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011597446.9A Active CN112597191B (zh) | 2020-12-29 | 2020-12-29 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597191B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216962A (zh) * | 2014-08-22 | 2014-12-17 | 南京邮电大学 | 一种基于HBase的海量网管数据索引设计方法 |
CN104598550A (zh) * | 2014-12-31 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种网络视频索引的更新方法和装置 |
CN107506464A (zh) * | 2017-08-30 | 2017-12-22 | 武汉烽火众智数字技术有限责任公司 | 一种基于ES实现HBase二级索引的方法 |
CN109800222A (zh) * | 2018-12-11 | 2019-05-24 | 中国科学院信息工程研究所 | 一种HBase二级索引自适应优化方法和系统 |
CN111913959A (zh) * | 2020-07-17 | 2020-11-10 | 浙江大华技术股份有限公司 | 一种数据查询方法、装置、终端和存储介质 |
CN112100175A (zh) * | 2020-08-28 | 2020-12-18 | 拉卡拉支付股份有限公司 | 分区数据定向传递方法及装置 |
-
2020
- 2020-12-29 CN CN202011597446.9A patent/CN112597191B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216962A (zh) * | 2014-08-22 | 2014-12-17 | 南京邮电大学 | 一种基于HBase的海量网管数据索引设计方法 |
CN104598550A (zh) * | 2014-12-31 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种网络视频索引的更新方法和装置 |
CN107506464A (zh) * | 2017-08-30 | 2017-12-22 | 武汉烽火众智数字技术有限责任公司 | 一种基于ES实现HBase二级索引的方法 |
CN109800222A (zh) * | 2018-12-11 | 2019-05-24 | 中国科学院信息工程研究所 | 一种HBase二级索引自适应优化方法和系统 |
CN111913959A (zh) * | 2020-07-17 | 2020-11-10 | 浙江大华技术股份有限公司 | 一种数据查询方法、装置、终端和存储介质 |
CN112100175A (zh) * | 2020-08-28 | 2020-12-18 | 拉卡拉支付股份有限公司 | 分区数据定向传递方法及装置 |
Non-Patent Citations (1)
Title |
---|
王伟;魏乐;刘文清;舒红平;: "基于ElasticSearch的分布式全文搜索系统", 电子科技, no. 08 * |
Also Published As
Publication number | Publication date |
---|---|
CN112597191B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228817B (zh) | 数据处理方法、装置和系统 | |
US8200624B2 (en) | Membership tracking and data eviction in mobile middleware scenarios | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
US20130117234A1 (en) | Database Log Parallelization | |
US20120158795A1 (en) | Entity triggers for materialized view maintenance | |
CN112306993B (zh) | 基于Redis的数据读取方法、装置、设备及可读存储介质 | |
CN106933836B (zh) | 一种基于分表的数据存储方法和系统 | |
EP2767912A2 (en) | In-memory real-time synchronized database system and method | |
US11449550B2 (en) | Ad-hoc graph definition | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
CN112434015A (zh) | 数据存储的方法、装置、电子设备及介质 | |
EP2662783A1 (en) | Data archiving approach leveraging database layer functionality | |
CN112527900A (zh) | 一种数据库读多副本一致性的方法、装置、设备及介质 | |
CN113761052A (zh) | 数据库同步方法和装置 | |
CN112597191B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN110928895A (zh) | 一种数据查询、数据表建立方法、装置及设备 | |
CN108595488B (zh) | 数据迁移方法和装置 | |
CN113761053A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
US10353920B2 (en) | Efficient mirror data re-sync | |
CN115905402B (zh) | 处理事务日志的方法及装置 | |
CN111177162A (zh) | 一种数据同步方法及装置 | |
CN116302206B (zh) | 一种基于MQ的presto数据源热加载方法 | |
CN108509450B (zh) | 用于处理数据库高并发更新的方法和装置 | |
CN117909344A (zh) | 数据更新方法、装置、非易失性存储介质及计算机设备 | |
CN108322319B (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 |