CN113760906B - 一种索引管理的方法 - Google Patents
一种索引管理的方法 Download PDFInfo
- Publication number
- CN113760906B CN113760906B CN202110509578.XA CN202110509578A CN113760906B CN 113760906 B CN113760906 B CN 113760906B CN 202110509578 A CN202110509578 A CN 202110509578A CN 113760906 B CN113760906 B CN 113760906B
- Authority
- CN
- China
- Prior art keywords
- index
- data
- alias
- interval
- family
- 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.)
- Active
Links
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
- G06F16/2228—Indexing structures
- G06F16/2272—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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种索引管理的方法,包括索引管理器,索引管理器包括服务端和客户端,本发明能够在数据入elasticsearch库时,其索引族由数据发布时间确定而不是数据入库时间确定,且业务检索时不再检索全部索引,而是根据检索的发布时间区间,确定待检索的部分索引族,能够降低业务检索中的消耗,提高检索性能,在海量数据中能够有快速且有针对性的获取目标信息的位置。
Description
技术领域
本发明涉及海量数据管理技术领域,具体为一种索引管理的方法。
背景技术
在大数据业务中,数据一般可基于elasticsearch搜索服务器的索引方式存储和检索。
通常情况下,数据存储的索引是根据数据入elasticsearch库时确定的,即数据索引名称通常根据入库时间确定,但用户业务场景通常更关注的是数据的发布时间,即在业务数据检索时需要检索发布时间在一个区间内的数据。
由于业务数据存储按照入库时间顺序排序和业务检索索引根据发布时间检索之间的不一致性,为了达到业务检索发布时间在一个区间内数据的目的,通常需要在全数据存储索引中检索,导致检索消耗变高,检索性能变慢,为了解决上述问题,我们提出一种索引管理的方法。
发明内容
本发明的目的在于提供一种索引管理的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种索引管理的方法,包括索引管理器,所述索引管理器包括服务端和客户端,所述服务端包括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,并剔除不存在的索引族。
优选的,所述索引管理器索引算法中确定索引名称过程为:
当tpubTime<=tsparseEnd时,索引族写别名和读别名为配置项NameWriteAliasSparse和NameReadAliasSparse,所述tpubTime为稀疏数据区间变更时间、tsparseEnd为稀疏数据区间截止时间、NameWriteAliasSparse为稀疏数据区间索引写别名、NameReadAliasSparse为稀疏数据区间索引读别名;
不满足上述条件时,当tpubTime∈[t0+n*tinterval,t0+(n+1)*tinterval],其中n∈Z时,索引族写别名和读别名为t0+n*tinterval所在日期添加上指定的Prefix、Suffix,所述t0为基准时间、tinterval为索引时间跨度、Prefix为正常数据区间索引名称的前缀、Suffix为正常数据区间索引名称的后缀。
优选的,所述索引管理器索引算法中滚动索引过程为:在数据量密集的情况下,单个索引名称中对应的数据流会超过Nmax,所述Nmax为单个索引最大数据量,这种情况下,会对索引名称滚动形成后续索引,其中索引读别名会添加到所有滚动的索引中,索引写别名只会指向最后一个滚动索引。
优选的,所述索引管理器索引算法中的数据排序方式,索引族是根据数据的发布时间确定的,不同索引族内的数据是严格依据发布时间排序;索引族内不同索引之间数据是根据入库时间顺序确定的。
优选的,所述索引管理器客户端进行业务检索时,根据检索的发布时间区域,获取该时间区域内实际存在的所有索引族的读别名,即可在显著减少待检索索引范围内的情况下获取全量符合要求的数据。
优选的,所述客户端基于服务端提供API,所述API为应用程序编程接口,用于在数据入库时提供索引族的写别名,并在索引族不存在时创建索引族的第一个索引,或在数据检索时提供一段时间内所有存在的所有族的写别名。
优选的,所述客户端可提供代码包,集成到业务段代码中使用,根据客户需求包装扩展适合业务需要的接口。
与现有技术相比,本发明的有益效果是:该索引管理的方法,能够在数据入elasticsearch库时,其索引族由数据发布时间确定而不是数据入库时间确定,且业务检索时不再检索全部索引,而是根据检索的发布时间区间,确定待检索的部分索引族,能够降低业务检索中的消耗,提高检索性能,在海量数据中能够有快速且有针对性的获取目标信息的位置。
附图说明
图1为本发明数据入库过程的流程图。
图2为本发明数据入库结果的流程图。
图3为本发明业务检索过程的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1、图2、图3,本发明提供一种技术方案:一种索引管理的方法,包括索引管理器,所述索引管理器包括服务端和客户端,所述服务端包括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,并剔除不存在的索引族。
所述索引管理器索引算法中确定索引名称过程为:
当tpubTime<=tsparseEnd时,索引族写别名和读别名为配置项NameWriteAliasSparse和NameReadAliasSparse,所述tpubTime为稀疏数据区间变更时间、tsparseEnd为稀疏数据区间截止时间、NameWriteAliasSparse为稀疏数据区间索引写别名、NameReadAliasSparse为稀疏数据区间索引读别名;
不满足上述条件时,当tpubTime∈[t0+n*tinterval,t0+(n+1)*tinterval],其中n∈Z时,索引族写别名和读别名为t0+n*tinterval所在日期添加上指定的Prefix、Suffix,所述t0为基准时间、tinterval为索引时间跨度、Prefix为正常数据区间索引名称的前缀、Suffix为正常数据区间索引名称的后缀。
所述索引管理器索引算法中滚动索引过程为:在数据量密集的情况下,单个索引名称中对应的数据流会超过Nmax,所述Nmax为单个索引最大数据量,这种情况下,会对索引名称滚动形成后续索引,其中索引读别名会添加到所有滚动的索引中,索引写别名只会指向最后一个滚动索引。
所述索引管理器索引算法中的数据排序方式,索引族是根据数据的发布时间确定的,不同索引族内的数据是严格依据发布时间排序;索引族内不同索引之间数据是根据入库时间顺序确定的。
所述索引管理器客户端进行业务检索时,根据检索的发布时间区域,获取该时间区域内实际存在的所有索引族的读别名,即可在显著减少待检索索引范围内的情况下获取全量符合要求的数据。
所述客户端基于服务端提供API,所述API为应用程序编程接口,用于在数据入库时提供索引族的写别名,并在索引族不存在时创建索引族的第一个索引,或在数据检索时提供一段时间内所有存在的所有族的写别名。
所述客户端可提供代码包,集成到业务段代码中使用,根据客户需求包装扩展适合业务需要的接口。
说明项:
elasticsearch为开源全文检索引擎,Indexmgr为维护elasticsearch索引和索引数据元数据的服务,并向外提供索引检索服务,indexmgr为索引管理器的实现方式,索引管理器的核心是建立一套灵活可配置的计算机制,实现从数据的发布时间计算出数据所在索引名称(包括别名在内)的方法。
索引族:在对数据的发布时间计算出的数据存储所在的索引名称,一个索引族至少包括一个实际存在的索引;
索引族滚动索引:当一个索引族中的数据超过预定的最大数据量时,该索引族中的数据会滚动存储到若干个实际索引中;
索引族读别名:一个索引族中的所有索引有统一的一个读别名,用于数据检索;
索引族写别名:一个索引族中的最后一个索引有一个写别名,用于数据入库。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (6)
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所述的一种索引管理的方法,其特征在于:所述索引管理器中确定索引名称过程为:
当tpubTime<=tsparseEnd时,索引族写别名和读别名为配置项NameWriteAliasSparse和NameReadAliasSparse,所述tpubTime为稀疏数据区间变更时间、tsparseEnd为稀疏数据区间截止时间、NameWriteAliasSparse为稀疏数据区间索引写别名、NameReadAliasSparse为稀疏数据区间索引读别名;
不满足tpubTime<=tsparseEnd时,当tpubTime∈[t0+n*tinterval,t0+(n+1)*tinterval],其中n∈Z时,索引族写别名和读别名为t0+n*tinterval所在日期添加上指定的Prefix、Suffix,所述t0为基准时间、tinterval为索引时间跨度、Prefix为正常数据区间索引名称的前缀、Suffix为正常数据区间索引名称的后缀。
3.根据权利要求1所述的一种索引管理的方法,其特征在于:所述索引管理器中滚动索引过程为:在数据量密集的情况下,单个索引名称中对应的数据流会超过Nmax,所述Nmax为单个索引最大数据量,这种情况下,会对索引名称滚动形成后续索引,其中索引读别名会添加到所有滚动的索引中,索引写别名只会指向最后一个滚动索引。
4.根据权利要求1所述的一种索引管理的方法,其特征在于:所述索引管理器客户端进行业务检索时,根据检索的发布时间区域,获取该时间区域内实际存在的所有索引族的读别名。
5.根据权利要求1所述的一种索引管理的方法,其特征在于:所述客户端基于服务端提供API,所述API为应用程序编程接口,用于在数据入库时提供索引族的写别名,并在索引族不存在时创建索引族的第一个索引,或在数据检索时提供一段时间内所有存在的所有族的写别名。
6.根据权利要求1所述的一种索引管理的方法,其特征在于:所述客户端提供代码包,集成到业务段代码中使用,根据客户需求包装扩展适合业务需要的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110509578.XA CN113760906B (zh) | 2021-05-11 | 2021-05-11 | 一种索引管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110509578.XA CN113760906B (zh) | 2021-05-11 | 2021-05-11 | 一种索引管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760906A CN113760906A (zh) | 2021-12-07 |
CN113760906B true CN113760906B (zh) | 2023-04-14 |
Family
ID=78787110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110509578.XA Active CN113760906B (zh) | 2021-05-11 | 2021-05-11 | 一种索引管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760906B (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632266B (zh) * | 2019-10-09 | 2022-12-23 | 上海哔哩哔哩科技有限公司 | 数据写入方法、装置、计算机设备及可读存储介质 |
CN111522905A (zh) * | 2020-04-15 | 2020-08-11 | 武汉灯塔之光科技有限公司 | 一种基于数据库的文档搜索方法和装置 |
-
2021
- 2021-05-11 CN CN202110509578.XA patent/CN113760906B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113760906A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101278289B (zh) | 提供对象以支持worm存储设备中的数据结构的系统和方法 | |
US7765215B2 (en) | System and method for providing a trustworthy inverted index to enable searching of records | |
CN109857724B (zh) | 基于区块链实现支持多种数据库的方法及设备 | |
US7734618B2 (en) | Creating adaptive, deferred, incremental indexes | |
US20070124277A1 (en) | Index and Method for Extending and Querying Index | |
CN104182435A (zh) | 基于数据缺失标记的信息检索系统及方法 | |
JP2010520549A (ja) | データの記憶および管理の方法 | |
EP3788505B1 (en) | Storing data items and identifying stored data items | |
CN108460075B (zh) | 一种文件内容检索方法及系统 | |
CN110096509A (zh) | 大数据环境下实现历史数据拉链表存储建模处理的系统及方法 | |
CN103853802A (zh) | 用于索引电子内容的装置和方法 | |
US11868328B2 (en) | Multi-record index structure for key-value stores | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
CN111414424B (zh) | 一种配置数据自动同步redis的方法、系统、介质及设备 | |
CN106649602A (zh) | 业务对象数据处理方法、装置和服务器 | |
CN105183391B (zh) | 一种分布式数据平台下数据存储的方法和装置 | |
CN113656397A (zh) | 一种针对时序数据的索引构建及查询的方法、装置 | |
US7512617B2 (en) | Interval tree for identifying intervals that intersect with a query interval | |
CN113760906B (zh) | 一种索引管理的方法 | |
US11323525B2 (en) | Stream engine using compressed bitsets | |
CN111259017B (zh) | 订单检索方法、计算机设备和存储介质 | |
CN113779286B (zh) | 管理图数据的方法及装置 | |
CN114265828A (zh) | 行迁移消除方法、装置、计算机设备和存储介质 | |
CN116820323A (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN111563123A (zh) | 一种hive仓库元数据实时同步方法 |
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 |