索引管理的方法、相关设备及存储介质与流程

文档序号:25061422发布日期:2021-05-14 14:45阅读:103来源:国知局
索引管理的方法、相关设备及存储介质与流程

1.本申请涉及计算机技术领域,具体应用于数据库查询技术领域,尤其涉及一种索引管理的办法、装置及索引管理设备、存储介质。


背景技术:

2.目前在数据查询过程中,为了提升查询速率,通常是通过对数据表中的指定字段建立索引并对索引进行访问来实现提升数据查询的速度和效率。然而,发明人在实践中发现,目前索引服务和数据服务(例如数据读写)处于同一个进程,从而在对索引进行访问时,会在一定程度上影响数据的读写,当索引查询量较大时,可能会导致数据服务不可用。因此,在通过索引对数据进行查询过程中,如何在访问索引时有效地降低对数据服务的影响成为一个亟待解决的问题。


技术实现要素:

3.本申请实施例提供了一种索引管理的方法、相关设备及存储介质,可以在一定程度上有效地降低索引访问过程中对数据读写服务的影响。
4.一方面,本申请实施例提出了一种索引管理的方法,所述方法应用于索引管理设备,所述方法包括:
5.向索引设备转发来自第一终端设备的数据查询请求,所述数据查询请求用于指示所述索引设备查询满足查询条件的查询数据;
6.接收所述索引设备返回的所述查询数据;
7.确定所述数据查询请求对应的数据查询类型,并依照所述数据查询类型和所述查询数据确定目标数据;
8.向所述第一终端设备返回所述目标数据。
9.一方面,本申请实施例提供了一种索引管理装置,所述装置配置于索引管理设备,所述装置包括:
10.处理模块,用于向索引设备转发来自第一终端设备的数据查询请求,所述数据查询请求用于指示所述索引设备查询满足查询条件的查询数据;
11.接收模块,用于接收所述索引设备返回的所述查询数据;
12.确定模块,确定所述数据查询请求对应的数据查询类型,并依照所述数据查询类型和所述查询数据确定目标数据;
13.所述处理模块,还用于向所述第一终端设备返回所述目标数据。
14.一方面,本申请实施例提供了一种索引管理设备,所述索引管理设备包括处理器和存储器,所述处理器与所述存储器相互连接,其中,所述存储器用于存储计算机程序指令,所述处理器被配置用于执行该计算机程序指令实现上述索引管理的方法中的部分或全部步骤。
15.一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介
质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行上述索引管理的方法中的部分或全部步骤。
16.相应地,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述提供的索引管理的方法。
17.本申请实施例中,索引管理设备向索引设备转发来自第一终端设备的数据查询请求,并接收索引设备返回的查询数据,确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据,向第一终端设备返回目标数据。通过实施上述方案,可以独立部署索引服务和数据服务,在一定程度上有效地降低索引访问过程中对数据服务的影响。
附图说明
18.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1a为本申请实施例提供的一种索引管理系统的结构示意图;
20.图1b为本申请实施例提供的另一种索引管理系统的结构示意图;
21.图2为本申请实施例提供的一种索引管理的方法的流程示意图;
22.图3为本申请实施例提供的另一种索引管理的方法的流程示意图;
23.图4为本申请实施例提供的一种确定目标数据的过程示意图;
24.图5为本申请实施例提供的另一种确定目标数据的过程示意图;
25.图6为本申请实施例提供的又一种索引管理的方法的流程示意图;
26.图7为本申请实施例提供的一种索引管理界面的示意图;
27.图8为本申请实施例提供的一种创建索引的过程示意图;
28.图9为本申请实施例提供的一种数据同步的过程示意图;
29.图10为本申请实施例提供的另一种索引管理界面的示意图;
30.图11为本申请实施例提供的一种修改索引的过程示意图;
31.图12为本申请实施例提供的一种索引管理的装置的结构示意图;
32.图13为本申请实施例提供的一种索引管理设备的结构示意图。
具体实施方式
33.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
34.为了能够更好地实现索引管理,本申请实施例提出了一种索引管理系统,以实现索引服务和数据服务的独立部署。在一个实施例中,索引服务和数据服务可分别由两台独立的设备提供,参见图1a所示,本申请实施例提出的索引管理系统可包括索引设备和索引管理设备,其中,索引设备用于提供索引服务,例如创建索引、修改索引以及访问索引,索引管理设备用于提供数据服务,例如读写数据。具体地,索引管理设备可部署有数据库,该数
据库用于存储数据,该数据库可以是tcaplus数据库(又称tcaplusdata base,tcaplus db,腾讯公司研发的键值对数据库(key

value数据库,kv数据库))。
35.索引设备可部署有索引系统,可以通过部署于索引设备上的索引系统实现对索引的管理,该索引系统存储有多个根据字段建立的索引,以及从索引管理设备中的数据库同步至索引的数据。
36.此外,索引管理系统还可以包括第一终端设备和第二终端设备。其中,第一终端设备为业务终端,用于提供数据查询业务以及对数据进行操作,如写入数据、更新数据,或删除数据。例如,金融类交易业务,当支付了一笔交易时,需将此交易涉及的数据进行数据写入操作。又如,应用程序数据存储业务,当应用程序(如应用游戏)接收到了账号注册请求时,需将此请求涉及的账号数据进行数据写入操作。第二终端设备为用于进行索引管理的索引终端,用于提供索引创建、修改、重建或删除等索引服务。
37.在另一个实施例中,索引服务和数据服务也可由同一台设备提供,例如在索引管理设备上通过两个独立的进程部署数据库和索引系统,该数据库用于提供数据服务,索引系统用于提供索引服务。此实施例下的索引管理系统可如图1b所示。
38.应理解的是,图1a和图1b只是示例性地表征索引管理系统的架构,其并不对该索引管理系统的具体架构进行限定。为便于阐述,除非特别指明,后续所提及的索引管理系统均以图1a所示的索引管理系统为例进行说明。
39.在一个实施例中,适用于上述图1a所示的索引管理系统,本申请实施例提出一种索引管理的方法,该方法可以由索引管理设备、索引设备、第一终端设备和第二终端设备共同执行,参见图2,该索引管理的方法的交互流程可以包括以下步骤:
40.s201、第二终端设备向索引管理设备发送针对目标字段的索引创建请求。
41.s202、索引管理设备根据索引创建请求生成索引指示信息,并将索引指示信息发送至索引设备。
42.s203、索引设备依照索引指示信息的指示,创建目标字段对应的目标索引。
43.s204、索引管理设备从数据库中获取与目标字段关联的历史数据,并向索引设备发送携带有历史数据的第一索引同步请求。
44.s205、索引设备依照第一索引同步请求的指示,将历史数据同步至目标索引。
45.s206、索引设备在历史数据同步完成后,向索引管理设备返回同步完成指令。
46.s207、第二终端设备向索引管理设备发送针对目标字段的修改请求,修改请求中包括针对目标索引的索引更新字段。
47.s208、索引管理设备根据修改请求生成针对目标索引的索引更新请求,并将索引更新请求发送至索引设备。
48.s209、索引设备接收索引更新请求,并依照索引更新字段创建新索引,删除目标索引。
49.s210、索引设备返回索引切换指示信息至索引管理设备。
50.s211、索引管理设备接收索引切换指示信息,并依照索引切换指示信息的指示将对目标索引的访问切换至新索引。上述步骤s201

