CN111767284A - 数据处理方法、装置、存储介质和服务器 - Google Patents
数据处理方法、装置、存储介质和服务器 Download PDFInfo
- Publication number
- CN111767284A CN111767284A CN202010577960.XA CN202010577960A CN111767284A CN 111767284 A CN111767284 A CN 111767284A CN 202010577960 A CN202010577960 A CN 202010577960A CN 111767284 A CN111767284 A CN 111767284A
- Authority
- CN
- China
- Prior art keywords
- index
- data
- switching
- full
- threshold
- 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 claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 9
- 239000012634 fragment Substances 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003203 everyday effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000036632 reaction speed Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 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/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法、装置、存储介质和服务器,其中,方法包括:数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务。创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据;获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据;将所述第二索引切换为所述第一索引。采用本申请实施例的方案,可向第二索引及时写入丢失的和更新的增量数据,进而可以提高搜索系统中数据的实时性。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、存储介质和服务器。
背景技术
数据平台中的搜索系统可对接于内容数据接入平台,每天都会从合作方接入大量数据,搜索系统可以在较短的时间内对这些数据进行存储、搜索和分析。但目前,搜索系统大多存在数据延迟和滞后的问题。
发明内容
为了解决上述问题,本申请实施例提供了一种数据处理方法、装置、存储介质和服务器,可向第二索引及时写入丢失的和更新的增量数据,进而可以提高搜索系统中数据的实时性。本技术方案如下:
第一方面,本申请实施例提供了一种数据处理方法,所述方法应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,包括以下步骤:
创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据;
获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据;
将所述第二索引切换为所述第一索引。
第二方面,本申请实施例提供了一种数据处理装置,所述装置应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,所述装置包括:
索引创建单元,用于创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据;
增量获取单元,用于获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据;
索引切换单元,用于将所述第二索引切换为所述第一索引。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项方法的步骤。
第四方面,本申请实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项方法的步骤。
在本申请实施例中,在向创建的第二索引中写入当前时刻对应的物品类别的全量数据之后,还需向第二索引中写入第一增量数据和第二增量数据。其中,第一增量数据为当前时刻到全量数据的写入结束时刻之间的数据。第二增量数据为写入结束时刻之后的数据。在向第二索引中追加第一增量数据和第二增量数据之后,才将第二索引切换为第一索引。即先向第二索引中追加入第一增量数据和第二增量数据,再将第二索引切换为第一索引。因此,可向第二索引及时写入丢失的和更新的增量数据,进而可以提高搜索系统中数据的实时性。
附图说明
图1为本申请实施例提供的一种索引文件生成方式的架构示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的另一种数据处理方法的流程示意图;
图4为本申请实施例提供的另一种索引文件生成方式的架构示意图;
图5为本申请实施例提供的一种数据处理装置的结构示意图;
图6为本申请实施例所涉及的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本申请进行进一步的介绍。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
搜索系统可以在极短的时间内存储、搜索和分析大量的数据,有着广泛的应用,如搜索系统可以对接于内容数据接入平台。内容数据接入平台每天都会从提供各类数据源的合作方接入大量数据,而其中大部分物品类别的数据都会存储在搜索系统中。合作方可为各类企事业单位,也可为政府机关等。合作方可以网站、论坛、数据库及外部应用等形式将数据提供给搜索系统。内容数据接入平台所提供的数据会不断更新,搜索系统会定时新建一个搜索系统索引,将数据存放在不同的索引中,并通知在线服务端当前最新的索引,服务端从最新的索引中读取数据,并向用户提供数据查询服务。
搜索系统中的数据更新分为增量更新和全量更新。增量更新是为了能实时地向服务端提供最新的数据,而全量更新是为了淘汰旧版本的数据。在内容数据接入平台中数据往往是有时间版本的,假如昨天合作方提供了某条数据,但今天该合作方没有提供,那么内容数据接入平台会认为这条数据是被下线的数据,不应该再提供给服务端及用户,因此,需要通过全量更新模块生成全量数据的索引文件来淘汰被下线的数据。增量更新模块除了将数据实时写入搜索系统中,还同步一份数据到数据库,如mysql,并记录数据版本。全量更新模块从数据库筛选出最新的时间版本数据,定期更新到新的搜索系统索引,再通知增量更新模块向该新的搜索系统索引中实时更新数据。
图1为本申请实施例提供的一种索引文件生成方式的架构示意图。如图1所示,假设全量数据的索引文件的生成周期是1天。全量更新模块于每日上午9点生成全量数据的索引文件。昨天是2020年4月6号,数据端从合作方接入数据,并将数据存放在es_index_20200406中,今天是2020年4月7号,数据端又从合作方接入数据,并将数据存放在es_index_20200407中,数据类型假设是电影票。在4月7号9:00,全量更新模块创建新的索引es_index_20200407,并从数据库中获取最新版本的全量电影票数据,将数据写入到es_index_20200407,并在10:00数据更新完毕。因为内容数据接入平台有大量的物品类别、多家合作方的数据,进行全量数据的更新往往需要较长时间。全量更新模块通知增量更新模块当前最新的索引文件为es_index_20200407。增量更新模块将搜索系统索引从es_index_20200406指向新的索引es_index_20200407,并向es_index_20200407实时更新数据。此时在10:00,es_index_20200407中的最新数据是9:00前的,在刚切换索引的一段时间内,该时间段可能是几分钟、半小时或者一小时,用户将无法获取到9:00-10:00这个时间段的最新数据,例如在这个时间段有一个新的电影上架了,合作方也提供了数据,但就是因为这个全量更新的索引切换时间差,导致用户无法正常看到这部新的电影的上线。虽然在一段时间之后,增量更新模块可以将最新数据追上来,但用户还是可能感知到数据的延迟和滞后。另外,以后如果接入实时更新频率大、涉及金融安全和强用户体验的物品类别,例如股票、火车票、机票等,由于数据的延迟和滞后可能会导致严重的后果,降低整个产品的用户体验、安全性和粘度。
基于此,本申请实施例提供一种数据处理方法可以较好地解决上述问题。参见图2,图2为本申请实施例提供的一种数据处理方法的流程示意图。所述方法应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,所述方法包括:
S201、创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据。
物品类别为物品的分类类别,可根据数据来源的合作方和数据属性划分物品类别。物品类别可包括:电影、电视剧、综艺、热点人物、汽车及手机等。系统针对每个物品类别分别创建与其对应的第一索引和第二索引。
系统将不同物品类别的数据分别写入对应的第二索引和第一索引,系统搜索数据时,仅需在对应的搜索文件中搜索即可,相比将所有种类的数据写入相同的索引文件的方式,可提升系统响应速度。此外,生成或备份索引文件时,可利用多线程同时备份多个物品类别的索引文件,可加快生成或备份索引文件的速度。
第一索引作为在线索引。数据平台通过读取第一索引向外部应用提供数据查询服务。第二索引作为备用索引。系统在预定时间向第二索引写入对应物品类别的全量数据。预定时间可以根据具体需求进行设定,如上午9:00、下午15:00、晚上23:00等。系统可以根据设置时间段向第二索引写入对应物品类别的全量数据,如每隔1天进行一次全量数据写入,每隔1星期进行一次全量数据写入。
可通过多种方式向第二索引写入当前时刻对应的物品类别的全量数据。如可直接读取数据库获取物品类别的全量数据,并将全量数据写入第二索引中。在mysql数据库中,可通过mysqldump命令,将全量数据写入第二索引文件中。也可直接从合作方网站上抓取全量数据,再将全量数据写入第二索引文件中。本申请实施例对于如何向第二索引写入全量数据的方式不做限定。
可选地,S201之前,还包括:
删除第三索引,所述第三索引为与所述第一索引属于同一物品类别的历史索引。
S201包括:
创建与所述第一索引属于同一物品类别的第二索引,从备用数据库中获取当前时刻对应的所述物品类别的全量数据;
向所述第二索引写入所述全量数据。
搜索系统往往有流程复杂、集群不便维护的问题。搜索系统每隔固定时间段,都会由数据端创建一个新的索引文件。时间一长,搜索系统中就创建了大量的索引文件,加重了搜索系统的负荷,从而需要不断地扩充搜索系统集群节点和定期清理过期搜索系统索引,加大了搜索系统集群的维护成本和数据接入的复杂度。
本申请实施例中,第三索引为系统中存储的原有的备用索引。在生成第二索引之前,先删除第三索引,使系统中仅存储有第一索引和第二索引,可减少由于索引文件过大或定期清理过期索引文件而造成的系统运维负担。
S202、获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据。
由于大多搜索系统中有大量的物品类别、多家合作方的数据,进行全量数据的写入需要较长时间。在进行全量数据的写入时间段内,可能会有第一增量数据接入系统,第一增量数据可能无法完整地写入到第二索引中,因此需要将第一增量数据追加入第二索引中。而将第一增量数据追加入第二索引的时间段内,可能会有第二增量数据接入系统中。因此,为确保第二索引中数据的时效性,需要向第二索引中轮询写入第一增量数据和第二增量数据。
S203、将所述第二索引切换为所述第一索引。
在向第二索引中轮询写入第一增量数据和第二增量数据之后,第二索引中存储了时效性较高的索引数据。此时,将第二索引切换为第一索引,第一索引用作为在线索引。数据平台通过读取第一索引向外部应用提供数据查询服务。原有的第一索引可切换为第二索引,第二索引作为备用索引存储在系统中。
可选地,S203包括:
将指向所述第一索引的索引别名切换为指向所述第二索引。
可为不同的物品类别分别设置不同的索引别名。索引别名所指向的索引即为第一索引,第一索引用于对外部应用提供搜索服务。本申请实施例的方法通过索引别名实现数据端和服务端的解耦,降低系统复杂性,加强搜索系统集群的可维护性。
在搜索系统中每个分片(shard)每隔一定时间,如1秒或1分钟等都会更新一次,每次更新都会生成一个新的索引片段(segment),从而使索引片段的数量剧增,所以索引片段过多是一个大问题。每一个索引片段都会占用文件句柄,内存、cpu资源,更重要的是每一个搜索请求都必须访问每一个索引片段,这就意味着存在的索引片段越多,搜索请求就会变的更慢。虽然搜索系统有默认的索引片段合并进程策略,但内容接入平台的数据大,同一个搜索系统索引可能会接入不同家合作方的数据(例如音乐物品类别会接入搜狗音乐、酷我音乐、网易云音乐、QQ音乐等多家合作方),默认的搜索系统合并进程策略已经不能满足产品性能的需求,数据量大到一定程度,会严重影响服务端查询搜索系统的性能。
基于此,本申请实施例的方法中S201之后,还包括:
获取从所述当前时刻到所述全量数据的写入结束时刻之间所述第二索引中生成的全部索引片段;
将所述全部索引片段合并成指定数量的索引片段。
第二索引中常常会存在大量的索引片段。过多的索引片段会减缓系统的反应速度。在向第二索引中追加入第一增量数据和第二增量数据之前,向将第二索引中的索引片段合并成指定数量的索引片段,可提升系统的反应速度,提高系统的查询性能。
本申请实施例的方法,在向创建的第二索引中写入当前时刻对应的物品类别的全量数据之后,还需向第二索引中写入第一增量数据和第二增量数据。其中,第一增量数据为当前时刻到全量数据的写入结束时刻之间的数据。第二增量数据为写入结束时刻之后的数据。并且在向第二索引中追加第一增量数据和第二增量数据之后,才将第二索引切换为第一索引。本申请实施例的技术方案,先向第二索引中追加入第一增量数据和第二增量数据,再将第二索引切换为第一索引。因此,本申请实施例的方法可至少部分解决搜索系统中的数据延迟或滞后问题。
参见图3,图3为本申请实施例提供的一种数据处理方法的流程示意图。所述方法应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,所述方法包括:
S301、创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据。
S302、获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据。
S303、获取所述第一索引的第一数据量。
第一数量为第一索引中存储的全部数据的数量。
S304、获取所述第二索引的第二数据量。
第二数量为第二索引中全量数据以及写入的增量数据的数量总和。
S305、基于所述第一数据量及所述第二数据量,将所述第二索引切换为所述第一索引。
可选地,S305包括:
获取所述第一数据量与所述第二数据量之间的差值;
当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引;或,
当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引。
第一阈值和第二阈值可根据实际需求,如不同物品类别的数据量、更新频率、时效性的要求等进行设定。例如,物品类别为微博的数据量较大,数据滞后一点也没太大影响,切换条件可以设得松点,可以将第一阈值设置为100条,将第二阈值设置为0.01%。物品类别为火车票的数据量较小,数据滞后影响较大,切换条件应该设得严格一点,可以将第一阈值设置为5条,将第二阈值设置为0.001%。
可选地,所述当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引,包括:
当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引,所述第一阈值为预设值;或,
获取所述物品类别对应的第一阈值;
当所述差值的绝对值小于或者等于所述第一阈值时,将所述第二索引切换为所述第一索引。
用户可根据不同物品类别的时效性需要,为不同物品类别设备不同的第一阈值。进行索引文件切换时,先要获取索引文件对应的物品类别对应的第一阈值,若第一索引和第二索引之间的差值的绝对值小于或等于第一阈值,说明第二索引中数据的时效性已符合预先设定的需要将第二索引切换为第一索引。
可选地,所述当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引,包括:
当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引,所述第二阈值为预设值;或,
获取所述物品类别对应的第二阈值;
当所述差值与所述第一数据量的比值小于或者等于所述第二阈值时,将所述第二索引切换为所述第一索引。
用户可根据不同物品类别的时效性需要,为不同物品类别设备不同的第二阈值。进行索引文件切换时,先要获取索引文件对应的物品类别对应的第二阈值,若第一索引和第二索引之间的差值与第一数据量的比值小于或者等于第二阈值时,说明第二索引中数据的时效性已符合预先设定的需要将第二索引切换为第一索引。
本申请实施例的方法,通过第一阈值或第二阈值,设置了进行索引文件切换的条件。在符合索引文件切换的条件下,才进行索引文件的切换,以保证检索系统的数据的时效性。此外,根据不同物品类别的需求设置不同的第一阈值或第二阈值,实现了对不同物品类别的索引文件不同的追新效果。
为使本申请实施例的方法更加便于理解,下面讲解一个具体的实施过程。图4为本申请实施例提供的另一种索引文件生成方式的架构示意图。如图4所示,首先数据端摒弃了每天创建一个搜索系统索引的旧方案,现在的方案是:每个物品类别只维护两个索引,一个在线索引(es_movie_index_1)和一个备用索引(es_movie_index_2),再使用索引别名(es_movie_index)指向在线索引(es_movie_index_1),增量更新模块和服务端只需要知道该物品类别的索引别名,而索引别名是固定,无需每天都切换到新的索引名,也无需区分在线索引和备用索引,索引别名会实时地指向在线索引。同样假设昨天是2020年4月6号,今天是2020年4月7号,昨天的在线索引是es_movie_index_1,备用索引是es_movie_index_2,实时更新模块会向es_movie_index(指向es_movie_index_1)实时地写入数据,服务端会实时从es_movie_index读取数据。在4月7号9:00,全量更新模块首先删除旧的备用索引es_movie_index_2(存着4月5号的数据),再创建索引结构相同的新的备用索引,再从数据库中获取最新版本的全量电影票数据,将数据备份到备用索引es_movie_index_2。这里通过索引别名解决了集群索引过多的问题。
向搜索系统的备用索引发送优化命令(optimize)强制合并索引片段,该命令可以使用索引片段个数参数强制把一个分片合并成指定数量的索引片段,一个索引它的索引片段数量越少,它的搜索性能就越高。可通过如下命令:POST/es_movie_index_2/_optimize?max_num_segments=1,将系统中的多个索引片段优化合并成一个索引片段。本申请实施例通过索引片段强制合并解决了搜索系统查询性能降低的问题。
如图4所示,在4月7号10:00,全量模块完成了将最新版本的数据全量备份到备用索引,这个时候备用索引和在线索引存在着一个小时的数据差。此时新调起一个增量更新模块任务往备用索引(es_movie_index_2)中追新数据,在内容接入平台中可以使用Flink来实现分布式的数据实时更新,调起一个新的flink job,通过不断轮询在线索引和备用索引的数据量,直到二者之间的条数差或者条数差占在线索引数据总条数的某个比例小于某个预先设定值时,才将索引别名(es_movie_index)指向备用索引,本申请实施例中备用索引为es_movie_index_2,此时原先的备用索引就变成了在线索引,原先的在线索引就变成了备用索引。
另外,每个物品类别的轮询和切换过程可通过多线程并发进行,只要某物品类别符合切换条件就执行切换,无须等到所有物品类别的索引都符合条件再切换。
采用索引别名交替指向在线索引和备用索引,而外部引用的索引始终是固定的es_movie_index。通过实时追加新数据的步骤,服务端及用户始终能获取到较新的数据。本申请实施例通过在备用索引的实时追加新数据的不走,解决了搜索系统中数据延迟、滞后的问题。
需要说明的是,索引文件的切换条件是在线索引和备用索引之间的条数差或者条数差占在线索引数据总条数的某个比例小于某个预先设定值,而不是在线索引和备用索引的数据量完全相等。这是因为索引文件中记录的数量较大、在实时更新的情况下,线索引和备用索引的数据量很难完全相等,两者可能永远相差更新的最小批量的数据。
此外,不同物品类别的数据量和更新频率都不同,他们的切换条件也应该是根据物品类别的特性进行配置。可以根据不同物品类别的需求实现不同的追加新数据效果。
elastic search简称es是一种开源的检索系统。采用本申请实施例的方案可以使es的集群负荷降低30%,维护频率降低25%,故障率降低了15%。针对500W数据量的物品类别,系统查询响应时间缩短了40%。对于其他数据量的物品类别数据,es查询响应时间整体也有一定的缩短。服务端及用户获取数据时间滞后从1小时以上,缩短为10s以内。用户通过本申请实施例的方法可较实时获取到数据内容,提升用户体验。
本申请实施例的方法使用索引别名实现数据端和服务端的解耦,降低系统复杂性,加强搜索系统集群的可维护性。使用索引片段强制合并,使搜索可见的索引片段的数量为指定数量,提升搜索系统查询响应性能。使用搜索系统索引实时追新,缩短数据服务的延迟和滞后,提升用户体验。针对不同物品类别灵活设置不同的切换条件,实现可配置化,满足不同物品类别的效率和安全的需求。
此外,执行由外部发送的优化命令所需的资源,通常是没有限制资源的,也就是系统有多少IO资源就会使用多少IO资源,这样可能导致某一段时间内搜索速度较低,所以如果计划要优化一个较大的索引,可将优化索引文件的任务给移动到一个或多个指定的节点机器上,以确保合并操作不会影响其他的业务或者检索系统本身的性能。
请参见图5,图5是本申请实施例提供的一种数据处理装置结构示意图。如图5所示,所述装置应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,所述装置包括:
索引创建单元501,用于创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据;
增量获取单元502,用于获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据;
索引切换单元503,用于将所述第二索引切换为所述第一索引。
可选地,所述装置,还包括:
索引删除单元504,用于删除第三索引,所述第三索引为与所述第一索引属于同一物品类别的历史索引;
所述索引创建单元501具体用于:创建与所述第一索引属于同一物品类别的第二索引,从备用数据库中获取当前时刻对应的所述物品类别的全量数据;
向所述第二索引写入所述全量数据。
可选地,所述索引切换单元503具体用于:
获取所述第一索引的第一数据量;
获取所述第二索引的第二数据量;
基于所述第一数据量及所述第二数据量,将所述第二索引切换为所述第一索引。
可选地,所述索引切换单元503具体用于:
获取所述第一数据量与所述第二数据量之间的差值;
当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引;或,
当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引。
可选地,所述索引切换单元503具体用于:
当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引,所述第一阈值为预设值;或,
获取所述物品类别对应的第一阈值;
当所述差值的绝对值小于或者等于所述第一阈值时,将所述第二索引切换为所述第一索引。
可选地,所述索引切换单元503具体用于:
当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引,所述第二阈值为预设值;或,
获取所述物品类别对应的第二阈值;
当所述差值与所述第一数据量的比值小于或者等于所述第二阈值时,将所述第二索引切换为所述第一索引。
可选地,所述装置还包括:
片段合并单元504,用于获取从所述当前时刻到所述全量数据的写入结束时刻之间所述第二索引中生成的全部索引片段;
将所述全部索引片段合并成指定数量的索引片段。
可选地,所述索引切换单元503具体用于:
将指向所述第一索引的索引别名切换为指向所述第二索引。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)、IC(Integrated Circuit,集成电路)等。
本申请实施例的各处理单元和/或模块,可通过实现本申请实施例所述的功能的模拟电路而实现,也可以通过执行本申请实施例所述的功能的软件而实现。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述数据处理方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
参见图6,其示出了本申请实施例所涉及的一种服务器的结构示意图,该服务器可以用于实施上述实施例中提供的数据处理方法。具体来讲:
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1020还可以包括存储器控制器,以提供处理器1080和输入单元1030对存储器1020的访问。
输入单元1030可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1030可包括触敏表面1031(例如:触摸屏、触摸板或触摸框)。触敏表面1031,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1031上或在触敏表面1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1031。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及终端设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1040可包括显示面板1041,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1041。进一步的,触敏表面1031可覆盖显示面板1041,当触敏表面1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然触敏表面1031与显示面板1041可以是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面1031与显示面板1041集成而实现输入和输出功能。
处理器1080是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。可选的,处理器1080可包括一个或多个处理核心;其中,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
具体在本实施例中,终端设备的显示单元是触摸屏显示器,终端设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含实现上述数据处理方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上介绍仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,所述方法包括:
创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据;
获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据;
将所述第二索引切换为所述第一索引。
2.根据权利要求1所述的方法,其特征在于,所述创建与所述第一索引属于同一物品类别的第二索引之前,还包括:
删除第三索引,所述第三索引为与所述第一索引属于同一物品类别的历史索引;
所述创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据,包括:
创建与所述第一索引属于同一物品类别的第二索引,从备用数据库中获取当前时刻对应的所述物品类别的全量数据;
向所述第二索引写入所述全量数据。
3.根据权利要求1所述的方法,其特征在于,所述将所述第二索引切换为所述第一索引,包括:
获取所述第一索引的第一数据量;
获取所述第二索引的第二数据量;
基于所述第一数据量及所述第二数据量,将所述第二索引切换为所述第一索引。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一数据量及所述第二数据量,将所述第二索引切换为所述第一索引,包括:
获取所述第一数据量与所述第二数据量之间的差值;
当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引;或,
当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引。
5.根据权利要求4所述的方法,其特征在于,所述当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引,包括:
当所述差值的绝对值小于或者等于第一阈值时,将所述第二索引切换为所述第一索引,所述第一阈值为预设值;或,
获取所述物品类别对应的第一阈值;
当所述差值的绝对值小于或者等于所述第一阈值时,将所述第二索引切换为所述第一索引。
6.根据权利要求4所述的方法,其特征在于,所述当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引,包括:
当所述差值与所述第一数据量的比值小于或者等于第二阈值时,将所述第二索引切换为所述第一索引,所述第二阈值为预设值;或,
获取所述物品类别对应的第二阈值;
当所述差值与所述第一数据量的比值小于或者等于所述第二阈值时,将所述第二索引切换为所述第一索引。
7.根据权利要求1所述的方法,其特征在于,所述创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据之后,还包括:
获取从所述当前时刻到所述全量数据的写入结束时刻之间所述第二索引中生成的全部索引片段;
将所述全部索引片段合并成指定数量的索引片段。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述将所述第二索引切换为所述第一索引,包括:
将指向所述第一索引的索引别名切换为指向所述第二索引。
9.一种数据处理装置,其特征在于,所述装置应用于数据平台,所述数据平台包括第一索引,所述第一索引用于从所述数据平台读取查询数据以提供数据查询服务,所述装置包括:
索引创建单元,用于创建与所述第一索引属于同一物品类别的第二索引,向所述第二索引写入当前时刻对应的所述物品类别的全量数据;
增量获取单元,用于获取从所述当前时刻到所述全量数据的写入结束时刻之间的第一增量数据以及所述写入结束时刻之后的第二增量数据,向所述第二索引轮循写入所述第一增量数据以及所述第二增量数据;
索引切换单元,用于将所述第二索引切换为所述第一索引。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述权利要求1-8中任一项所述方法的步骤。
11.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述权利要求1-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010577960.XA CN111767284B (zh) | 2020-06-23 | 2020-06-23 | 数据处理方法、装置、存储介质和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010577960.XA CN111767284B (zh) | 2020-06-23 | 2020-06-23 | 数据处理方法、装置、存储介质和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767284A true CN111767284A (zh) | 2020-10-13 |
CN111767284B CN111767284B (zh) | 2023-11-21 |
Family
ID=72721574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010577960.XA Active CN111767284B (zh) | 2020-06-23 | 2020-06-23 | 数据处理方法、装置、存储介质和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767284B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800066A (zh) * | 2021-02-18 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 索引管理的方法、相关设备及存储介质 |
CN112925783A (zh) * | 2021-03-26 | 2021-06-08 | 北京金山云网络技术有限公司 | 业务数据处理方法和装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598990A (zh) * | 2015-10-16 | 2017-04-26 | 卓望数码技术(深圳)有限公司 | 一种搜索方法及系统 |
CN109101599A (zh) * | 2018-08-01 | 2018-12-28 | 北京奇艺世纪科技有限公司 | 一种增量索引更新方法及系统 |
CN109471866A (zh) * | 2018-11-09 | 2019-03-15 | 南京医渡云医学技术有限公司 | 增量医疗数据更新方法及系统 |
WO2019091085A1 (zh) * | 2017-11-13 | 2019-05-16 | 华为技术有限公司 | 一种快照比对的方法和装置 |
US20200004795A1 (en) * | 2018-06-29 | 2020-01-02 | Alibaba Group Holding Limited | Method, apparatus, storage medium and electronic device for establishing question and answer system |
-
2020
- 2020-06-23 CN CN202010577960.XA patent/CN111767284B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598990A (zh) * | 2015-10-16 | 2017-04-26 | 卓望数码技术(深圳)有限公司 | 一种搜索方法及系统 |
WO2019091085A1 (zh) * | 2017-11-13 | 2019-05-16 | 华为技术有限公司 | 一种快照比对的方法和装置 |
US20200004795A1 (en) * | 2018-06-29 | 2020-01-02 | Alibaba Group Holding Limited | Method, apparatus, storage medium and electronic device for establishing question and answer system |
CN109101599A (zh) * | 2018-08-01 | 2018-12-28 | 北京奇艺世纪科技有限公司 | 一种增量索引更新方法及系统 |
CN109471866A (zh) * | 2018-11-09 | 2019-03-15 | 南京医渡云医学技术有限公司 | 增量医疗数据更新方法及系统 |
Non-Patent Citations (2)
Title |
---|
吴国泉: "基于HBase的全文索引及检索技术的研究", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 05, pages 138 - 1197 * |
吴雨晨;刘萍萍;徐江涛;: "改进的大数据检索自适应性切换搜索算法", 西安工业大学学报, no. 06, pages 64 - 71 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800066A (zh) * | 2021-02-18 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 索引管理的方法、相关设备及存储介质 |
CN112800066B (zh) * | 2021-02-18 | 2024-06-25 | 腾讯云计算(北京)有限责任公司 | 索引管理的方法、相关设备及存储介质 |
CN112925783A (zh) * | 2021-03-26 | 2021-06-08 | 北京金山云网络技术有限公司 | 业务数据处理方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111767284B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11949759B2 (en) | Adaptive computation and faster computer operation | |
US9087071B2 (en) | Gathering transaction data associated with locally stored data files | |
CN109902255B (zh) | 页面混合浏览记录生成方法、装置、设备和存储介质 | |
US8245148B2 (en) | History display apparatus, history display system, history display method, and program | |
WO2014209848A1 (en) | Naive, client-side sharding with online addition of shards | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
CN104881466A (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
US20200004560A1 (en) | Adaptive user-interface assembling and rendering | |
EP3497586A1 (en) | Discovery of calling application for control of file hydration behavior | |
CN111767284B (zh) | 数据处理方法、装置、存储介质和服务器 | |
WO2020132642A1 (en) | Garbage collection of preloaded time-based graph data | |
CN111930706A (zh) | 基于远程调用的分布式网络文件存储系统和方法 | |
CN112256676A (zh) | 一种数据库迁移的方法、装置、设备和介质 | |
CN111752960B (zh) | 数据处理方法和装置 | |
CN111586177B (zh) | 集群会话防丢失方法及系统 | |
CN111400350A (zh) | 配置数据读取方法、系统、电子设备和存储介质 | |
CN111427910A (zh) | 数据处理方法及装置 | |
EP3900364A1 (en) | Preloaded content selection graph validation | |
WO2020132637A1 (en) | Preloaded content selection graph for rapid retrieval | |
JP2014160392A (ja) | ワークフロー管理システム及びワークフロー管理方法及びプログラム | |
CN116208487A (zh) | 区块链系统中的共识算法升级方法、装置、设备及介质 | |
CN112799585B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112084204B (zh) | 浏览数据处理方法、装置、终端及存储介质 | |
JP2022097397A (ja) | 質問回答システムの更新処理方法及び装置 | |
US11409796B1 (en) | Generational databases for managing time series data |
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 |