一种索引管理的方法技术

技术编号:31230103 阅读:16 留言:0更新日期:2021-12-08 10:00
本发明专利技术公开了一种索引管理的方法,包括索引管理器,索引管理器包括服务端和客户端,本发明专利技术能够在数据入elasticsearch库时,其索引族由数据发布时间确定而不是数据入库时间确定,且业务检索时不再检索全部索引,而是根据检索的发布时间区间,确定待检索的部分索引族,能够降低业务检索中的消耗,提高检索性能,在海量数据中能够有快速且有针对性的获取目标信息的位置。标信息的位置。标信息的位置。

【技术实现步骤摘要】
一种索引管理的方法


[0001]本专利技术涉及海量数据管理
,具体为一种索引管理的方法。

技术介绍

[0002]在大数据业务中,数据一般可基于elasticsearch搜索服务器的索引方式存储和检索。
[0003]通常情况下,数据存储的索引是根据数据入elasticsearch库时确定的,即数据索引名称通常根据入库时间确定,但用户业务场景通常更关注的是数据的发布时间,即在业务数据检索时需要检索发布时间在一个区间内的数据。
[0004]由于业务数据存储按照入库时间顺序排序和业务检索索引根据发布时间检索之间的不一致性,为了达到业务检索发布时间在一个区间内数据的目的,通常需要在全数据存储索引中检索,导致检索消耗变高,检索性能变慢,为了解决上述问题,我们提出一种索引管理的方法。

技术实现思路