s211的详细实现过程可以参见下述步骤s601

s603的相关描述。
51.s212、第一终端设备向索引管理设备发送数据查询请求。
52.s213、索引管理设备转发数据查询请求至索引设备。
53.s214、索引设备依照数据查询请求的指示,查询满足查询条件的查询数据。
54.s215、索引设备将查询数据返回至索引管理设备。
55.s216、索引管理设备接收返回的查询数据,以及确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据。
56.s217、索引管理设备向第一终端设备返回目标数据。上述步骤s212

s217的详细实现过程可以参照下述步骤s301

s304的相关描述。
57.通过实施本申请的技术方案,可以对索引进行创建或修改,以实现对索引的管理和减小对数据服务的影响,以及在修改索引时,能保证原索引可正常访问,并且,在数据查询时可以通过访问索引的方式加快查询的速度和效率。
58.此外,上述提及的索引管理设备、索引设备均可以是服务器;此处所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。以及,上述提及的第一终端设备、第二终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。可以理解的是,随着上述提出的系统所应用的平台不同,对应的终端设备也可随之不同。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。本申请实施例提出的技术方案可以实现对存储于数据库的数据进行查询,以及通过索引系统提高数据查询效率。其中,数据库(database,db),简而言之可视为电子化的文件柜——存储电子文件的处所,可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。此外,索引管理设备中还可以部署数据库管理系统(database management system,dbms),该数据库管理系统是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、可扩展标记语言(extensible markup language,xml);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(structured query language,sql)、xml数据查询语言(xml querylanguage,xquery);或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些dbms能够跨类别,例如,同时支持多种查询语言。
59.可选的,本申请涉及的数据如数据库中的数据、和/或索引系统中的数据等,可以存储于区块链中,如通过区块链分布式系统存储,本申请不作限定。
60.其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥
生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
61.平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。例如,在本申请中,可以通过区块链提供数据存储功能,并可将存储的数据提供给广告主、数据平台等相关业务方。
62.可以理解的是,本申请实施例所提出的索引管理的方案可应用于任何需对数据进行查询,或对索引进行管理的场景。本申请实施例在此对应用场景不做限制,并且随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
63.基于上述的描述,本申请实施例提出了一种索引管理的方法,该方法应用于上述提及的索引管理设备。如图3所示,本申请实施例中的索引管理方法的流程可以包括:
64.s301、向索引设备转发来自第一终端设备的数据查询请求,数据查询请求用于指示索引设备查询满足条件的查询数据。
65.其中,索引管理设备可以包括接入层和存储层,接入层用于接收或转发来自第一终端设备或第二终端设备的请求,以及用于接收或转发来自存储层或索引设备的数据;存储层用于存储数据。
66.在一个可能的实施方式中,当第一用户想要进行数据查询时,可以通过自身的第一终端设备向索引管理设备发送数据查询请求,索引管理设备的接入层接收到数据查询请求后将该数据查询请求转发给索引设备。其中,第一用户可以为第一终端设备所应用的业务面向的使用者。
67.s302、接收索引设备返回的上述查询数据。
68.在一种可能的实施方式中,索引管理设备的接入层将接收索引设备返回的查询数据。索引设备获取查询数据的具体方式可以是,索引设备接收到数据查询请求时,解析该数据查询请求得到数据查询请求包含的查询条件和对应的数据查询类型,并根据查询条件和数据查询类型获取查询数据,索引设备在获取到查询数据后将该查询数据发送至索引管理设备。进一步的,索引设备在发送查询数据时可以发送数据查询请求的信息,该信息包含了数据查询请求的数据查询类型。
69.在一种可能的实施方式中,索引设备根据查询条件和数据查询类型获取查询数据具体实施方式可以是,若数据查询请求的数据查询类型为聚合查询类型时,从索引系统中
获取满足查询条件的聚合值,并将聚合值确定为查询数据。其中,当数据查询请求是对已建立索引的字段关联的数据进行查询并可通过计算得到一个数值时,该数据查询请求的数据查询类型为聚合查询类型,例如,聚合查询可以包括查询总数(count)、查询总和(sum)、查询最小值(min)、查询最大值(max)、查询平均值(avg)等。
70.在一种可能的实施方式中,索引设备从索引系统中获取满足查询条件的聚合值具体可以是,通过聚合函数对查询出数据进行计算,从而得到满足查询条件的聚合值。需要说明的是,只有数据查询请求中对应的查询字段均为已建立索引的字段,才会进一步确定该数据查询请求的查询类型是否为聚合查询类型。其中,聚合函数可以包括count()(用于计算总数)、sum()(用于计算总数)、min()(用于计算最小值)、max()(用于计算最大值)、avg()(用于计算平均值)。
71.例如,数据表存储有交易记录信息,且其中的字段有“交易对象”、“交易金额”、“交易时间”、“交易渠道”,并对字段“交易对象”和“交易金额”建立了索引,当数据查询请求中的查询条件为查询交易金额为“x”的有多少人,由于字段“交易金额”建立了索引,且可以使用聚合函数count()计算交易金额为“x”的人的总数,因此数据查询类型为聚合查询类型,并将聚合函数count()得到的聚合值作为查询数据;或者,当数据查询请求中的查询条件为查询交易对象为“a”的总交易金额为多少,由于字段“交易对象”和“交易金额”均建立了索引,且可以使用聚合函数sum()计算交易对象为“a”的总交易金额,因此该数据查询类型为聚合查询类型,并将聚合函数sum()得到的聚合值作为查询数据;或者,当数据查询请求中的查询条件为查询最大交易金额对应的交易时间为多少,由于字段“交易时间”未建立索引,因此数据查询类型为非聚合查询类型;或者,当数据查询请求中的查询条件为查询交易对象为“a”的完整交易记录,虽然字段“交易对象”建立了索引,但是由于查询的不是一个数值,无法使用聚合函数进行计算,因此数据查询类型为非聚合查询类型。
72.在一种可能的实施方式中,索引设备根据查询条件和数据查询类型获取查询数据具体实施方式可以是,若数据查询请求的数据查询类型为非聚合查询类型时,从索引系统中获取满足查询条件的键值数据,并将键值数据确定为查询数据。其中,键值数据用于从数据库中获取对应的值数据。可以理解的是,只要数据查询请求不满足聚合查询的要求,均为非聚合查询。例如,非聚合查询可以是条件查询,条件查询可以包括范围查询和模糊查询,范围查询即为根据指定范围进行查询,模糊查询即为根据关键字进行查询。
73.例如,数据表存储有交易记录信息,且其中的字段有“交易对象”、“交易金额”、“交易时间”、“交易渠道”,并对字段“交易对象”和“交易金额”建立了索引,当数据查询请求中的查询条件为查询查询交易对象为“a”的完整交易记录,会在字段“交易对象”对应的索引中根据关键字“a”进行查询,并返回符合条件的键值数据,此为模糊查询,即非聚合查询;或者,当数据查询请求中的查询条件为查询交易金额在100

