CN111813801A - 一种数据检索方法及装置 - Google Patents
一种数据检索方法及装置 Download PDFInfo
- Publication number
- CN111813801A CN111813801A CN202010944103.9A CN202010944103A CN111813801A CN 111813801 A CN111813801 A CN 111813801A CN 202010944103 A CN202010944103 A CN 202010944103A CN 111813801 A CN111813801 A CN 111813801A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- retrieval
- index
- lucene
- 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
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/24—Querying
- G06F16/245—Query 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/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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据检索方法及装置,涉及数据处理技术领域。该方法包括:接收检索请求,检索请求包含检索条件,用于请求输出数据集合中与检索条件匹配的数据;从Lucene数据中提取与检索条件匹配的目标索引,Lucene数据包括数据集合中每一条数据的索引,以及每一条索引对应的数据的标识;根据目标索引获取目标标识,目标标识为目标索引对应的数据的标识;从Rocksdb数据中读取与目标标识对应的目标数据,Rocksdb数据包括数据集合中的每一条数据,以及每一条数据的标识;输出目标数据。本发明实施例用于灵活且快速的从数据集合中提取目标数据。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据检索方法及装置。
背景技术
随着互联网技术和信息技术在全球范围内的飞速发展,信息的数据量呈现一种爆炸式增涨的态势,人们在享受海量数据带来的便利的同时,也不可避免的遇到难以快速获取目标数据的问题,因此如何从海量数据中快速提取目标数据成为了本领域的重点研究项目之一。
数据检索是指根据用户需求从数据集合中提取目标数据的过程。现有技术中的一种数据检索方式为:基于Rocksdb的数据检索方式。具体的,Rocksdb是一种关键字-值(key-value,KV)存储,可以通过KV存储的方式存储数据集合中的数据,并通过key快速从存储的数据中定位和查找目标数据,然而基于Rocksdb的数据检索方式只能通过key定位和查找数据,并不支持其他方式的检索,灵活性非常差,难以满足数据检索过程中的灵活性需求。现有技术中的另一种数据检索方式为:基于Lucene的数据检索方式。具体的,Lucene是一个全文搜索工具,其通过倒排链表和列存储的方式索引数据,可以进行全文检索,也可以指定字段做精确匹配,还可以支持多种查询条件组合,提供了丰富灵活的查询接口。然而, Lucene虽然可以支持灵活的对数据进行检索,但Lucene的数据存储机制较为复杂和繁琐,存储数据集合中的全部数据会对Lucene性能造成较大的影响,难以满足数据检索过程中的实时性需求。
综上,现有技术中缺少能够灵活且快速的从数据集合中提取目标数据的检索方式,本领域亟需开发一种能够灵活其快速的从数据集合中提取目标数据的检索方式。
发明内容
有鉴于此,本发明提供了一种数据检索方法及装置,用于灵活且快速的从数据集合中提取目标数据。
为了实现上述目的,本发明实施例提供技术方案如下:
第一方面,本发明的实施例提供一种数据检索方法,包括:
接收检索请求,所述检索请求包含检索条件,用于请求输出数据集合中与所述检索条件匹配的数据;
从Lucene数据中提取与所述检索条件匹配的目标索引,所述Lucene数据包括所述数据集合中每一条数据的索引,以及每一条索引对应的数据的标识;
根据所述目标索引获取目标标识,所述目标标识为所述目标索引对应的数据的标识;
从Rocksdb数据中读取与所述目标标识对应的目标数据,所述Rocksdb数据包括所述数据集合中的每一条数据,以及每一条数据的标识;
输出所述目标数据。
作为本发明实施例一种可选的实施方式,所述Lucene数据和Rocksdb数据均存储于HDFS中;
所述HDFS的每一个数据分片中均存储有所述Lucene数据和所述Rocksdb数据,且写入同一数据分片的所述Lucene数据和所述Rocksdb数据对应所述数据集合中的相同数据。
作为本发明实施例一种可选的实施方式,所述方法还包括:
接收新增数据请求,所述新增数据请求携带有新增数据,用于请求将所述新增数据添加到所述数据集合中;
将所述新增数据切分为至少一个数据块;
生成每一个数据块对应的索引数据和存储数据,任一数据块对应的索引数据包括该数据块中每一条数据的索引以及每一条索引对应的数据的标识,任一数据块对应的存储数据包括该数据块中的每一条数据以及每一条数据的标识;
将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
作为本发明实施例一种可选的实施方式,所述将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中,包括:
基于两阶段提交协议将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
作为本发明实施例一种可选的实施方式,在从Lucene数据中提取与所述检索条件匹配的目标索引之前,所述方法还包括:
将所述检索条件转换为Lucene的检索语法的检索条件。
作为本发明实施例一种可选的实施方式,所述从Lucene数据中提取与所述检索条件匹配的目标索引包括:通过Hubble数据库检索工具从所述Lucene数据中提取与所述检索条件匹配的目标索引;
和/或;
所述从Rocksdb数据中读取与所述目标标识对应的目标数据包括:通过Hubble数据库检索工具从所述Rocksdb数据中读取与所述目标标识对应的目标数据。
作为本发明实施例一种可选的实施方式,
所述接收检索请求,包括:接收客户端发送的检索请求;
所述输出所述目标数据,包括:向所述客户端发送所述目标数据。
第二方面,本发明实施例提供一种数据检索装置,包括:
接收单元,用于接收检索请求,所述检索请求包含检索条件,用于请求输出数据集合中与所述检索条件匹配的数据;
第一检索单元,用于从Lucene数据中提取与所述检索条件匹配的目标索引,所述Lucene数据包括所述数据集合中每一条数据的索引,以及每一条索引对应的数据的标识;
获取单元,用于根据所述目标索引获取目标标识,所述目标标识为所述目标索引对应的数据的标识;
第二检索单元,用于从Rocksdb数据中读取与所述目标标识对应的目标数据,所述Rocksdb数据包括所述数据集合中的每一条数据,以及每一条数据的标识;
输出单元,用于输出所述目标数据。
作为本发明实施例一种可选的实施方式,所述Lucene数据和Rocksdb数据均存储于HDFS中;
所述HDFS的每一个数据分片中均存储有所述Lucene数据和所述Rocksdb数据,且写入同一数据分片的所述Lucene数据和所述Rocksdb数据对应所述数据集合中的相同数据。
作为本发明实施例一种可选的实施方式,所述数据检索装置还包括:处理单元和写入单元;
所述接收单元,还用于接收新增数据请求,所述新增数据请求携带有新增数据,用于请求将所述新增数据添加到所述数据集合中;
所述处理单元,用于将所述新增数据切分为至少一个数据块,以及生成每一个数据块对应的索引数据和存储数据,任一数据块对应的索引数据包括该数据块中每一条数据的索引以及每一条索引对应的数据的标识,任一数据块对应的存储数据包括该数据块中的每一条数据以及每一条数据的标识;
所述写入单元,用于将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
作为本发明实施例一种可选的实施方式,所述写入单元,具体用于基于两阶段提交协议将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
作为本发明实施例一种可选的实施方式,所述第一检索单元,还用于在从Lucene数据中提取与所述检索条件匹配的目标索引之前,将所述检索条件转换为Lucene的检索语法的检索条件。
作为本发明实施例一种可选的实施方式,
所述第一检索单元,具体用于通过Hubble数据库检索工具从所述Lucene数据中提取与所述检索条件匹配的目标索引;
和/或;
所述第二检索单元,具体用于通过Hubble数据库检索工具从所述Rocksdb数据中读取与所述目标标识对应的目标数据。
作为本发明实施例一种可选的实施方式,
所述接收单元,具体用于接收客户端发送的检索请求;
所述输出单元,具体用于向所述客户端发送所述目标数据。
第三方面,本发明实施例提供一种数据检索装置,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行上述第一方面或第一方面的任一实施方式所述的数据检索方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式所述的数据检索方法。
本发明实施例提供的数据检索方法在接收到检索请求时,先从Lucene数据中提取与所述检索条件匹配的目标索引,并根据所述目标索引获取目标索引对应的数据的标识,再从Rocksdb数据中读取与目标索引对应的数据的目标数据,最后输出目标数据。由于Rocksdb数据仅包括数据的索引和数据的标识,而无需存储数据集合中的数据本身,因此数据集合的数据不会占用过多资源而对Lucene的性能造成较大的影响,因此本发明实施例提供的数据检索方法支持灵活设置检索条件,并快速检索出与检索条件匹配的目标数据的索引。又因为Rocksdb可以存储大量的数据,且支持快速的通过标识从存储的数据中定位和查找目标数据,因此本发明实施例提供的数据检索方法还可以根据目标数据的标识快速的从Rocksdb数据中读取目标数据,因此本发明实施例提供了一种可以灵活且快速的从数据集合中提取目标数据的数据检索方法。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据检索方法的步骤流程图之一;
图2为本发明实施例提供的数据检索系统示意图;
图3为本发明实施例提供的数据检索方法的步骤流程图之二;
图4为本发明实施例提供的数据检索装置的结构四意图之一;
图5为本发明实施例提供的数据检索装置的结构四意图之二;
图6为本发明实施例提供的数据检索装置的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面将对本发明的方案进行进一步描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本发明的一部分实施例,而不是全部的实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本发明的说明书和权利要求书中的术语“第一”和“第二”等是用于区别同步的对象,而不是用于描述对象的特定顺序。例如,第一检索单元和第二检索单元等是用于区别不同的功能单元,而不是用于功能单元的特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本发明实施例提供了一种数据检索方法。具体的,参照图1所示,本发明实施例提供的数据检索方法包括如下步骤S101-S105:
S101、接收检索请求。
其中,所述检索请求包含检索条件,用于请求输出数据集合中与所述检索条件匹配的数据。
可选的,接收检索请求可以为通过网络接口接收终端设备发送的检索请求,也可以为接收用户通过键盘、鼠标、麦克风、触摸输入模组等外设输入的检索请求。
由于本发明实施例中的检索条件的实际作用为从Lucene数据中提取与所述检索条件匹配的目标索引,而Lucene提供了灵活的查询接口,因此检索条件可以基于用户需求进行灵活设置。例如:可以将检索条件设置为指定字段。再例如:可以将检索条件设置为多种查询条件组合。
S102、从Lucene数据中提取与所述检索条件匹配的目标索引。
其中,所述Lucene数据包括所述数据集合中每一条数据的索引,以及每一条索引对应的数据的标识。
本发明实施例中Lucene数据是指Lucene存储的数据,包括:索引和标识两部分,其中,索引包括数据集合中每一条数据的索引,标识包括数据集合中每一条数据的标识,且一条数据的索引和标识之间存在唯一的对应关系。索引的内容和数据结构可以与现有技术中Lucene存储的索引的内容和数据结构相同,数据的标识具体可以为数据的身份证标识号(Identity document,ID)等信息。
可选的,在上述步骤S102(从Lucene数据中提取与所述检索条件匹配的目标索引)之前,本发明实施例提供的数据检索方法还包括:
将所述检索条件转换为Lucene的检索语法的检索条件。
即,在上述步骤S102之前,先判断检索条件是否为Lucene的检索语法的检索条件,若不是Lucene的检索语法的检索条件,则将所述检索条件转换为Lucene的检索语法的检索条件,然后再执行上述步骤S102。
S103、根据所述目标索引获取目标标识。
其中,所述目标标识为所述目标索引对应的数据的标识。
即,在获取目标索引后逐一获取每一个目标索引对应的数据的标识,并将各个目标索引对应的数据的标识作为目标标识执行后后步骤。
S104、从Rocksdb数据中读取与所述目标标识对应的目标数据。
其中,Rocksdb数据包括所述数据集合中的每一条数据,以及每一条数据的标识。
具体的,本发明实施例中的Rocksdb数据是指Rocksdb存储的数据,Rocksdb是一个KV存储,其将每一条数据的标识作为key,将对应数据本身作为value进行存储,由于Rocksdb支持通过key快速查找目标value,因此上述步骤S104中可以快速的根据目标标识定位并读取对应的目标数据。
S105、输出所述目标数据。
可选的,输出所述目标数据可以为通过网络接口向终端设备发送的目标数据,也可以为将目标数据写入指定磁盘的指定位置,还可以为将数据处理后显示可视化的目标数据。
本发明实施例提供的数据检索方法在接收到检索请求时,先从Lucene数据中提取与所述检索条件匹配的目标索引,并根据所述目标索引获取目标索引对应的数据的标识,再从Rocksdb数据中读取与目标索引对应的数据的目标数据,最后输出目标数据。由于Rocksdb数据仅包括数据的索引和数据的标识,而无需存储数据集合中的数据本身,因此数据集合的数据不会占用过多资源而对Lucene的性能造成较大的影响,因此本发明实施例提供的数据检索方法支持灵活设置检索条件,并快速检索出与检索条件匹配的目标数据的索引。又因为Rocksdb可以存储大量的数据,且支持快速的通过标识从存储的数据中定位和查找目标数据,因此本发明实施例提供的数据检索方法还可以根据目标数据的标识快速的从Rocksdb数据中读取目标数据,因此本发明实施例提供了一种可以灵活且快速的从数据集合中提取目标数据的数据检索方法。
可选的,所述Lucene数据和Rocksdb数据均存储于分布式文件系统(HadoopDistributed File System,HDFS)中。
由于Lucene和Rocksdb都是单机机制的,只能将数据存储于本地磁盘中,因此Lucene和Rocksdb的存储能力有限,很可能无法支持海量数据的检索,为了使本发明实施例提供的数据检索方法可以支持海量数据的检索,本发明实施例进一步将Lucene数据和Rocksdb数据存储于分布式文件系统,从而提升Lucene和Rocksdb的数据存储能力,以使本发明实施例提供的数据检索方法可以支持海量数据的检索。
此外,由于HDFS会针对每一个数据分片存储一个或多个副本,所以当HDFS中的个别节点出现宕机时,HDFS依然可以正常读取存储的数据,因此将Lucene数据和Rocksdb数据均存储于HDFS中还可以提高数据的安全性。
Lucene是基于Java语言实现的,现有技术中Lucene的数据一般存储于内存、操作系统的本地磁盘等文件系统中,但Lucene并没有提供将数据存储于HDFS的方式,为了使Lucene的数据可以存储在HDFS中,可以通过实现Lucene的Directory接口完成HDFSDirectory类,从而使Lucene的存储的数据可以存储在HDFS中。
另外,Rocksdb支持指定不同的Env环境变量来使数据存储到不同的文件系统中,因此可以通过重新编译Rocksdb的源代码,使Rocksdb输出需要存储的数据的接口关联上HDFS的动态链接库(libhdfs.so),从而使Rocksdb的数据可以存储到HDFS中。
参照图2所示,图2为本发明实施例提供的数据检索系统的示意图,所述HDFS的每一个数据分片(shard)中均存储有所述Lucene数据和所述Rocksdb数据,且写入同一数据分片的所述Lucene数据和所述Rocksdb数据对应所述数据集合中的相同数据。
示例性的,将Lucene数据和Rocksdb数据写入HDFS的过程可以为:首先将数据集合中的数据横向切分为多个数据块,然后生成各数据块对应的Lucene的数据和Rocksdb的数据,最后分别将各数据块对应Lucene的数据和Rocksdb的数据分别写入一个HDFS的数据分片中。
此外,在本发明实施例中HDFS可以包括多台物理存储设备,每一台物理存储设备可以存储一个或多个数据分片,多台物理存储设备之间通过远程过程调用(RemoteProcedure Call,RPC)系统进行通信。
参照图3所示,本发明实施例提供的数据检索方法还包括:
S301、接收新增数据请求。
其中,所述新增数据请求携带有新增数据,用于请求将所述新增数据添加到所述数据集合中。
具体的,接收新增数据请求可以为接收客户端设备发送的新增数据请求,也可以为也可以为接收用户通过键盘、鼠标、麦克风等外设输入的新增数据请求。
S302、将所述新增数据切分为至少一个数据块。
示例性的,可以对新增数据做横向切分,从而将新增数据切分为至少一个数据块。
S303、生成每一个数据块对应的索引数据和存储数据。
其中,任一数据块对应的索引数据包括该数据块中每一条数据的索引以及每一条索引对应的数据的标识。任一数据块对应的存储数据包括该数据块中的每一条数据以及每一条数据的标识。
示例性的,生成一个数据块对应的索引数据的过程可以包括:首先生成该数据块中每条数据的索引,然后获取该数据块中每条数据的标识,最后建立每一条数据的索引与标识之间的对应关系,以生成该数据块对应的索引数据。
S304、将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
此外,在Lucene数据和Rocksdb数据均存储于HDFS中的情况下,将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中,还可以包括:
将同一数据块对应的索引数据和存储数据写入同一个HDFS的数据分片中。
进一步可选的,上述步骤S304(将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中)包括:
基于两阶段提交协议(tow- phase commit,2PC)将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
具体的,基于两阶段提交协议将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中的过程可以分为两个阶段,第一阶段称为投票阶段或预提交阶段(voting phase),第二阶段称为执行阶段或提交阶段(commit phase)。在第一阶段时,Rocksdb和Lucene各自的事务控制机制确认是否可以将对应的数据添加到各自存储的数据中;第二阶段中,若Rocksdb和Lucene均确认可以将对应的数据添加到各自存储的数据中,则将将对应的数据添加到各自存储的数据中,而若Rocksdb和/或Lucene无法将对应的数据添加到自身存储的数据中,则Rocksdb和Lucene均不进行数据的添加。
由于新增数据过程中需要同时打开Rocksdb和Lucene的写入方法,通过Rocksdb和Lucene各自的事务控制机制,把对应的数据同时写入到两个组件中,若Rocksdb或Lucene数据写入失败,则会导致Lucene数据与Rocksdb数据不对应。上述实施例中基于两阶段提交协议将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中,因此可以保证Lucene数据与Rocksdb数据的一致性。
可选的,上述步骤S102(从Lucene数据中提取与所述检索条件匹配的目标索引)包括:
通过Hubble数据库检索工具从所述Lucene数据中提取与所述检索条件匹配的目标索引。
可选的,上述步骤S105(从Rocksdb数据中读取与所述目标标识对应的目标数据)包括:
通过Hubble数据库检索工具从所述Rocksdb数据中读取与所述目标标识对应的目标数据。
具体的,Hubble是一个混合事务和分析处理的(Hybrid Transaction andAnalytical Process,HTAP)数据库,可以友好的支持结构化查询语言(Structured QueryLanguage,SQL),因此Hubble数据库检索工具可以直接在Rocksdb和Lucene中使用统计函数、JOIN以及SELECT查询数据,进而进一步保证数据检索的实时性。
此外,Hubble可以使用服务的方式避免每次执行查询的启动时间,从而进一步减少数据检索的用时。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种数据检索装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
图4为本发明实施例提供的数据检索装置的结构示意图,如图4所示,本实施例提供的数据检索装置400,包括:
接收单元41,用于接收检索请求,所述检索请求包含检索条件,用于请求输出数据集合中与所述检索条件匹配的数据;
第一检索单元42,用于从Lucene数据中提取与所述检索条件匹配的目标索引,所述Lucene数据包括所述数据集合中每一条数据的索引,以及每一条索引对应的数据的标识;
获取单元43,用于根据所述目标索引获取目标标识,所述目标标识为所述目标索引对应的数据的标识;
第二检索单元44,用于从Rocksdb数据中读取与所述目标标识对应的目标数据,所述Rocksdb数据包括所述数据集合中的每一条数据,以及每一条数据的标识;
输出单元45,用于输出所述目标数据。
作为本发明实施例一种可选的实施方式,所述Lucene数据和Rocksdb数据均存储于分布式文件系统HDFS中;
所述HDFS的每一个数据分片中均存储有所述Lucene数据和所述Rocksdb数据,且写入同一数据分片的所述Lucene数据和所述Rocksdb数据对应所述数据集合中的相同数据。
作为本发明实施例一种可选的实施方式,参照图5所示,所述数据检索装置400还包括:处理单元46和写入单元47;
所述接收单元41,还用于接收新增数据请求,所述新增数据请求携带有新增数据,用于请求将所述新增数据添加到所述数据集合中;
所述处理单元46,用于将所述新增数据切分为至少一个数据块,以及生成每一个数据块对应的索引数据和存储数据,任一数据块对应的索引数据包括该数据块中每一条数据的索引以及每一条索引对应的数据的标识,任一数据块对应的存储数据包括该数据块中的每一条数据以及每一条数据的标识;
所述写入单元47,用于将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
作为本发明实施例一种可选的实施方式,所述写入单元47,具体用于基于两阶段提交协议将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
作为本发明实施例一种可选的实施方式,所述第一检索单元42,还用于在从Lucene数据中提取与所述检索条件匹配的目标索引之前,将所述检索条件转换为Lucene的检索语法的检索条件。
作为本发明实施例一种可选的实施方式,
所述第一检索单元42,具体用于通过Hubble数据库检索工具从所述Lucene数据中提取与所述检索条件匹配的目标索引;
和/或;
所述第二检索单元44,具体用于通过Hubble数据库检索工具从所述Rocksdb数据中读取与所述目标标识对应的目标数据。
作为本发明实施例一种可选的实施方式,
所述接收单元41,具体用于接收客户端发送的检索请求;
所述输出单元45,具体用于向所述客户端发送所述目标数据。
本实施例提供的数据检索装置可以执行上述方法实施例提供的数据检索方法,其实现原理与技术效果类似,此处不再赘述。
基于同一发明构思,本发明实施例还提供了一种数据检索装置。图6为本发明实施例提供的数据检索装置的结构示意图,如图6所示,本实施例提供的数据检索装置包括:存储器61和处理器62,存储器61用于存储计算机程序;处理器62用于在调用计算机程序时执行上述方法实施例提供的数据检索方法中的各步骤。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例提供的数据检索方法。
本领域技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央判断单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据检索方法,其特征在于,包括:
接收检索请求,所述检索请求包含检索条件,用于请求输出数据集合中与所述检索条件匹配的数据;
从Lucene数据中提取与所述检索条件匹配的目标索引,所述Lucene数据包括所述数据集合中每一条数据的索引,以及每一条索引对应的数据的标识;
根据所述目标索引获取目标标识,所述目标标识为所述目标索引对应的数据的标识;
从Rocksdb数据中读取与所述目标标识对应的目标数据,所述Rocksdb数据包括所述数据集合中的每一条数据,以及每一条数据的标识;
输出所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述Lucene数据和所述Rocksdb数据均存储于分布式文件系统HDFS中;
所述HDFS的每一个数据分片中均存储有所述Lucene数据和所述Rocksdb数据,且写入同一数据分片的Lucene数据和Rocksdb数据对应所述数据集合中的相同数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收新增数据请求,所述新增数据请求携带有新增数据,用于请求将所述新增数据添加到所述数据集合中;
将所述新增数据切分为至少一个数据块;
生成每一个数据块对应的索引数据和存储数据,任一数据块对应的索引数据包括该数据块中每一条数据的索引以及每一条索引对应的数据的标识,任一数据块对应的存储数据包括该数据块中的每一条数据以及每一条数据的标识;
将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
4.根据权利要求3所述的方法,其特征在于,所述将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中,包括:
基于两阶段提交协议将各数据块对应的索引数据和存储数据分别添加到所述Lucene数据中和所述Rocksdb数据中。
5.根据权利要求1-4任一项所述的方法,其特征在于,在从Lucene数据中提取与所述检索条件匹配的目标索引之前,所述方法还包括:
将所述检索条件转换为Lucene的检索语法的检索条件。
6.根据权利要求1-4任一项所述的方法,其特征在于,
所述从Lucene数据中提取与所述检索条件匹配的目标索引包括:通过Hubble数据库检索工具从所述Lucene数据中提取与所述检索条件匹配的目标索引;
和/或;
所述从Rocksdb数据中读取与所述目标标识对应的目标数据包括:通过Hubble数据库检索工具从所述Rocksdb数据中读取与所述目标标识对应的目标数据。
7.根据权利要求1-4任一项所述的方法,其特征在于,
所述接收检索请求,包括:接收客户端发送的检索请求;
所述输出所述目标数据,包括:向所述客户端发送所述目标数据。
8.一种数据检索装置,其特征在于,包括:
接收单元,用于接收检索请求,所述检索请求包含检索条件,用于请求输出数据集合中与所述检索条件匹配的数据;
第一检索单元,用于从Lucene数据中提取与所述检索条件匹配的目标索引,所述Lucene数据包括所述数据集合中每一条数据的索引,以及每一条索引对应的数据的标识;
获取单元,用于根据所述目标索引获取目标标识,所述目标标识为所述目标索引对应的数据的标识;
第二检索单元,用于从Rocksdb数据中读取与所述目标标识对应的目标数据,所述Rocksdb数据包括所述数据集合中的每一条数据,以及每一条数据的标识;
输出单元,用于输出所述目标数据。
9.一种数据检索装置,其特征在于,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行权利要求1-7任一项所述的数据检索方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现权利要求1-7任一项所述的数据检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010944103.9A CN111813801B (zh) | 2020-09-10 | 2020-09-10 | 一种数据检索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010944103.9A CN111813801B (zh) | 2020-09-10 | 2020-09-10 | 一种数据检索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813801A true CN111813801A (zh) | 2020-10-23 |
CN111813801B CN111813801B (zh) | 2021-01-05 |
Family
ID=72860166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010944103.9A Active CN111813801B (zh) | 2020-09-10 | 2020-09-10 | 一种数据检索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813801B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063384A (zh) * | 2013-03-19 | 2014-09-24 | 上海软智信息科技有限公司 | 一种数据检索方法及装置 |
CN105138592A (zh) * | 2015-07-31 | 2015-12-09 | 武汉虹信技术服务有限责任公司 | 一种基于分布式架构的日志数据存储和检索方法 |
CN105630847A (zh) * | 2014-11-21 | 2016-06-01 | 深圳市腾讯计算机系统有限公司 | 数据存储方法、数据查询方法、装置及系统 |
US20190042654A1 (en) * | 2017-08-03 | 2019-02-07 | International Business Machines Corporation | Generalized search engine for abstract data types with skimming and approximate retrieval |
CN110109870A (zh) * | 2018-01-24 | 2019-08-09 | 江苏友上科技实业有限公司 | 一种基于Solr的海量数据快速检索系统 |
CN110362572A (zh) * | 2019-06-25 | 2019-10-22 | 浙江邦盛科技有限公司 | 一种基于列式存储的时序数据库系统 |
-
2020
- 2020-09-10 CN CN202010944103.9A patent/CN111813801B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063384A (zh) * | 2013-03-19 | 2014-09-24 | 上海软智信息科技有限公司 | 一种数据检索方法及装置 |
CN105630847A (zh) * | 2014-11-21 | 2016-06-01 | 深圳市腾讯计算机系统有限公司 | 数据存储方法、数据查询方法、装置及系统 |
CN105138592A (zh) * | 2015-07-31 | 2015-12-09 | 武汉虹信技术服务有限责任公司 | 一种基于分布式架构的日志数据存储和检索方法 |
US20190042654A1 (en) * | 2017-08-03 | 2019-02-07 | International Business Machines Corporation | Generalized search engine for abstract data types with skimming and approximate retrieval |
CN110109870A (zh) * | 2018-01-24 | 2019-08-09 | 江苏友上科技实业有限公司 | 一种基于Solr的海量数据快速检索系统 |
CN110362572A (zh) * | 2019-06-25 | 2019-10-22 | 浙江邦盛科技有限公司 | 一种基于列式存储的时序数据库系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111813801B (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038207B (zh) | 一种数据查询方法、数据处理方法及装置 | |
JP7021228B2 (ja) | ブロックチェーンベースのデータ記憶および照会方法およびデバイス | |
US8862566B2 (en) | Systems and methods for intelligent parallel searching | |
CN106933842B (zh) | 一种数据库查询方法和装置 | |
CN110597852A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN113177090A (zh) | 数据处理方法及装置 | |
CN111125216B (zh) | 数据导入Phoenix的方法及装置 | |
CN111813801B (zh) | 一种数据检索方法及装置 | |
CN114238345A (zh) | 一种数据库的处理、数据查询方法及设备 | |
CN111538747B (zh) | 数据查询、辅助数据查询的方法、装置和设备 | |
CN111858616A (zh) | 流式数据存储方法及装置 | |
CN116028504B (zh) | 一种数据湖元数据管理方法及装置 | |
CN108228604B (zh) | 基于内存对象的模型构建方法、信息查询方法及装置 | |
KR102443302B1 (ko) | 블록 체인 기반 서버리스 서비스 개발 장치 및 방법 | |
CN109359143B (zh) | 一种报表生成方法及装置 | |
Hammood | A comparison of NoSQL database systems: A study on MongoDB, apache HBase, and apache Cassandra | |
CN114020743A (zh) | 一种信息管理方法及装置 | |
CN117667968A (zh) | 一种数据查询方法及装置 | |
CN116186036A (zh) | 基于Redis数据库和索引的数据处理方法和装置 | |
CN117992540A (zh) | 数据库的同步方法、装置、存储介质及电子设备 | |
CN117331895A (zh) | 文档处理方法、系统、服务器和客户端 | |
CN117407391A (zh) | 数据库的全文索引方法、装置、计算机设备和存储介质 | |
CN117056482A (zh) | 基于知识图谱的问答方法、装置和处理器及电子设备 | |
CN117609303A (zh) | 多表联合查询方法、装置、设备及存储介质 | |
CN114510530A (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 |