[0005]本专利技术的目的在于提供一种索引管理的方法,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:一种索引管理的方法,包括索引管理器,所述索引管理器包括服务端和客户端,所述服务端包括postgres、zookeeper、yq数据处理、es入库程序,所述postgres为开源数据库、zookeeper为分布式协调服务、yq数据处理为获取索引信息并处理数据的外部服务、es入库程序为数据存入程序,所述索引管理器工作步骤如下:
[0007]步骤1:数据入库过程
[0008]1.1.根据入库数据的pt,channel,msgtype计算出index write alias,所述pt为时间标识、channel为媒体类型标识、msgtype为信息类型标识、index write alias为索引写别名;
[0009]1.2.在postgres中核实index write alias是否已存在;
[0010]1.3.如果不存在,创建index write alias的第一个索引,更新postgres中的记录,并通知zookeeper已有新索引族创建成功;
[0011]1.4.如果当前索引数据数量达到上限,创建索引族内下一个索引并移动写别名,添加读别名。
[0012]步骤2:数据入库结果
[0013]经yq数据处理程序、es入库程序存储至客户端。
[0014]步骤3:业务检索过程
[0015]3.1.根据zookeeper状态通知,确定本地索引记录是否过期;
[0016]3.2.如果过期,从postgres中刷新本地索引数据;
[0017]3.3.根据pc,channel,msgtype计算出index read aliases,并剔除不存在的索引族。
[0018]优选的,所述索引管理器索引算法中确定索引名称过程为:
[0019]当t
pubTime
<=t
sparseEnd
时,索引族写别名和读别名为配置项NameWriteAlias
Sparse
和NameReadAlias
Sparse
,所述t
pubTime
为稀疏数据区间变更时间、t
sparseEnd
为稀疏数据区间截止时间、NameWriteAlias
Sparse
为稀疏数据区间索引写别名、NameReadAlias
Sparse
为稀疏数据区间索引读别名;
[0020]不满足上述条件时,当t
pubTime
∈[t0+n*t
interval
,t0+(n+1)*t
interval
],其中n∈Z时,索引族写别名和读别名为t0+n*t
interval
所在日期添加上指定的Prefix、Suffix,所述t0为基准时间、t
interval
为索引时间跨度、Prefix为正常数据区间索引名称的前缀、Suffix为正常数据区间索引名称的后缀。
[0021]优选的,所述索引管理器索引算法中滚动索引过程为:在数据量密集的情况下,单个索引名称中对应的数据流会超过N
max
,所述N
max
为单个索引最大数据量,这种情况下,会对索引名称滚动形成后续索引,其中索引读别名会添加到所有滚动的索引中,索引写别名只会指向最后一个滚动索引。
[0022]优选的,所述索引管理器索引算法中的数据排序方式,索引族是根据数据的发布时间确定的,不同索引族内的数据是严格依据发布时间排序;索引族内不同索引之间数据是根据入库时间顺序确定的。
[0023]优选的,所述索引管理器客户端进行业务检索时,根据检索的发布时间区域,获取该时间区域内实际存在的所有索引族的读别名,即可在显著减少待检索索引范围内的情况下获取全量符合要求的数据。
[0024]优选的,所述客户端基于服务端提供API,所述API为应用程序编程接口,用于在数据入库时提供索引族的写别名,并在索引族不存在时创建索引族的第一个索引,或在数据检索时提供一段时间内所有存在的所有族的写别名。
[0025]优选的,所述客户端可提供代码包,集成到业务段代码中使用,根据客户需求包装扩展适合业务需要的接口。
[0026]与现有技术相比,本专利技术的有益效果是:该索引管理的方法,能够在数据入elasticsearch库时,其索引族由数据发布时间确定而不是数据入库时间确定,且业务检索时不再检索全部索引,而是根据检索的发布时间区间,确定待检索的部分索引族,能够降低业务检索中的消耗,提高检索性能,在海量数据中能够有快速且有针对性的获取目标信息的位置。
附图说明
[0027]图1为本专利技术数据入库过程的流程图。
[0028]图2为本专利技术数据入库结果的流程图。
[0029]图3为本专利技术业务检索过程的流程图。
具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]请参阅图1、图2、图3,本专利技术提供一种技术方案:一种索引管理的方法,包括索引管理器,所述索引管理器包括服务端和客户端,所述服务端包括postgres、zookeeper、yq数据处理、es入库程序,所述postgres为开源数据库、zookeeper为分布式协调服务、yq数据处理为获取索引信息并处理数据的外部服务、es入库程序为数据存入程序,所述索引管理器工作步骤如下:
[0032]步骤1:数据入库过程
[0033]1.1.根据入库数据的pt,channel,msgtype计算出index write alias,所述pt为时间标识、channel为媒体类型标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种索引管理的方法,其特征在于:包括索引管理器,所述索引管理器包括服务端和客户端,所述服务端包括postgres、zookeeper、yq数据处理、es入库程序,所述postgres为开源数据库、zookeeper为分布式协调服务、yq数据处理为获取索引信息并处理数据的外部服务、es入库程序为数据存入程序,所述索引管理器工作步骤如下:步骤1:数据入库过程1.1.根据入库数据的pt,channel,msgtype计算出index write alias,所述pt为时间标识、channel为媒体类型标识、msgtype为信息类型标识、index write alias为索引写别名;1.2.在postgres中核实index write alias是否已存在;1.3.如果不存在,创建index write alias的第一个索引,更新postgres中的记录,并通知zookeeper已有新索引族创建成功;1.4.如果当前索引数据数量达到上限,创建索引族内下一个索引并移动写别名,添加读别名。步骤2:数据入库结果经yq数据处理程序、es入库程序存储至客户端。步骤3:业务检索过程3.1.根据zookeeper状态通知,确定本地索引记录是否过期;3.2.如果过期,从postgres中刷新本地索引数据;3.3.根据pc,channel,msgtype计算出index read aliases,并剔除不存在的索引族。2.根据权利要求1所述的一种索引管理的方法,其特征在于:所述索引管理器索引算法中确定索引名称过程为:当t
pubTime
<=t
sparseEnd
时,索引族写别名和读别名为配置项NameWriteAlias
Sparse
和NameReadAlias
Sparse
,所述t
pubTime
为稀疏数据区间变更时间、t
sparseEnd
为稀疏数据区间截止时间、NameWriteAlias
Sparse
为稀疏数据区间索引...

【专利技术属性】
技术研发人员:包士强李龙慧胡琼芳黎强余智华
申请(专利权)人:中科天玑数据科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1