200之间的完整交易记录时,会在字段“交易金额”对应的索引中根据范围“100≤x<200”进行查询,并返回符合条件的键值数据,此为范围查询,即非聚合查询。
74.s303、确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据。
75.可选的,索引管理设备可以是在接收到第一终端设备发送的数据查询请求时,确定数据查询请求对应的数据查询类型,也可以是在接收到索引设备返回的查询数据时,确
定数据查询请求对应的数据查询类型,即可以是通过接收索引设备在返回查询数据时一并返回的数据查询请求的信息来确定数据查询类型。本申请实施例在此不做限制。
76.在一种可能的实施方式中,数据查询类型为聚合查询类型,查询数据为满足查询条件的聚合值,则将该查询数据确定为目标数据。具体可以是,索引管理设备的接入层确定数据查询类型为聚合查询类型,并在接收到索引设备返回的查询数据时,将该查询数据确定为目标数据。
77.例如,如图4所示,图4为当数据查询类型为聚合查询类型时确定目标数据的具体过程,第一用户通过第一终端设备向索引管理设备发送数据查询类型为聚合查询类型的数据查询请求,索引管理设备的接入层接收并转发该数据查询请求至索引设备,索引设备根据该数据查询请求获取满足查询请求的查询数据,并将该查询数据返回至数据查询设备,该查询数据是索引设备通过对索引系统中查询到的数据进行计算得到的聚合值,索引管理设备的接入层接收到查询数据,并在确定该数据查询类型为聚合查询类型时,将该查询数据确定为目标数据。
78.在一种可能的实施方式中,数据查询类型为非聚合查询类型,查询数据为满足查询条件的键值数据,则从数据库中获取该键值数据对应的值数据,并将该值数据确定为目标数据。具体可以是,索引管理设备的接入层确定数据查询类型为非聚合查询类型,并在接收到索引设备返回的查询数据时,向存储层发送数据获取请求,存储层根据该数据获取请求从数据库中获取键值数据对应的值数据,并返回该值数据,接入层在接收到该值数据时,将其确定为目标数据。
79.例如,如图5所示,图5为当数据查询类型为非聚合查询类型时确定目标数据的具体过程,第一终端设备向索引管理设备发送数据查询类型为非聚合查询类型的数据查询请求,索引管理设备的接入层接收并转发该数据查询请求至索引设备,索引设备根据该数据查询请求获取满足查询请求的查询数据,并将该查询数据返回至数据查询设备,该查询数据是索引设备通过查询得到的满足查询条件的键值数据,索引管理设备的接入层接收到查询数据,并在确定该数据查询类型为非聚合查询类型时,向存储层发送数据获取请求,该数据获取请求用于指示存储层从数据库中获取键值数据对应的值数据,以及返回值数据,接入层在接收存储层返回的值数据时,将该值数据确定为目标数据。
80.s304、向第一终端设备返回目标数据。
81.在一种可能的实施方式中,索引管理设备向第一终端设备返回目标数据具体可以是,当索引管理设备的接入层接收来自索引设备或者索引管理设备中存储层的目标数据时,将该目标数据返回给第一终端设备。
82.本申请实施例中,索引管理设备向索引设备转发来自第一终端设备的数据查询请求,并接收索引设备返回的查询数据,确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据,向第一终端设备返回目标数据。通过实施上述方法,可以在数据查询过程中,有效地降低索引访问时对数据读写服务的影响。
83.图6为本申请实施例提出的一种索引管理的方法,该方法应用于上述提及的索引管理设备。如图6所示,本申请实施例中的索引管理方法的流程可以包括:
84.s601、根据第二终端设备发送的针对目标字段的索引创建请求,生成索引指示信息,并将索引指示信息发送至索引设备。
85.其中,索引指示信息用于指示索引设备创建目标字段对应的目标索引。目标字段为存储于数据库的目标数据表中一个或多个字段。
86.在一种可能的实施方式中,在通过访问索引实现数据查询之前,需要预先创建索引。数据在数据库中是以数据表的形式进行存储的,为了加快对数据进行查询的速率,会对数据表建立索引,一张数据表对应一个索引,一个索引可以对应一个或多个字段,以及在选择建立索引的字段时,通常选择查询次数较高的字段,例如,对于存储交易记录信息的数据表,通常是通过交易对象或交易金额进行查询,因此可以给字段“交易对象”、“交易金额”创建索引,以及很少会通过交易渠道进行查询,因此无需为字段“交易渠道”创建索引。
87.在一种可能的实施方式中,当需要对目标数据表创建索引时,第二用户可通过第二终端设备提供的创建页面在目标数据表中选择需要创建索引的目标字段,并发起针对目标字段的索引创建请求,索引管理设备接收到索引创建请求后,生成索引指示信息,并将该索引指示信息发送至索引设备。其中,第二用户可以是第一终端设备所应用的业务对应的后端技术人员。例如,如图7所示,当需要创建索引时,第二用户首先在第二终端设备提供的创建页面选择需要创建索引的数据表,以及从数据表中选择目标字段,当选择多个字段时,可以点击“+”按钮添加字段,并通过点击“提交”按钮发起索引创建请求。可选的,第二用户可以对数据库中已存在的数据表创建索引,也可以在创建数据表的时候为该表创建索引。此外,第二用户除了可以通过创建页面进行索引的创建,还可以通过命令进行索引的创建,例如使用命令“create index”实现索引的创建。
88.s602、从数据库中获取与目标字段关联的历史数据。
89.在一种可能的实施方式中,当对数据库中目标数据表创建索引时,索引管理设备会从数据库中获取与目标字段关联的历史数据。其中,历史数据也可称为存量数据。可选的,获取与目标字段关联的历史数据具体可以是,遍历数据库中目标数据表的数据,并从中获取目标字段对应的数据。
90.可选的,索引管理设备可以是在根据第二终端设备发送的针对目标字段的索引创建请求,生成索引指示信息,并将索引指示信息发送至索引设备之后从数据库中获取与目标字段关联的历史数据,也可以是在根据第二终端设备发送的针对目标字段的索引创建请求,生成索引指示信息,并将索引指示信息发送至索引设备的同时从数据库中获取与目标字段关联的历史数据。本申请实施例对此不作限制。
91.s603、向索引设备发送携带有历史数据的第一索引同步请求。
92.其中,第一索引同步请求用于指示索引设备将历史数据同步至目标索引,并在历史数据同步完成后,向索引管理设备返回同步完成指令。可以理解的是,当索引管理设备接收到同步完成指令时,则表明目标索引创建完成。
93.进一步的,在一种可能的实施方式中,在索引管理设备向索引设备发送携带有历史数据的索引同步请求之后,以及索引管理设备检测到同步完成指令之前,即在创建目标索引和历史数据同步过程中,可能会存在有数据写入目标数据表的情况,即,若索引管理设备接收到来自第一终端设备的数据写入请求,则获取数据写入请求中携带的待写入数据,从待写入数据中获取与目标字段关联的待索引数据,并向索引设备发送携带有待索引数据的第二索引同步请求。此时,在目标索引创建完成前的待索引数据也可称为增量数据。第二索引同步请求用于指示索引设备将待索引数据同步至目标索引,并在待索引数据同步完成
后,返回写入数据同步完成指令。
94.可选的,索引管理设备从待写入数据中获取与目标字段关联的待索引数据具体实施方式可以是,索引管理设备需将待写入数据写入数据库的数据表中,若写入的数据表为目标数据表,则获取待写入数据中为目标字段对应的数据,并将待写入数据中为目标字段对应的数据确定为待索引数据。可以理解的是,当索引管理设备接收到同步完成指令和写入数据同步完成指示时,则表明目标索引创建完成。进一步的,在索引管理设备确定目标索引创建完成后,可以向第二终端设备返回索引创建成功消息,索引创建成功消息用于通知第二用户目标索引创建完成。
95.在一种可能的实施方式中,在目标索引创建完成后,若索引管理设备接收到来自第一终端设备的数据写入请求,则获取数据写入请求中携带的待写入数据,从待写入数据中获取与目标字段关联的待索引数据,并向索引设备发送携带有待索引数据的第三索引同步请求。此时,在目标索引创建完成后的待索引数据也称正常数据。第三索引同步请求用于指示索引设备将待索引数据同步至目标索引。目标索引创建完成后获取待索引数据具体方式可以参照目标索引创建完成前获取待索引数据的相关描述,此处不再赘述。需要说明的是,当索引管理设备在响应于数据写入请求得到写入结果时,将写入结果返回至第一终端设备,无需等待待同步数据同步至目标索引后再返回。
96.例如,如图8所示,图8为创建索引的具体过程,第二用户通过第二终端设备提供的创建页面发起索引创建请求,索引管理设备在接收到索引创建请求时,生成索引指示信息,并完成图中两种数据的同步,即历史数据和增量数据的同步,则表示索引创建成功,在索引创建完成之后,则进行正常数据的同步。
97.又如,如图9所示,图9为正常数据同步的具体过程,第一用户通过第一终端设备发起数据写入请求,索引管理设备获取到该数据写入请求中涉及的正常数据时,将该正常数据实时同步至索引系统的索引中。
98.可以理解的是,上述仅以第一用户发起数据写入请求为例,并不对第一用户的操作构成限制,第一用户还可以发起数据更新请求、数据删除请求。当第一用户发起数据更新请求或数据删除请求时,索引管理设备执行的步骤可以参照第一用户发起数据写入请求时执行的步骤。
99.示例性的,以目标索引创建完成后为例,当第一用户发起数据更新请求时,则获取数据更新请求中携带的更新数据,索引管理设备根据更新数据更新数据库中的数据表,若对目标数据表中的目标字段关联数据进行了更新,则获取更新了的目标字段关联数据,并向索引设备发送携带有更新了的目标字段关联数据的索引更新请求,其中,索引更新请求用于指示索引设备根据更新了的目标字段关联数据对目标索引进行更新。例如,数据表存储有交易记录信息,且其中的字段有“交易对象”、“交易金额”、“交易时间”、“交易渠道”,并对字段“交易对象”和“交易金额”建立了索引,当数据更新请求是对交易对象为“a”的“交易金额”,则将携带了待更新的交易金额数据的索引更新请求发送至索引设备,索引设备将对索引中相应的交易金额进行更新。此外,当索引管理设备在响应于数据更新请求得到更新结果时,将更新结果返回至第一终端设备,无需等待对目标索引进行更新后再返回。
100.示例性的,以目标索引创建完成后为例,当第一用户发起数据删除请求时,则获取数据删除请求中携带的待删除数据,索引管理设备根据待删除数据对数据表中的数据进行
删除,若该数据表为目标数据表,则获取待删除的目标字段关联数据,并向索引设备发送携带有待删除的目标字段关联数据的索引删除请求,其中,索引删除请求用于指示索引设备根据待删除的目标字段关联数据对目标索引中数据进行删除。例如,数据表存储有交易记录信息,且其中的字段有“交易对象”、“交易金额”、“交易时间”、“交易渠道”,并对字段“交易对象”和“交易金额”建立了索引,当数据删除请求是删除交易对象为“a”的交易记录,则将携带了待删除的交易对象、交易金额数据的索引删除请求发送至索引设备,索引设备将索引中对应的交易对象、交易金额数据进行删除。此外,当索引管理设备在响应于数据删除请求得到删除结果时,将删除结果返回至第一终端设备,无需等待对目标索引中的数据进行删除后再返回。
101.在一种可能的实施方式中,在创建索引时可以对数据表中的一个或多个字段创建索引,当需要增加或减少一个或字段时,则需要对创建的索引进行修改。例如,已建立索引的字段为“a”、“b”,当需要添加字段“c”、或者删除字段“a”时,需要对已建立索引进行修改。以目标索引的修改为例,在目标索引创建完成后,第二用户可以对索引管理设备发起针对目标索引的修改请求,索引管理设备根据该修改请求对目标索引进行修改。
102.可选的,第二用户对索引管理设备发起针对目标索引的修改请求具体可以是,第二用户通过第二终端设备提供的修改页面选择目标索引的更新字段,并向索引管理设备发送针对目标索引的修改请求,该修改请求包括针对目标索引的索引更新字段。
103.可选的,索引管理设备根据该修改请求对目标索引进行修改具体可以是,索引管理设备根据修改请求生成索引更新请求,该索引更新请求用于指示索引设备:依照索引更新字段创建新索引,删除目标索引,并返回索引切换指示信息,当索引管理设备接收到索引切换指示信息时,依照索引切换指示信息的指示将对目标索引的访问切换至新索引。其中,依照索引更新字段创建新索引的具体方式可以参见上述依照目标字段创建目标索引的相关步骤,此次不再赘述。
104.可以理解的是,当目标索引被删除,以及将访问切换至新索引时,目标索引修改完成。进一步的,在索引管理设备确定目标索引修改完成后,可以向第二终端设备返回索引修改成功消息,索引修改成功消息用于通知第二用户目标索引修改完成。例如,如图10所示,当需要修改索引时,第二用户首先在第二终端设备提供的修改页面选择需要修改的索引,以及该索引对应的索引更新字段,当索引更新字段有多个时,可以点击“+”按钮添加字段,并通过点击“提交”发起索引修改请求。
105.可选的,第二用户还可以通过第二终端设备向索引管理设备发起索引删除请求或索引重建请求。其中,索引删除请求用于让索引管理设备生成索引删除指示信息并发送至索引设备,索引删除指示信息用于指示索引设备将指定索引进行删除;索引重建请求用于让索引管理设备生成索引重建指示信息并发送至索引设备,索引重建指示信息用于指示索引设备重新创建已有索引,索引设备重建已有索引的具体方式可以参见上述依照目标字段创建目标索引的相关步骤,此处不再赘述。
106.例如,如图11所示,图11为修改索引的具体过程,第二用户通过第二终端设备提供的修改页面发起针对目标索引的修改请求,索引管理设备接收到修改请求后指示索引设备创建新索引并删除目标索引,索引管理设备将对目标索引的访问切换至新索引,则表示索引修改成功。
107.s604、向索引设备转发来自第一终端设备的数据查询请求,数据查询请求用于指示索引设备查询满足条件的查询数据。
108.s605、接收索引设备返回的上述查询数据。
109.s606、确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据。
110.s607、向第一终端设备所述目标数据。其中,步骤s604

