CN110019080B - 数据访问方法和装置 - Google Patents
数据访问方法和装置 Download PDFInfo
- Publication number
- CN110019080B CN110019080B CN201710573802.5A CN201710573802A CN110019080B CN 110019080 B CN110019080 B CN 110019080B CN 201710573802 A CN201710573802 A CN 201710573802A CN 110019080 B CN110019080 B CN 110019080B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- target
- indexes
- data access
- 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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了数据访问方法和装置。该方法的一具体实施方式包括:加载预置的配置文件以配置搜索服务器集群,其中,该搜索服务器集群涉及多个索引,该多个索引中的每一个索引包含至少一个分片,该至少一个分片用于存储数据,该配置文件记录有该多个索引中的每一个索引与封装有数据操作方法的封装类的映射;响应于接收到包含用户身份标识的数据访问指令,确定该多个索引中的、与该用户身份标识相匹配的目标索引,并确定该目标索引中的、与该用户身份标识相匹配的目标分片;基于与该目标索引存在映射关系的封装类,对该目标分片中所存储数据进行访问。该实施方式提高了数据访问的灵活性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及数据访问方法和装置。
背景技术
随着计算机技术的发展,搜索服务器的种类越来越多,其中,用于分布式全文检索的搜索引擎(例如用于分布式全文检索的搜索引擎Elasticsearch)的应用越来越广泛。通常,在利用上述搜索引擎进行数据访问时,需要路由索引和分片,进而进行数据操作。
现有的方式通常通过预先创建封装有数据操作方法的基类以及继承该基类且分别对应各个索引的继承类来进行数据操作,每多加入一个索引,就需要预先创建一个继承该基类的继承类,并增加复杂的判断逻辑等。在每次进行数据访问时,需要执行上述判断逻辑,导致数据访问的灵活性较低。
发明内容
本申请实施例的目的在于提出一种改进的数据访问方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种数据访问方法,该方法包括:加载预置的配置文件以配置搜索服务器集群,其中,搜索服务器集群涉及多个索引,多个索引中的每一个索引包含至少一个分片,至少一个分片用于存储数据,配置文件记录有多个索引中的每一个索引与封装有数据操作方法的封装类的映射;响应于接收到包含用户身份标识的数据访问指令,确定多个索引中的、与用户身份标识相匹配的目标索引,并确定目标索引中的、与用户身份标识相匹配的目标分片;基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问。
在一些实施例中,配置文件还记录有搜索服务器集群的节点信息、集群名称、索引数量和多个索引中的各个索引的属性信息。
在一些实施例中,确定多个索引中的、与用户身份标识相匹配的目标索引,包括:对用户身份标识和索引数量进行取模计算,得到第一余数;将多个索引中的、脚标与第一余数相同的索引确定为目标索引。
在一些实施例中,确定目标索引中的、与用户身份标识相匹配的目标分片,包括:利用哈希函数对用户身份标识进行处理,得到处理结果;对处理结果和目标索引中主分片数量进行取模计算,得到第二余数;将目标索引中的、编号与第二余数相同的主分片确定为目标分片。
在一些实施例中,基于与目标索引相匹配的封装类对目标分片中所存储数据进行访问,包括:对与目标索引相匹配的封装类进行实例化,确定与数据访问请求相对应的数据操作方法;利用数据操作方法对目标分片中所存储数据进行操作。
第二方面,本申请实施例提供了一种数据访问装置,该装置包括:加载单元,配置用于加载预置的配置文件以配置搜索服务器集群,其中,搜索服务器集群涉及多个索引,多个索引中的每一个索引包含至少一个分片,至少一个分片用于存储数据,配置文件记录有多个索引中的每一个索引与封装有数据操作方法的封装类的映射;确定单元,配置用于响应于接收到包含用户身份标识的数据访问指令,确定多个索引中的、与用户身份标识相匹配的目标索引,并确定目标索引中的、与用户身份标识相匹配的目标分片;访问单元,配置用于基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问。
在一些实施例中,配置文件还记录有搜索服务器集群的节点信息、集群名称、索引数量和多个索引中的各个索引的属性信息。
在一些实施例中,确定单元包括:第一取模模块,配置用于对用户身份标识和索引数量进行取模计算,得到第一余数;第一确定模块,配置用于将多个索引中的、脚标与第一余数相同的索引确定为目标索引。
在一些实施例中,确定单元包括:处理模块,配置用于利用哈希函数对用户身份标识进行处理,得到处理结果;第二取模模块,配置用于对处理结果和目标索引中主分片数量进行取模计算,得到第二余数;第二确定模块,配置用于将目标索引中的、编号与第二余数相同的主分片确定为目标分片。
在一些实施例中,访问单元包括:第三确定模块,配置用于对与目标索引相匹配的封装类进行实例化,确定与数据访问请求相对应的数据操作方法;操作模块,配置用于利用数据操作方法对目标分片中所存储数据进行操作。
第三方面,本申请实施例提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如数据访问方法中任一实施例的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如数据访问方法中任一实施例的方法。
本申请实施例提供的数据访问方法和装置,通过加载预置的配置文件以配置搜索服务器集群,而后响应于接收到包含用户身份标识的数据访问指令,确定目标索引,进而确定目标分片,最后基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问,从而避免在每次进行数据访问时,执行复杂的判断逻辑,提高了数据访问的灵活性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的数据访问方法的一个实施例的流程图;
图3是根据本申请的数据访问方法的一个应用场景的示意图;
图4是根据本申请的数据访问方法的又一个实施例的流程图;
图5是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的数据访问方法或数据访问装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如执行终端设备101、102、103所发送的数据访问指令所指示的数据访问操作的数据访问服务器。数据管理服务器可以加载配置文件以配置搜索服务器集群(图中未示出),还可以对接收到的数据访问指令等数据进行分析等处理,并执行对数据执行相应操作。
需要说明的是,本申请实施例所提供的数据访问方法一般由服务器105执行,相应地,数据访问装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的数据访问方法的一个实施例的流程200。所述的数据访问方法,包括以下步骤:
步骤201,加载预置的配置文件以配置搜索服务器集群。
在本实施例中,数据访问方法运行与其上的电子设备(例如图1所示的服务器105)可以加载预置的配置文件以配置搜索服务器集群(cluster)(例如基于搜索引擎Elasticsearch搭建的搜索服务器集群),其中,上述搜索服务器集群涉及多个索引(index),上述多个索引中的每一个索引可以包含至少一个分片(shard),上述至少一个分片可以用于存储数据,上述配置文件可以记录有多个索引中的每一个索引与封装有数据操作方法的封装类的映射。此处,上述数据操作方法可以是增加数据、删除数据、修改数据、查询数据等操作方法。上述封装类可以是技术人员预先制定的、封装有任意数据操作方法的类。
需要说明的是,搜索服务器集群中可以包含多个节点,上述多个节点中可以有一个主节点,上述主节点可以是通过选举产生的。一个索引可以是一个拥有相似特征(例如均为客户数据、均为产品信息或均为订单数据)的文档的集合。其中,文档是可被索引的基础信息单元,文档通常以JSON(JavaScript Object Notation,JavaScript对象标记语言)格式来表示。
需要指出的是,在一个基于搜索引擎Elasticsearch搭建的搜索服务器集群中,可以创建任意多的索引。在一个索引中,可以存储任意多的文档。一个索引可以被分为多个分片,上述多个分片可以分布到不同的节点上。此外,索引也可以被复制,当索引为复制时,则该索引的分片被划分为主分片(作为复制源的分片)和复制分片(主分片的复制)。
通常,一个索引由一个名字(通常由小写字母构成)来标识,当对该索引中的文档进行搜索、更新、修改、删除等操作时需要使用该名字。在一个索引中,可以定义一种或多种类型(type)。每一种类型可以是该索引的一个逻辑上的分类/分区,通常将一组相同字段的文档定义同一个类型。例如,对于博客平台而言,可以将该博客平台产生的数据存储到一个索引中,在该索引中可以为用户数据定义一个类型,为博客数据定义另一个类型。实践中,一个文档物理上存储在一个索引之中,但文档也须被赋予一个索引的类型。
在本实施例的一些可选的实现方式中,上述配置文件还可以记录有上述搜索服务器集群的节点信息、集群名称、索引数量和上述多个索引中的各个索引的属性信息。其中,属性信息可以包括但不限于索引的类型、索引的超时时间等。
在本实施例的一些可选的实现方式中,上述电子设备可以基于开源的、轻量级的Java开发框架(例如spring)动态注入上述配置文件中的集群名称、节点信息,以配置搜搜服务器集群。实践中,上述电子设备可以通过指定标签(例如用于实例化Elasticsearch操作客户端的标签<elasticsearch:transport-client>)建立与搜索服务器集群之间的通道。此外,上述电子设备可以利用同样的方式动态注入索引数据、各个索引的属性信息、每一个索引与封装有数据操作方法的封装类的映射等。
步骤202,响应于接收到包含用户身份标识的数据访问指令,确定多个索引中的、与用户身份标识相匹配的目标索引,并确定目标索引中的、与用户身份标识相匹配的目标分片。
在本实施例中,上述电子设备响应于接收到包含用户身份标识的数据访问指令,可以确定上述多个索引中的、与上述用户身份标识相匹配的目标索引,并确定目标索引中的、与用户身份标识相匹配的目标分片。其中,上述用户身份标识可以是用户的账号等。上述电子设备可以利用各种方式确定与上述用户身份标识相匹配的目标索引和目标分片。作为示例,上述电子设备中可以预先存储有各个用户身份标识与相应的目标索引的对应关系表以及各个用户身份标识与相应的目标索引中的目标分片的对应关系表,上述电子设备可以直接从上述预先存储的对应关系表中进行查询,确定相匹配的目标索引和目标分片。
在本实施例的一些可选的实现方式中,上述电子设备可以按照以下步骤确定目标索引:首先,可以确定上述服务器集群所涉及的索引的索引数量;而后,可以对上述用户身份标识和上述索引数量进行取模计算,得到第一余数;最后,将上述多个索引中的、脚标与上述第一余数相同的索引确定为目标索引。
在本实施例的一些可选的实现方式中,上述电子设备可以按照以下步骤确定目标分片:首先,可以利用哈希(hash)函数对上述用户身份标识进行处理,得到处理结果。实践中,可以将上述用户身份标识作为哈希函数的输入,哈希函数即使用散列算法,变换成固定长度的输出,该输出即为上述处理结果。之后,可以对上述处理结果和上述目标索引中主分片数量进行取模计算,得到第二余数。最后,可以将上述目标索引中的、编号与上述第二余数相同的主分片确定为目标分片。需要说明的是,上述目标索引中的主分片可以带有编号(例如0、1、2等)。
需要说明的是,利用哈希函数进行数据处理的方法是目前广泛研究和应用的公知技术,在此不再赘述。
步骤203,基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问。
在本实施例中,上述电子设备可以基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问。具体的,由于封装类中封装了数据操作方法,因而,上述电子设备可以提取与上述数据访问指令所指示的数据操作相对应的数据操作方法,并利用所提取的数据操作方法进行数据访问。
在本实施例的一些可选的实现方式中,上述电子设备可以首先对与上述目标索引相匹配的封装类进行实例化,确定与上述数据访问请求相对应的数据操作方法;而后,可以利用所确定的数据操作方法对上述目标分片中所存储数据进行操作。
继续参见图3,图3是根据本实施例的数据访问方法的应用场景的一个示意图。在图3的应用场景中,服务器301首先加载了配置文件302,以配置搜索服务器集群303;而后,服务器301响应于接收到终端设备304发送的数据访问指令305,确定出目标索引306,进而,确定出目标分片307;最后,服务器301基于与上述目标索引存在映射关系的封装类,对上述目标分片中所存储数据进行访问。
本申请的上述实施例提供的方法,通过加载预置的配置文件以配置搜索服务器集群,而后响应于接收到包含用户身份标识的数据访问指令,确定目标索引,进而确定目标分片,最后基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问,从而避免在每次进行数据访问时,执行复杂的判断逻辑,提高了数据访问的灵活性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种数据访问装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的数据访问装置400包括:加载单元401,配置用于加载预置的配置文件以配置搜索服务器集群,其中,上述搜索服务器集群涉及多个索引,上述多个索引中的每一个索引包含至少一个分片,上述至少一个分片用于存储数据,上述配置文件记录有上述多个索引中的每一个索引与封装有数据操作方法的封装类的映射;确定单元402,配置用于响应于接收到包含用户身份标识的数据访问指令,确定上述多个索引中的、与上述用户身份标识相匹配的目标索引,并确定上述目标索引中的、与上述用户身份标识相匹配的目标分片;访问单元403,配置用于基于与上述目标索引存在映射关系的封装类,对上述目标分片中所存储数据进行访问。
在本实施例中,上述加载单元401可以加载预置的配置文件以配置搜索服务器集群,其中,上述搜索服务器集群涉及多个索引,上述多个索引中的每一个索引可以包含至少一个分片,上述至少一个分片可以用于存储数据,上述配置文件可以记录有多个索引中的每一个索引与封装有数据操作方法的封装类的映射。此处,上述数据操作方法可以是增加数据、删除数据、修改数据、查询数据等操作方法。上述封装类可以是技术人员预先制定的、封装有任意数据操作方法的类。
在本实施例中,上述确定单元402响应于接收到包含用户身份标识的数据访问指令,可以确定上述多个索引中的、与上述用户身份标识相匹配的目标索引,并确定目标索引中的、与用户身份标识相匹配的目标分片。上述确定单元402可以利用各种方式确定与上述用户身份标识相匹配的目标索引和目标分片。作为示例,上述电子设备中可以预先存储有各个用户身份标识与相应的目标索引的对应关系表以及各个用户身份标识与相应的目标索引中的目标分片的对应关系表,上述电子设备可以直接从上述预先存储的对应关系表中进行查询,确定相匹配的目标索引和目标分片。
在本实施例中,上述访问单元403可以基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问。具体的,由于封装类中封装了数据操作方法,因而,上述访问单元403可以提取与上述数据访问指令所指示的数据操作相对应的数据操作方法,并利用所提取的数据操作方法进行数据访问。
在本实施例的一些可选的实现方式中,上述配置文件还可以记录有上述搜索服务器集群的节点信息、集群名称、索引数量和上述多个索引中的各个索引的属性信息。
在本实施例的一些可选的实现方式中,上述确定单元402可以包括第一取模模块和第一确定模块(图中未示出)。其中,上述第一取模模块可以配置用于对上述用户身份标识和上述索引数量进行取模计算,得到第一余数。上述第一确定模块可以配置用于将上述多个索引中的、脚标与上述第一余数相同的索引确定为目标索引。
在本实施例的一些可选的实现方式中,上述确定单元402可以包括处理模块、第二取模模块和第二确定模块(图中未示出)。其中,上述处理模块可以配置用于利用哈希函数对上述用户身份标识进行处理,得到处理结果。上述第二取模模块可以配置用于对上述处理结果和上述目标索引中主分片数量进行取模计算,得到第二余数。上述第二确定模块可以配置用于将上述目标索引中的、编号与上述第二余数相同的主分片确定为目标分片。
在本实施例的一些可选的实现方式中,上述访问单元403可以包括第三确定模块和操作模块(图中未示出)。其中,上述第三确定模块可以配置用于对与上述目标索引相匹配的封装类进行实例化,确定与上述数据访问请求相对应的数据操作方法。上述操作模块可以配置用于利用上述数据操作方法对上述目标分片中所存储数据进行操作。
本申请的上述实施例提供的装置,通过加载单元401加载预置的配置文件以配置搜索服务器集群,而后确定单元402响应于接收到包含用户身份标识的数据访问指令,确定目标索引,进而确定目标分片,最后访问单元403基于与目标索引存在映射关系的封装类,对目标分片中所存储数据进行访问,从而避免在每次进行数据访问时,执行复杂的判断逻辑,提高了数据访问的灵活性。
下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。图5示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括加载单元、确定单元和访问单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,加载单元还可以被描述为“加载预置的配置文件的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:加载预置的配置文件以配置搜索服务器集群,其中,该搜索服务器集群涉及多个索引,该多个索引中的每一个索引包含至少一个分片,该至少一个分片用于存储数据,该配置文件记录有该多个索引中的每一个索引与封装有数据操作方法的封装类的映射;响应于接收到包含用户身份标识的数据访问指令,确定该多个索引中的、与该用户身份标识相匹配的目标索引,并确定该目标索引中的、与该用户身份标识相匹配的目标分片;基于与该目标索引存在映射关系的封装类,对该目标分片中所存储数据进行访问。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种数据访问方法,其特征在于,所述方法包括:
加载预置的配置文件以配置搜索服务器集群,其中,所述搜索服务器集群涉及多个索引,所述多个索引中的每一个索引包含至少一个分片,所述至少一个分片用于存储数据,所述配置文件记录有所述多个索引中的每一个索引与封装有数据操作方法的封装类的映射,所述数据操作方法包括增加数据、删除数据、修改数据、查询数据的操作方法;
响应于接收到包含用户身份标识的数据访问指令,确定所述多个索引中的、与所述用户身份标识相匹配的目标索引,并确定所述目标索引中的、与所述用户身份标识相匹配的目标分片;
基于与所述目标索引存在映射关系的封装类,提取与所述数据访问指令所指示的数据操作相对应的数据操作方法,对所述目标分片中所存储数据进行访问。
2.根据权利要求1所述的数据访问方法,其特征在于,所述配置文件还记录有所述搜索服务器集群的节点信息、集群名称、索引数量和所述多个索引中的各个索引的属性信息。
3.根据权利要求2所述的数据访问方法,其特征在于,所述确定所述多个索引中的、与所述用户身份标识相匹配的目标索引,包括:
对所述用户身份标识和所述索引数量进行取模计算,得到第一余数;
将所述多个索引中的、脚标与所述第一余数相同的索引确定为目标索引。
4.根据权利要求2或3所述的数据访问方法,其特征在于,所述确定所述目标索引中的、与所述用户身份标识相匹配的目标分片,包括:
利用哈希函数对所述用户身份标识进行处理,得到处理结果;
对所述处理结果和所述目标索引中主分片数量进行取模计算,得到第二余数;
将所述目标索引中的、编号与所述第二余数相同的主分片确定为目标分片。
5.根据权利要求1所述的数据访问方法,其特征在于,所述基于与所述目标索引相匹配的封装类对所述目标分片中所存储数据进行访问,包括:
对与所述目标索引相匹配的封装类进行实例化,确定与所述数据访问请求相对应的数据操作方法;
利用所述数据操作方法对所述目标分片中所存储数据进行操作。
6.一种数据访问装置,其特征在于,所述装置包括:
加载单元,配置用于加载预置的配置文件以配置搜索服务器集群,其中,所述搜索服务器集群涉及多个索引,所述多个索引中的每一个索引包含至少一个分片,所述至少一个分片用于存储数据,所述配置文件记录有所述多个索引中的每一个索引与封装有数据操作方法的封装类的映射,所述数据操作方法包括增加数据、删除数据、修改数据、查询数据的操作方法;
确定单元,配置用于响应于接收到包含用户身份标识的数据访问指令,确定所述多个索引中的、与所述用户身份标识相匹配的目标索引,并确定所述目标索引中的、与所述用户身份标识相匹配的目标分片;
访问单元,配置用于基于与所述目标索引存在映射关系的封装类,提取与所述数据访问指令所指示的数据操作相对应的数据操作方法,对所述目标分片中所存储数据进行访问。
7.根据权利要求6所述的数据访问装置,其特征在于,所述配置文件还记录有所述搜索服务器集群的节点信息、集群名称、索引数量和所述多个索引中的各个索引的属性信息。
8.根据权利要求7所述的数据访问装置,其特征在于,所述确定单元包括:
第一取模模块,配置用于对所述用户身份标识和所述索引数量进行取模计算,得到第一余数;
第一确定模块,配置用于将所述多个索引中的、脚标与所述第一余数相同的索引确定为目标索引。
9.根据权利要求6或7所述的数据访问装置,其特征在于,所述确定单元包括:
处理模块,配置用于利用哈希函数对所述用户身份标识进行处理,得到处理结果;
第二取模模块,配置用于对所述处理结果和所述目标索引中主分片数量进行取模计算,得到第二余数;
第二确定模块,配置用于将所述目标索引中的、编号与所述第二余数相同的主分片确定为目标分片。
10.根据权利要求6所述的数据访问装置,其特征在于,所述访问单元包括:
第三确定模块,配置用于对与所述目标索引相匹配的封装类进行实例化,确定与所述数据访问请求相对应的数据操作方法;
操作模块,配置用于利用所述数据操作方法对所述目标分片中所存储数据进行操作。
11.一种服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710573802.5A CN110019080B (zh) | 2017-07-14 | 2017-07-14 | 数据访问方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710573802.5A CN110019080B (zh) | 2017-07-14 | 2017-07-14 | 数据访问方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019080A CN110019080A (zh) | 2019-07-16 |
CN110019080B true CN110019080B (zh) | 2021-11-12 |
Family
ID=67185818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710573802.5A Active CN110019080B (zh) | 2017-07-14 | 2017-07-14 | 数据访问方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019080B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704183B (zh) * | 2019-09-18 | 2021-01-08 | 深圳前海大数金融服务有限公司 | 数据处理方法、系统及计算机可读存储介质 |
CN110704453B (zh) * | 2019-10-15 | 2022-05-06 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据查询方法、装置、存储介质及电子设备 |
CN112948446B (zh) * | 2019-11-26 | 2024-08-16 | 北京京东振世信息技术有限公司 | 一种匹配产品单据的方法和装置 |
CN111026709B (zh) * | 2019-12-10 | 2024-03-12 | 中盈优创资讯科技有限公司 | 基于集群访问的数据处理方法及装置 |
CN113111119B (zh) * | 2020-01-13 | 2024-04-12 | 北京京东振世信息技术有限公司 | 一种操作数据的方法和装置 |
CN111814020A (zh) * | 2020-06-23 | 2020-10-23 | 五八有限公司 | 一种数据的获取方法和装置 |
CN112052367B (zh) * | 2020-07-23 | 2024-09-13 | 北京三快在线科技有限公司 | 一种搜索方法、装置、电子设备及存储介质 |
CN112613009A (zh) * | 2020-12-28 | 2021-04-06 | 杭州涂鸦信息技术有限公司 | 数据中心访问方法、客户端及计算机存储介质 |
CN112817980B (zh) * | 2021-02-05 | 2024-06-11 | 腾讯科技(深圳)有限公司 | 一种数据索引处理方法、装置、设备及存储介质 |
CN113177050B (zh) * | 2021-05-18 | 2023-04-25 | 浙江大华技术股份有限公司 | 一种数据均衡的方法、装置、查询系统及存储介质 |
CN115712660B (zh) * | 2022-01-29 | 2023-05-30 | 杭州宇信数字科技有限公司 | 数据存储方法、装置、服务器及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467570A (zh) * | 2010-11-17 | 2012-05-23 | 日电(中国)有限公司 | 用于分布式数据仓库的连接查询系统和方法 |
CN102955798A (zh) * | 2011-08-25 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 一种基于搜索引擎的搜索方法及搜索服务器 |
CN103365914A (zh) * | 2012-04-10 | 2013-10-23 | 北京易盟天地信息技术有限公司 | 基于搜索引擎的数据库查询系统和方法 |
CN105117439A (zh) * | 2015-08-11 | 2015-12-02 | 小米科技有限责任公司 | 全局标识生成方法及装置 |
CN106055622A (zh) * | 2016-05-26 | 2016-10-26 | 浪潮软件集团有限公司 | 一种数据搜索方法及系统 |
CN106484877A (zh) * | 2016-10-14 | 2017-03-08 | 东北大学 | 一种基于hdfs的文件检索系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459881B2 (en) * | 2015-02-27 | 2019-10-29 | Podium Data, Inc. | Data management platform using metadata repository |
-
2017
- 2017-07-14 CN CN201710573802.5A patent/CN110019080B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467570A (zh) * | 2010-11-17 | 2012-05-23 | 日电(中国)有限公司 | 用于分布式数据仓库的连接查询系统和方法 |
CN102955798A (zh) * | 2011-08-25 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 一种基于搜索引擎的搜索方法及搜索服务器 |
CN103365914A (zh) * | 2012-04-10 | 2013-10-23 | 北京易盟天地信息技术有限公司 | 基于搜索引擎的数据库查询系统和方法 |
CN105117439A (zh) * | 2015-08-11 | 2015-12-02 | 小米科技有限责任公司 | 全局标识生成方法及装置 |
CN106055622A (zh) * | 2016-05-26 | 2016-10-26 | 浪潮软件集团有限公司 | 一种数据搜索方法及系统 |
CN106484877A (zh) * | 2016-10-14 | 2017-03-08 | 东北大学 | 一种基于hdfs的文件检索系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019080A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019080B (zh) | 数据访问方法和装置 | |
US9634902B1 (en) | Bloom filter index for device discovery | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
CN109189857B (zh) | 基于区块链的数据共享系统、方法和装置 | |
CN110471848B (zh) | 一种动态返回报文的方法和装置 | |
CN112835904A (zh) | 一种数据处理方法和数据处理装置 | |
CN113626223A (zh) | 一种接口调用方法和装置 | |
CN113076153A (zh) | 一种接口调用方法和装置 | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN111258988A (zh) | 资产管理方法、装置、电子设备以及介质 | |
US9449036B2 (en) | Handling an increase in transactional data without requiring relocation of preexisting data between shards | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN110795741A (zh) | 对数据进行安全性处理的方法和装置 | |
CN110851343A (zh) | 一种基于决策树的测试方法和装置 | |
CN110109912A (zh) | 一种标识符生成方法和装置 | |
CN112214500A (zh) | 数据对比的方法、装置、电子设备和存储介质 | |
CN110705935B (zh) | 一种物流单据的处理方法和装置 | |
CN113704242A (zh) | 一种数据处理方法和装置 | |
CN112817799A (zh) | 一种基于Spring框架的访问多数据源的方法及装置 | |
CN113722007A (zh) | Vpn分支设备的配置方法、装置及系统 | |
CN111737218A (zh) | 一种共享文件的方法及装置 | |
CN113127416A (zh) | 数据查询方法和装置 | |
CN113448652A (zh) | 一种请求处理方法和装置 | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
CN113312053A (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 |