s607的具体实施方式可以参见上述实施例中步骤s201

s204。
111.可选的,在一种可能的实施方式中,目标数据还可由索引管理设备的存储层根据数据查询请求直接从数据库中获取。在创建了索引后,可以通过访问索引实现对数据的查询,以提高查询效率。但由于只是对数据表中的一个或多个字段创建索引,因此不是所有的字段都创建了索引,也就是说,当索引管理设备接收来自第一终端设备的数据查询请求时,可以确定数据查询请求对应的查询字段,若对应的查询字段为已建立索引的字段,则执行步骤s604

s607,若对应的查询字段不为已建立索引的字段,索引管理设备则向数据库转发来自第一终端设备的数据查询请求。例如,数据表存储有交易记录信息,且其中的字段有“交易对象”、“交易金额”、“交易时间”、“交易渠道”,并对字段“交易对象”和“交易金额”建立了索引,当数据查询请求中查询条件涉及的字段为“交易金额”时,如查询总交易金额,将该数据查询请求转发给索引设备,当数据查询请求中的查询条件涉及的字段没有已建立索引的字段时,比如查询交易渠道为“wx”的全部交易记录,将该数据查询请求转发给数据库。
112.在一种可能的实施方式中,向数据库转发来自第一终端设备的数据查询请求具体实施方式可以是,索引管理设备的接入层接收到数据查询请求并确定对应的查询字段不为已建立索引的字段时,生成数据查询指令,并将该数据查询指令发送至存储层,该数据查询指令用于指示存储层查询数据库中的数据,并获取满足查询条件的目标数据。
113.进一步的,若查询字段包括多个字段,且既有已建立索引的字段又有未建立索引的字段,索引管理设备的接入层可以先将数据查询请求转发至索引设备,得到满足部分查询条件的查询数据,此时查询数据为键值数据,再生成携带有查询数据的数据查询指令,并将该携带有查询数据的数据查询指令发送至存储层,该携带有查询数据的数据查询指令用于指示存储层根据查询数据查询数据库中的数据,并从中获取满足查询条件的目标数据。例如,数据表存储有交易记录信息,且其中的字段有“交易对象”、“交易金额”、“交易时间”、“交易渠道”,并对字段“交易对象”和“交易金额”建立了索引,当数据查询请求中的查询条件包括的字段为“交易对象”和“交易时间”,如查询交易对象为“a”的交易时间为多少时,可以先将该数据查询请求转发至索引设备,得到查询交易对象“a”相应的键值数据,索引管理设备接收到查询数据时将携带有查询数据的数据查询指令发送至存储层,存储层首先可以根据键值数据查询到交易对象“a”,并从交易对象“a”的交易信息中查询交易时间,并将查询到的交易时间作为满足查询条件的目标数据。进一步的,当索引管理设备的接入层接收到存储层从数据库中获取的目标数据时,将目标数据返回至第一终端设备。
114.本申请实施例中,索引管理设备根据第二终端设备发送的针对目标字段的索引创建请求,生成索引指示信息,并将索引指示信息发送至索引设备,从数据库中获取与目标字段关联的历史数据,向索引设备发送携带有历史数据的第一索引同步请求,以实现索引的创建;索引管理设备向索引设备转发来自第一终端设备的数据查询请求,接收索引设备返
回的查询数据,确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据,向第一终端设备所述目标数据,以实现对数据的查询。通过实施上述方法,可以实现对索引的管理,以及在数据查询过程中,有效地降低索引访问时对数据读写服务的影响。
115.请参见图12,为本申请提供的一种索引管理的装置的结构示意图,该装置配置于索引管理设备,用于执行本申请图3和图6所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示,可参照本申请图3和图6所示的实施例。该索引管理的装置1200可包括:处理模块1201、接收模块1202、确定模块1203。
116.处理模块1201,用于向索引设备转发来自第一终端设备的数据查询请求,所述数据查询请求用于指示所述索引设备查询满足查询条件的查询数据;
117.接收模块1202,用于接收所述索引设备返回的所述查询数据;
118.确定模块1203,确定所述数据查询请求对应的数据查询类型,并依照所述数据查询类型和所述查询数据确定目标数据;
119.所述处理模块1201,还用于向所述第一终端设备返回所述目标数据。
120.在一种可能的实施方式中,所述数据查询类型为非聚合查询类型,所述查询数据为满足所述查询条件的键值数据,所述确定模块1203还用于:
121.若所述数据查询类型为所述非聚合查询类型,则从数据库中获取所述键值数据对应的值数据,并将所述值数据确定为目标数据。
122.在一种可能的实施方式中,所述数据查询类型为聚合查询类型,所述查询数据为满足所述查询条件的聚合值,所述确定模块1203还用于:
123.若所述数据查询类型为所述聚合查询类型,则将所述查询数据确定为目标数据。
124.在一种可能的实施方式中,所述处理模块1201在用于向索引设备转发来自第一终端设备的数据查询请求之前,还用于:
125.根据第二终端设备发送的针对目标字段的索引创建请求,生成索引指示信息,并将所述索引指示信息发送至所述索引设备,所述索引指示信息用于指示所述索引设备创建所述目标字段对应的目标索引;
126.从所述数据库中获取与所述目标字段关联的历史数据;
127.向所述索引设备发送携带有所述历史数据的第一索引同步请求,所述第一索引同步请求用于指示所述索引设备将所述历史数据同步至所述目标索引,并在所述历史数据同步完成后,返回同步完成指令。
128.在一种可能的实施方式中,所述处理模块1201在用于所述向所述索引设备发送携带有所述历史数据的索引同步请求之后,还用于:
129.在检测到所述同步完成指令之前,若接收到来自所述第一终端设备的数据写入请求,则获取所述数据写入请求中携带的待写入数据;
130.从所述待写入数据中获取与所述目标字段关联的待索引数据;
131.向所述索引设备发送携带有所述待索引数据的第二索引同步请求,所述第二索引同步请求用于指示所述索引设备将所述待索引数据同步至所述目标索引,并在所述待索引数据同步完成后,返回写入数据同步完成指令。
132.在一种可能的实施方式中,所述处理模块1201还用于:
133.接收所述第二终端设备发送的针对所述目标索引的修改请求,所述修改请求中包括针对所述目标索引的索引更新字段;
134.向所述索引设备发送针对所述目标索引的索引更新请求,所述索引更新请求用于指示所述索引设备:依照所述索引更新字段创建新索引,删除所述目标索引,并返回索引切换指示信息;
135.接收所述索引设备返回的索引切换指示信息,并依照所述索引切换指示信息的指示将对所述目标索引的访问切换至所述新索引。
136.本申请实施例中,处理模块向索引设备转发来自第一终端设备的数据查询请求,接收模块接收索引设备返回的查询数据,确定模块确定数据查询请求对应的数据查询类型,并依照数据查询类型和查询数据确定目标数据,处理模块向第一终端设备返回目标数据。通过实施上述方案,可以在数据查询过程中,有效地降低索引访问时对数据读写服务的影响。
137.在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现,本申请不做限定。
138.请参见图13,为本申请实施例提供的一种索引管理设备的结构示意图。如图13所示,该索引管理设备1300包括:至少一个处理1301、存储器1302。可选的,该电子设备还可包括网络接口1303。其中,所述处理器1301、存储器1302以及网络接口1303之间可以交互数据,网络接口1303受所述处理器的控制用于收发消息,存储器1302用于存储计算机程序,所述计算机程序包括程序指令,处理器1301用于执行存储器1302存储的程序指令。其中,处理器1301被配置用于调用所述程序指令执行上述方法。
139.所述存储器1302可以包括易失性存储器(volatile memory),例如随机存取存储器(random

access memory,ram);存储器1302也可以包括非易失性存储器(non

volatile memory),例如快闪存储器(flash memory),固态硬盘(solid

state drive,ssd)等;所述存储器1302还可以包括上述种类的存储器的组合。
140.所述处理器1301可以是中央处理器1301(central processing unit,cpu)。在一个实施例中,所述处理器1301还可以是图形处理器1301(graphics processing unit,gpu)。所述处理器1301也可以是由cpu和gpu的组合。
141.在一个实施例中,所述存储器1302用于存储程序指令。所述处理器1301可以调用所述程序指令,执行以下步骤:
142.向索引设备转发来自第一终端设备的数据查询请求,所述数据查询请求用于指示所述索引设备查询满足查询条件的查询数据;
143.接收所述索引设备返回的所述查询数据;
144.确定所述数据查询请求对应的数据查询类型,并依照所述数据查询类型和所述查询数据确定目标数据;
145.向所述第一终端设备返回所述目标数据。
146.在一种可能的实施方式中,所述数据查询类型为非聚合查询类型,所述查询数据为满足所述查询条件的键值数据,所述处理器1301还用于:
147.若所述数据查询类型为所述非聚合查询类型,则从数据库中获取所述键值数据对
应的值数据,并将所述值数据确定为目标数据。
148.在一种可能的实施方式中,所述数据查询类型为聚合查询类型,所述查询数据为满足所述查询条件的聚合值,所述处理器1301还用于:
149.若所述数据查询类型为所述聚合查询类型,则将所述查询数据确定为目标数据。
150.在一种可能的实施方式中,所述处理器1301在用于向索引设备转发来自第一终端设备的数据查询请求之前,还用于:
151.根据第二终端设备发送的针对目标字段的索引创建请求,生成索引指示信息,并将所述索引指示信息发送至所述索引设备,所述索引指示信息用于指示所述索引设备创建所述目标字段对应的目标索引;
152.从所述数据库中获取与所述目标字段关联的历史数据;
153.向所述索引设备发送携带有所述历史数据的第一索引同步请求,所述第一索引同步请求用于指示所述索引设备将所述历史数据同步至所述目标索引,并在所述历史数据同步完成后,返回同步完成指令。
154.在一种可能的实施方式中,所述处理器1301在用于向所述索引设备发送携带有所述历史数据的索引同步请求之后,还用于:
155.在检测到所述同步完成指令之前,若接收到来自所述第一终端设备的数据写入请求,则获取所述数据写入请求中携带的待写入数据;
156.从所述待写入数据中获取与所述目标字段关联的待索引数据;
157.向所述索引设备发送携带有所述待索引数据的第二索引同步请求,所述第二索引同步请求用于指示所述索引设备将所述待索引数据同步至所述目标索引,并在所述待索引数据同步完成后,返回写入数据同步完成指令。
158.在一种可能的实施方式中,所述处理器1301还用于:
159.接收所述第二终端设备发送的针对所述目标索引的修改请求,所述修改请求中包括针对所述目标索引的索引更新字段;
160.向所述索引设备发送针对所述目标索引的索引更新请求,所述索引更新请求用于指示所述索引设备:依照所述索引更新字段创建新索引,删除所述目标索引,并返回索引切换指示信息;
161.接收所述索引设备返回的索引切换指示信息,并依照所述索引切换指示信息的指示将对所述目标索引的访问切换至所述新索引。
162.具体实现中,本申请实施例中所描述的装置、处理器1301、存储器1302等可执行上述方法实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。
163.本申请实施例中还提供一种计算机(可读)存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,可执行上述方法实施例中所执行的部分或全部步骤。可选的,该计算机存储介质可以是易失性的,也可以是非易失性的。
164.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
165.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机存储介质中,该计算机存储介质可以为计算机可读存储介质,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)或随机存储记忆体(random access memory,ram)等。
166.以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1