CN113312383A - 数据查询方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据查询方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113312383A CN113312383A CN202110607358.0A CN202110607358A CN113312383A CN 113312383 A CN113312383 A CN 113312383A CN 202110607358 A CN202110607358 A CN 202110607358A CN 113312383 A CN113312383 A CN 113312383A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- target region
- hbase
- queried
- 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.)
- Pending
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
- G06F16/2453—Query optimisation
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据查询方法、装置、电子设备、存储介质及程序产品,所述方法包括:接收Hbase数据查询请求;确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;返回所述目标Region的文件目录;接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
Description
技术领域
本公开实施例涉及大数据技术领域,具体涉及一种数据查询方法、装置、电子设备、存储介质及程序产品。
背景技术
随着互联网的发展,越来越多的业务指标需要实时查看,以便于更好的进行业务分析,尤其在举行活动的时候,能够更好的把握活动的各项指标趋势,从而更好的调整策略,达到活动的目标。
随着数据时效性在企业运营中的重要性日益凸现,例如,实时推荐、精准营销、广告投放效果、实时物流等。数据的实时处理能力成为企业提升竞争力的一大因素,最初阶段企业主要采用一个需求,编写一个实时计算任务的方式来处理实时数据,随着需求的增多,计算任务也相应增多,并且不同任务的开发人员不同,导致开发风格差异化,该阶段的实时数据处理缺乏统一的规划,代码风格差异化严重,在维护成本和开发效率上有很大障碍。
HBase是一个分布式的、面向列的开源数据库,HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。HBase作为列式存储数据库,为数据存储提供了高效的写入性能和灵活的存储方式。
然而,在大数据技术领域中,计算引擎(hive,spark等)在读取Hbase数据时,如果通过Hbase数据库提供的服务全量加载数据,会对Hbase服务造成较大压力,甚至会造成Hbase数据库的服务器死机,造成Hbase数据库的稳定性降低,进而使得大数据计算引擎的数据查询效率低下。
因此,在大数据存取领域中,如何提高Hbase数据库的数据读取效率是本领域需要解决的技术问题之一。
发明内容
本公开实施例提供一种数据查询方法、装置、电子设备、存储介质及程序产品。
第一方面,本公开实施例中提供了一种数据查询方法,包括:
接收Hbase数据查询请求;
确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
返回所述目标Region的文件目录;
接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
进一步地,根据权利要求1所述的方法,其中,确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region,包括:解析所述数据查询请求中所述待读取数据的存储标识;确定所述存储标识对应的目标Region;调用目录读取接口,获取所述目标Region的文件目录。
进一步地,获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据,包括:在所述数据读取请求中请求目标Region中的Hfile文件时,调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据;在所述数据读取请求中请求目标Region中的Memstore文件时,调用预设的Memstore文件读取接口,从内存读取所述Memstore文件,以获取待查询数据。
进一步地,在所述数据读取请求中请求目标Region中的Hfile文件时,调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据,包括:确定所述Hfile文件的大小;读取所述Hfile文件中的数据块;遍历所述数据块中的键值数据,并获取所述待查询数据。
第二方面,本公开实施例中提供了一种数据查询方法,包括:
发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
接收所述目标Region的文件目录;
根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
发送携带有所述存储标识的数据读取请求;
接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
进一步地,根据所述文件目录确定所述待查询数据在所述目标Region的存储标识,包括:根据所述文件目录确定待查询数据在所述目标Region中的Hfile文件还是Memstore文件中存储;将所述待查询数据所在的所述Hfile文件和/或Memstore文件的标识确定为所述存储标识。
进一步地,还包括:将接收到的数据进行预设处理,得到待查询数据。
第三方面,本公开实施例中提供了一种数据查询方法,包括:
计算引擎向Hbase数据库发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
所述Hbase数据库接收所述Hbase数据查询请求;
所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
所述Hbase数据库向所述计算引擎返回所述目标Region的文件目录;
所述计算引擎接收所述目标Region的文件目录;
所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
所述计算引擎向所述Hbase数据库发送携带有所述存储标识的数据读取请求;
所述Hbase数据库接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
所述Hbase数据库获取并向所述计算引擎返回包括所述待查询数据的所述Hfile文件和/或Memstore文件;
所述计算引擎接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
进一步地,根据权利要求8所述的方法,其中,所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region,包括:所述Hbase数据库解析所述数据查询请求中所述待读取数据的存储标识;所述Hbase数据库确定所述存储标识对应的目标Region;所述Hbase数据库调用目录读取接口,获取所述目标Region的文件目录。
进一步地,根据权利要求8所述的方法,所述Hbase数据库获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据,包括:在所述数据读取请求中请求目标Region中的Hfile文件时,所述Hbase数据库调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据;在所述数据读取请求中请求目标Region中的Memstore文件时,所述Hbase数据库调用预设的Memstore文件读取接口,从内存读取所述Memstore文件,以获取待查询数据。
进一步地,在所述数据读取请求中请求目标Region中的Hfile文件时,所述Hbase数据库调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据,包括:所述Hbase数据库确定所述Hfile文件的大小;所述Hbase数据库读取所述Hfile文件中的数据块;所述Hbase数据库遍历所述数据块中的键值数据,并获取所述待查询数据。
进一步地,所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识,包括:所述计算引擎根据所述文件目录确定待查询数据在所述目标Region中的Hfile文件还是Memstore文件中存储;所述计算引擎将所述待查询数据所在的所述Hfile文件和/或Memstore文件的标识确定为所述存储标识。
进一步地,还包括:所述计算引擎将接收到的数据进行预设处理,得到待查询数据。
第四方面,本公开实施例中提供了一种数据查询装置,包括:
第一接收模块,被配置为接收Hbase数据查询请求;
第一确定模块,被配置为确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
第一返回模块,被配置为返回所述目标Region的文件目录;
第二接收模块,被配置为接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
第一获取模块,被配置为获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
第五方面,本公开实施例中提供了一种数据查询装置,包括:
第一发送模块,被配置为发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
第二接收模块,被配置为接收所述目标Region的文件目录;
第二确定模块,被配置为根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
第二发送模块,被配置为发送携带有所述存储标识的数据读取请求;
第三接收模块,被配置为接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,上述装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述装置还可以包括通信接口,用于上述装置与其他设备或通信网络通信。
第六方面,本公开实施例中提供了一种数据查询系统,包括计算引擎和Hbase数据库:
所述计算引擎向所述Hbase数据库发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
所述Hbase数据库接收所述Hbase数据查询请求;
所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
所述Hbase数据库向所述计算引擎返回所述目标Region的文件目录;
所述计算引擎接收所述目标Region的文件目录;
所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
所述计算引擎向所述Hbase数据库发送携带有所述存储标识的数据读取请求;
所述Hbase数据库接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
所述Hbase数据库获取并向所述计算引擎返回包括所述待查询数据的所述Hfile文件和/或Memstore文件;
所述计算引擎接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
第七方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持上述任一装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述任一装置还可以包括通信接口,用于与其他设备或通信网络通信。
第八方面,本公开实施例提供了一种计算机可读存储介质,用于存储上述任一装置所用的计算机指令,其包含用于执行上述任一方法所涉及的计算机指令。
第九方面,本公开实施例提供了一种计算机程序产品,其包含计算机指令,该计算机指令被处理器执行时用于实现上述任一方面所述方法的步骤。
本公开实施例提供的技术方案可包括以下有益效果:
本公开实施例中Hbase数据库端可以预设多个接口,该多个预设接口可以包括但不限于对外提供Region文件目录、由大数据计算引擎直接读取Region上的Hfile文件和Memstore文件的接口。大数据引擎在需要数据查询时,想Hbase数据库发送数据查询请求,Hbase根据该数据查询请求将待查询数据所在的目标Region的文件目录返回给计算引擎,计算引擎根据该文件目录构建数据读取请求,并将该数据读取请求发送至Hbase数据库,以便能够从目标Region下读取包括待查询数据的Hfile文件和/或Memstore文件,Hbase数据库将从目标Region直接读取到的包括待查询数据的Hfile文件和/或Memstore文件的文件返回给计算引擎,计算引擎可以根据需要从接收到的Hfile文件和/或Memstore文件获取待查询数据。通过这种方式,由于不需要使用Hbase数据库提供的顶层服务,将目标Region中的全量数据记载至Hbase数据库,而是直接从磁盘读取Hfile文件或者从内存读取Memstore文件,能够提高Hbase的稳定性以及服务性能,可以使得Hbase更多的对写操作进行优化;此外还能够提高大数据计算引擎的数据处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的数据查询方法的流程图;
图2示出根据本公开另一实施方式的数据查询方法的流程图;
图3示出根据本公开另一实施方式的数据查询方法的流程图;
图4示出根据本公开一实施方式的数据查询方法的应用场景示意图;
图5示出根据本公开一实施方式的数据查询方法的整体流程图;
图6示出根据本公开一实施方式的数据查询装置的结构框图;
图7示出根据本公开另一实施方式的数据查询装置的结构框图;
图8示出根据本公开一实施方式的数据查询系统的结构框图;
图9是适于用来实现根据本公开一实施方式的数据查询方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
图1示出根据本公开一实施方式的数据查询方法的流程图,如图1所示,所述数据查询方法包括以下步骤S101-S105:
在步骤S101中,接收Hbase数据查询请求;
在步骤S102中,确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
在步骤S103中,返回所述目标Region的文件目录;
在步骤S104中,接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
在步骤S105中,获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
上文提及,随着互联网的发展,越来越多的业务指标需要实时查看,以便于更好的进行业务分析,尤其在举行活动的时候,能够更好的把握活动的各项指标趋势,从而更好的调整策略,达到活动的目标。
随着数据时效性在企业运营中的重要性日益凸现,例如,实时推荐、精准营销、广告投放效果、实时物流等。数据的实时处理能力成为企业提升竞争力的一大因素,最初阶段企业主要采用一个需求,编写一个实时计算任务的方式来处理实时数据,随着需求的增多,计算任务也相应增多,并且不同任务的开发人员不同,导致开发风格差异化,该阶段的实时数据处理缺乏统一的规划,代码风格差异化严重,在维护成本和开发效率上有很大障碍。
HBase是一个分布式的、面向列的开源数据库,HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。HBase作为列式存储数据库,为数据存储提供了高效的写入性能和灵活的存储方式。
然而,在大数据技术领域中,计算引擎(hive,spark等)在读取Hbase数据时,如果通过Hbase数据库提供的服务全量加载数据,会对Hbase服务造成较大压力,甚至会造成Hbase数据库的服务器死机,造成Hbase数据库的稳定性降低,进而使得大数据计算引擎的数据查询效率低下。
Hbase是基于HADOOP(一种分布式系统基础架构)分布式存储系统HDFS建立起的大数据存储系统,其主要特点是采用稀疏的多维映射表形式进行存储。对于TB级以上的大数据,较传统的关系型数据库,在查询和分析效率上有很大的提升。HBASE体系中两个重要组成部分是Region(分区)和RegionServer(分区服务器)。其中Region是HBASE中一张表格HTABLE的逻辑单元,即一张HTABLE表按照rowkey(行标识)的顺序划分成多个Region,分别由不同的RegionServer进行管理。RegionServer维护其下管理的Regions,并处理对这些Region的IO(输入输出)请求。分布式服务框架Zookeeper及其连接的Master(主节点)和Client(从节点)通过RegionServer Cluster(分区服务器簇)对HDFS中的文件HFile进行访问;所述RegionServer Cluster中的各RegionServer均包含一个Hlog对象,每个RegionServer管理不同的Region。不同RegionServer下的不同Region组成HTABLE表。HBASE数据库中包含多张HTABLE表。
Region内部由一个或多个Store(存储单元)组成,每个family(列族)对应一个Store。每个Store又由一个Memstore(缓存)和0至多个Storefile(磁盘)组成。Storefile以HFile的格式保存在HADOOP分布式存储系统HDFS上。Memstore位于内存当中。
HBASE表采用稀疏的表结构,HTABLE每张表中的记录由一个rowkey和多个family组成,每个family下包含一个到多个column(列)。当向HTABLE添加数据时,每个family会在内存中形成一个单独的内存空间,即Memstore。HBASE中建立新的TABLE表后,会生成相应的列族(family)和列信息,并在内存中开辟相应个数Memstore,有多少个列族(family)就会生成多少个Memstore,相对应的Region上就会有相应个数的Store。
当数据记录,即(key-value)向HBASE写入(write)时,会先写入到相应的Memstore当中,当Region中所有Store中的Memstore记录总条数超过一定数量(超过参数Memstore-size,该参数在配置文件中设定)时,会将Memstore中数据写入到磁盘上,格式为HFile(即HTABLE中的Storefile文件)。该过程称为Flush(缓存写入磁盘)操作,Flush操作是将内存中所有Memstore中的数据都写入到磁盘形成HFile文件。
HFile文件主要由六部分组成,分别为:Data(数据块)、Meta(元数据块)、FileInfo、Data Index(数据块索引)、Meta Index(元数据块索引)和Trailer。具体读取HBase数据库中KeyValue数据的过程为:创建HBase数据库中HFile文件的读取路径;创建FSdataInputStream,获取HBase数据库中HFile文件的大小;创建FixedFileTrailer,读取到尾文件块;创建HFileReaderV2对象。进而,通过HFileReaderV2对象中的getScanner()创建扫描器Scanner,并使用扫描器Scanner读取HBase数据库中HFile文件数据块。最后,再遍历读取的全部数据块中的KeyValue数据。
在本公开一实施方式中,该数据查询方法可适用于在Hbase数据库端执行。
在本公开一实施方式中,Hbase数据查询请求可以是大数据计算引擎发送的,大数据计算引擎例如可以是Hive计算引擎或者Spark计算引擎等。Hbase数据库接收到计算引擎的数据查询请求之后,根据数据查询请求中的待查询数据的行键(Rowkey)等索引信息确定待查询数据所在的目标Region,并确定该目标Region的文件目录。如上文中所述,一个Region中可以包括多个store,每个store包括一个Memstore文件和0或多个Hfile文件,Memstore文件包括存储在内存中的数据,而Hfile文件存储在磁盘上。因此,在接收到数据查询请求之后,可以将该目标Region的文件目录返回给计算引擎,该文件目录可以包括但不限于该目标Region下的Hfile文件的信息以及Memstore文件的信息,该Hfile文件的信息以及Memstore文件的信息可以包括但不限于文件名、文件存储路径、文件内容索引等。
Hbase数据库将上述目标Region的文件目录返回给计算引擎之后,计算引擎可以根据该目标Region的文件目录确定待读取数据对应的Hfile文件以及Memstore文件,也即计算引擎可以确定待读取数据存储在哪些Hfile文件以及是否存储在Memstore文件中。计算引擎可以将包括待读取数据的Hfile文件的标识或者路径发送给Hbase数据库,以直接读取Hfile文件;此外,如果待读取数据还存储在Memstore文件中时,可以将需要从Memstore文件读取的数据键值等发送给Hbase数据库。
Hbase数据库从计算引擎接收到上述读取目标Region中Hfile文件和/或Memstore文件的数据读取请求后,根据该数据读取请求将相应的Hfile文件以及Memstore文件中的相应数据返回给计算引擎。
在介绍本发明提供的实施例之前,首先介绍一下HBase数据库的结构:
HBase数据库以表的形式存储数据,表包括行(row)、列(column)和时间戳(Timestamp)。一行记录由若干列组成,其中的某些列又可以构成一个列族(columnfamily)。行健(row key)是用来检索一行记录的主键,是行的唯一标识,行健可以是任意字符串(最大长度是64KB,实际应用中长度一般为(10-100bytes),在HBase内部,row key保存为字节数组,存储时,数据按照row key的字典顺序(byte order)排序存储。时间戳,默认由系统指定,用户也可以显示设置。不同的时间戳用来区分不同的版本,时间戳一般按照版本从新到旧的顺序进行排列,在数据读取的时候优先读取最新版本。
本公开实施例在大数据存取过程中,针对大数据计算引擎从Hbase数据库读取大量数据时,通过Hbase数据库提供的服务将数据全量加载后再读取的过程可能会引擎数据读取效率低下,甚至造成Hbase数据库服务器死机的后果,提出了一种数据查询方法。该数据查询方法中,Hbase数据库端可以预设多个接口,该多个预设接口可以包括但不限于对外提供Region文件目录、由大数据计算引擎直接读取Region上的Hfile文件和Memstore文件的接口。大数据引擎在需要数据查询时,想Hbase数据库发送数据查询请求,Hbase根据该数据查询请求将待查询数据所在的目标Region的文件目录返回给计算引擎,计算引擎根据该文件目录构建数据读取请求,并将该数据读取请求发送至Hbase数据库,以便能够从目标Region下读取包括待查询数据的Hfile文件和/或Memstore文件,Hbase数据库将从目标Region直接读取到的包括待查询数据的Hfile文件和/或Memstore文件的文件返回给计算引擎,计算引擎可以根据需要从接收到的Hfile文件和/或Memstore文件获取待查询数据。通过这种方式,由于不需要使用Hbase数据库提供的顶层服务,将目标Region中的全量数据记载至Hbase数据库,而是直接从磁盘读取Hfile文件或者从内存读取Memstore文件,能够提高Hbase的稳定性以及服务性能,可以使得Hbase更多的对写操作进行优化;此外还能够提高大数据计算引擎的数据处理效率。
在本公开一实施方式中,步骤S102,即确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region的方法步骤,进一步可以包括以下步骤:
解析所述数据查询请求中所述待读取数据的存储标识;
确定所述存储标识对应的目标Region;
调用目录读取接口,获取所述目标Region的文件目录。
本实施例中,Hbase数据库端可以预先设置目录读取接口,该目录读取接口可以用于对外提供Region的文件目录。在Hbase数据库接收到计算引擎的数据查询请求之后,根据数据查询请求中待查询数据的存储标识确定对应的目标Region。在一可选实施例中,存储标识可以包括但不限于待查询数据所在的Region标识,或者待查询数据的查询键值等。Hbase数据库可以根据Region标识或者待查询数据的查询键值确定对应的目标Region,进而通过调用目录读取接口获取该目标Region的文件目录。
在本公开一实施方式中,步骤S105,即获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据的步骤,进一步可以包括以下步骤:
在所述数据读取请求中请求目标Region中的Hfile文件时,调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据;
在所述数据读取请求中请求目标Region中的Memstore文件时,调用预设的Memstore文件读取接口,从内存读取所述Memstore文件,以获取待查询数据。
如上文中所述,一个Region中的数据一部分存储在Hfile文件,一部分数据存储在Memstore,并且Hfile文件存储在磁盘上,而Memstore文件存储在内存中。为了能够直接读取Hfile文件或者Memstore中的内存数据,可以预先设置两个接口,分别为Hfile文件读取接口和Memstore文件读取接口,用于分别读取Hfile文件和Memstore文件中的内存数据。
Hbase数据库根据从计算引擎接收到的数据读取请求,可以确定计算引擎所要读取的数据在目标Region的Hfile文件中存储还是在Memstore中存储,或者既在Hfile文件中存储,也在Memstore中存储。如果待查询数据存储在Hfile文件中,Hbase可以通过调用预设的Hfile文件读取接口从Hfile文件中读取的数据返回给计算引擎,如果待查询数据存储在Memstore文件中,则可以调用预设的Memstore文件读取接口从内存读取相应的数据。
在本公开一实施方式中,在所述数据读取请求中请求目标Region中的Hfile文件时,调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据的步骤,进一步可以包括以下步骤:
确定所述Hfile文件的大小;
读取所述Hfile文件中的数据块;
遍历所述数据块中的键值数据,并获取所述待查询数据。
如上文中所述,Hfile文件主要包括六部分,分别为:Data(数据块)、Meta(元数据块)、File Info、Data Index(数据块索引)、Meta Index(元数据块索引)和Trailer。具体读取HBase数据库中KeyValue数据的过程为:创建HBase数据库中HFile文件的读取路径;创建FSdataInputStream,获取HBase数据库中HFile文件的大小;创建FixedFileTrailer,读取到尾文件块;创建HFileReaderV2对象。进而,通过HFileReaderV2对象中的getScanner()创建扫描器Scanner,并使用扫描器Scanner读取HBase数据库中HFile文件数据块。最后,再遍历读取的全部数据块中的KeyValue数据。
因此,不通过Hbase数据库提供的顶层接口也即Hbase数据库提供的服务查询数据,则可以利用上述方法直接从磁盘读取Hfile文件。在读取过程中,可以先确定Hfile文件的大小,并确定Hfile文件中各数据块,从Hfile尾数据块开始,遍历各数据块中的键值数据,以获取待查询数据。
图2示出根据本公开另一实施方式的数据查询方法的流程图,如图2所示,所述数据查询方法包括以下步骤S201-S205:
在步骤S201中,发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
在步骤S202中,接收所述目标Region的文件目录;
在步骤S203中,根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
在步骤S204中,发送携带有所述存储标识的数据读取请求;
在步骤S205中,接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
在本公开一实施方式中,该数据查询方法可适用于在大数据计算引擎端执行。
在本公开一实施方式中,Hbase数据查询请求可以是大数据计算引擎发送的,大数据计算引擎例如可以是Hive计算引擎或者Spark计算引擎等。Hbase数据库接收到计算引擎的数据查询请求之后,根据数据查询请求中的待查询数据的行键(Rowkey)等索引信息确定待查询数据所在的目标Region,并确定该目标Region的文件目录。如上文中所述,一个Region中可以包括多个store,每个store包括一个Memstore文件和0或多个Hfile文件,Memstore文件包括存储在内存中的数据,而Hfile文件存储在磁盘上。因此,在接收到数据查询请求之后,可以将该目标Region的文件目录返回给计算引擎,该文件目录可以包括但不限于该目标Region下的Hfile文件的信息以及Memstore文件的信息,该Hfile文件的信息以及Memstore文件的信息可以包括但不限于文件名、文件存储路径、文件内容索引等。
Hbase数据库将上述目标Region的文件目录返回给计算引擎之后,计算引擎可以根据该目标Region的文件目录确定待读取数据对应的Hfile文件以及Memstore文件,也即计算引擎可以确定待读取数据存储在哪些Hfile文件以及是否存储在Memstore文件中。计算引擎可以将包括待读取数据的Hfile文件的标识或者路径发送给Hbase数据库,以直接读取Hfile文件;此外,如果待读取数据还存储在Memstore文件中时,可以将需要从Memstore文件读取的数据键值等发送给Hbase数据库。
Hbase数据库从计算引擎接收到上述读取目标Region中Hfile文件和/或Memstore文件的数据读取请求后,根据该数据读取请求将相应的Hfile文件以及Memstore文件中的相应数据返回给计算引擎。
在介绍本发明提供的实施例之前,首先介绍一下HBase数据库的结构:
HBase数据库以表的形式存储数据,表包括行(row)、列(column)和时间戳(Timestamp)。一行记录由若干列组成,其中的某些列又可以构成一个列族(columnfamily)。行健(row key)是用来检索一行记录的主键,是行的唯一标识,行健可以是任意字符串(最大长度是64KB,实际应用中长度一般为(10-100bytes),在HBase内部,row key保存为字节数组,存储时,数据按照row key的字典顺序(byte order)排序存储。时间戳,默认由系统指定,用户也可以显示设置。不同的时间戳用来区分不同的版本,时间戳一般按照版本从新到旧的顺序进行排列,在数据读取的时候优先读取最新版本。
在本公开一实施方式中,步骤S203,即根据所述文件目录确定所述待查询数据在所述目标Region的存储标识的步骤,进一步包括以下步骤:
根据所述文件目录确定待查询数据在所述目标Region中的Hfile文件还是Memstore文件中存储;
将所述待查询数据所在的所述Hfile文件和/或Memstore文件的标识确定为所述存储标识。
如上文中所述,一个Region中的数据一部分存储在Hfile文件,一部分数据存储在Memstore,并且Hfile文件存储在磁盘上,而Memstore文件存储在内存中。为了能够直接读取Hfile文件或者Memstore中的内存数据,可以预先设置两个接口,分别为Hfile文件读取接口和Memstore文件读取接口,用于分别读取Hfile文件和Memstore文件中的内存数据。
计算引擎接收到目标Region的文件目录之后,可以从中确定所要读取的数据在目标Region的Hfile文件中存储还是在Memstore中存储,或者既在Hfile文件中存储,也在Memstore中存储。如果待查询数据存储在Hfile文件中,则可以在数据读取请求中添加Hfile文件的存储标识,而如果待查询数据存储在Memstore中,则可以添加待查询数据在Memstore中的存储标识。以便Hbase可以根据查询请求中的存储标识,通过调用预设的Hfile文件读取接口从Hfile文件中读取的数据返回给计算引擎,或者调用预设的Memstore文件读取接口从内存读取相应的数据。
在本公开一实施方式中,所述方法进一步还包括以下步骤:
将接收到的数据进行预设处理,得到待查询数据。
上文提及,已有技术中从Hbase数据库查询数据时,通过Hbase数据库提供的服务,通过将数据全量加载后,再根据数据查询请求将待查询数据返回给计算引擎,这种方式容易给Hbase数据库的服务器造成较大压力。因此,本公开实施例中,计算引擎从Hbase数据库查询数据时,不实用Hbase数据库提供的查询服务,而是从Hbase数据库获取待查询数据对应的目标Region的文件目录,进而根据文件目录通过直接读取磁盘上的Hfile文件或者内存获得待查询数据。由于Hbase数据库提供的数据查询服务在查询过程中,可以对所查询到的数据进行合并等预设处理之后,再返回给计算引擎,而本实施例中,由于计算引擎直接读取磁盘上的Hfile文件和内存中的Memstore文件,因此所读取到的数据未经过其他处理。所以计算引擎在读取到Hfile文件或Memstore中的数据之后,可以针对相同键值的数据进行合并等预设处理,最终得到待查询数据。
图2所示及相关实施方式中涉及的技术术语和技术特征与图1所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图2所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1所示及相关实施方式的解释的说明,此处不再赘述。
图3示出根据本公开另一实施方式的数据查询方法的流程图,如图3所示,所述数据查询方法包括以下步骤S301-S310:
在步骤S301中,计算引擎向Hbase数据库发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
在步骤S302中,所述Hbase数据库接收所述Hbase数据查询请求;
在步骤S303中,所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
在步骤S304中,所述Hbase数据库向所述计算引擎返回所述目标Region的文件目录;
在步骤S305中,所述计算引擎接收所述目标Region的文件目录;
在步骤S306中,所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
在步骤S307中,所述计算引擎向所述Hbase数据库发送携带有所述存储标识的数据读取请求;
在步骤S308中,所述Hbase数据库接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
在步骤S309中,所述Hbase数据库获取并向所述计算引擎返回包括所述待查询数据的所述Hfile文件和/或Memstore文件;
在步骤S310中,所述计算引擎接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
在本公开一实施方式中,该数据查询方法可适用于在大数据计算引擎和Hbase数据库之间进行数据的查询。
在本公开一实施方式中,Hbase数据查询请求可以是大数据计算引擎发送的,大数据计算引擎例如可以是Hive计算引擎或者Spark计算引擎等。Hbase数据库接收到计算引擎的数据查询请求之后,根据数据查询请求中的待查询数据的行键(Rowkey)等索引信息确定待查询数据所在的目标Region,并确定该目标Region的文件目录。如上文中所述,一个Region中可以包括多个store,每个store包括一个Memstore文件和0或多个Hfile文件,Memstore文件包括存储在内存中的数据,而Hfile文件存储在磁盘上。因此,在接收到数据查询请求之后,可以将该目标Region的文件目录返回给计算引擎,该文件目录可以包括但不限于该目标Region下的Hfile文件的信息以及Memstore文件的信息,该Hfile文件的信息以及Memstore文件的信息可以包括但不限于文件名、文件存储路径、文件内容索引等。
Hbase数据库将上述目标Region的文件目录返回给计算引擎之后,计算引擎可以根据该目标Region的文件目录确定待读取数据对应的Hfile文件以及Memstore文件,也即计算引擎可以确定待读取数据存储在哪些Hfile文件以及是否存储在Memstore文件中。计算引擎可以将包括待读取数据的Hfile文件的标识或者路径发送给Hbase数据库,以直接读取Hfile文件;此外,如果待读取数据还存储在Memstore文件中时,可以将需要从Memstore文件读取的数据键值等发送给Hbase数据库。
Hbase数据库从计算引擎接收到上述读取目标Region中Hfile文件和/或Memstore文件的数据读取请求后,根据该数据读取请求将相应的Hfile文件以及Memstore文件中的相应数据返回给计算引擎。
在介绍本发明提供的实施例之前,首先介绍一下HBase数据库的结构:
HBase数据库以表的形式存储数据,表包括行(row)、列(column)和时间戳(Timestamp)。一行记录由若干列组成,其中的某些列又可以构成一个列族(columnfamily)。行健(row key)是用来检索一行记录的主键,是行的唯一标识,行健可以是任意字符串(最大长度是64KB,实际应用中长度一般为(10-100bytes),在HBase内部,row key保存为字节数组,存储时,数据按照row key的字典顺序(byte order)排序存储。时间戳,默认由系统指定,用户也可以显示设置。不同的时间戳用来区分不同的版本,时间戳一般按照版本从新到旧的顺序进行排列,在数据读取的时候优先读取最新版本。
在本公开一实施方式中,步骤S302,即所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region的方法步骤,进一步可以包括以下步骤:
所述Hbase数据库解析所述数据查询请求中所述待读取数据的存储标识;
所述Hbase数据库确定所述存储标识对应的目标Region;
所述Hbase数据库调用目录读取接口,获取所述目标Region的文件目录。
本实施例中,Hbase数据库端可以预先设置目录读取接口,该目录读取接口可以用于对外提供Region的文件目录。在Hbase数据库接收到计算引擎的数据查询请求之后,根据数据查询请求中待查询数据的存储标识确定对应的目标Region。在一可选实施例中,存储标识可以包括但不限于待查询数据所在的Region标识,或者待查询数据的查询键值等。Hbase数据库可以根据Region标识或者待查询数据的查询键值确定对应的目标Region,进而通过调用目录读取接口获取该目标Region的文件目录。
在本公开一实施方式中,步骤S309,即所述Hbase数据库获取并向所述计算引擎返回包括所述待查询数据的所述Hfile文件和/或Memstore文件的步骤,进一步可以包括以下步骤:
在所述数据读取请求中请求目标Region中的Hfile文件时,所述Hbase数据库调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据;
在所述数据读取请求中请求目标Region中的Memstore文件时,所述Hbase数据库调用预设的Memstore文件读取接口,从内存读取所述Memstore文件,以获取待查询数据。
如上文中所述,一个Region中的数据一部分存储在Hfile文件,一部分数据存储在Memstore,并且Hfile文件存储在磁盘上,而Memstore文件存储在内存中。为了能够直接读取Hfile文件或者Memstore中的内存数据,可以预先设置两个接口,分别为Hfile文件读取接口和Memstore文件读取接口,用于分别读取Hfile文件和Memstore文件中的内存数据。
Hbase数据库根据从计算引擎接收到的数据读取请求,可以确定计算引擎所要读取的数据在目标Region的Hfile文件中存储还是在Memstore中存储,或者既在Hfile文件中存储,也在Memstore中存储。如果待查询数据存储在Hfile文件中,Hbase可以通过调用预设的Hfile文件读取接口从Hfile文件中读取的数据返回给计算引擎,如果待查询数据存储在Memstore文件中,则可以调用预设的Memstore文件读取接口从内存读取相应的数据。
在本公开一实施方式中,在所述数据读取请求中请求目标Region中的Hfile文件时,所述Hbase数据库调用预设的Hfile文件读取接口,从磁盘上直接读取所述Hfile文件,以获取待查询数据的步骤,进一步可以包括以下步骤:
所述Hbase数据库确定所述Hfile文件的大小;
所述Hbase数据库读取所述Hfile文件中的数据块;
所述Hbase数据库遍历所述数据块中的键值数据,并获取所述待查询数据。
如上文中所述,Hfile文件主要包括六部分,分别为:Data(数据块)、Meta(元数据块)、File Info、Data Index(数据块索引)、Meta Index(元数据块索引)和Trailer。具体读取HBase数据库中KeyValue数据的过程为:创建HBase数据库中HFile文件的读取路径;创建FSdataInputStream,获取HBase数据库中HFile文件的大小;创建FixedFileTrailer,读取到尾文件块;创建HFileReaderV2对象。进而,通过HFileReaderV2对象中的getScanner()创建扫描器Scanner,并使用扫描器Scanner读取HBase数据库中HFile文件数据块。最后,再遍历读取的全部数据块中的KeyValue数据。
因此,不通过Hbase数据库提供的顶层接口也即Hbase数据库提供的服务查询数据,则可以利用上述方法直接从磁盘读取Hfile文件。在读取过程中,可以先确定Hfile文件的大小,并确定Hfile文件中各数据块,从Hfile尾数据块开始,遍历各数据块中的键值数据,以获取待查询数据。
在本公开一实施方式中,步骤S306,即所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识的步骤,进一步包括以下步骤:
所述计算引擎根据所述文件目录确定待查询数据在所述目标Region中的Hfile文件还是Memstore文件中存储;
所述计算引擎将所述待查询数据所在的所述Hfile文件和/或Memstore文件的标识确定为所述存储标识。
如上文中所述,一个Region中的数据一部分存储在Hfile文件,一部分数据存储在Memstore,并且Hfile文件存储在磁盘上,而Memstore文件存储在内存中。为了能够直接读取Hfile文件或者Memstore中的内存数据,可以预先设置两个接口,分别为Hfile文件读取接口和Memstore文件读取接口,用于分别读取Hfile文件和Memstore文件中的内存数据。
计算引擎接收到目标Region的文件目录之后,可以从中确定所要读取的数据在目标Region的Hfile文件中存储还是在Memstore中存储,或者既在Hfile文件中存储,也在Memstore中存储。如果待查询数据存储在Hfile文件中,则可以在数据读取请求中添加Hfile文件的存储标识,而如果待查询数据存储在Memstore中,则可以添加待查询数据在Memstore中的存储标识。以便Hbase可以根据查询请求中的存储标识,通过调用预设的Hfile文件读取接口从Hfile文件中读取的数据返回给计算引擎,或者调用预设的Memstore文件读取接口从内存读取相应的数据。
在本公开一实施方式中,所述方法进一步还包括以下步骤:
所述计算引擎将接收到的数据进行预设处理,得到待查询数据。
上文提及,已有技术中从Hbase数据库查询数据时,通过Hbase数据库提供的服务,通过将数据全量加载后,再根据数据查询请求将待查询数据返回给计算引擎,这种方式容易给Hbase数据库的服务器造成较大压力。因此,本公开实施例中,计算引擎从Hbase数据库查询数据时,不实用Hbase数据库提供的查询服务,而是从Hbase数据库获取待查询数据对应的目标Region的文件目录,进而根据文件目录通过直接读取磁盘上的Hfile文件或者内存获得待查询数据。由于Hbase数据库提供的数据查询服务在查询过程中,可以对所查询到的数据进行合并等预设处理之后,再返回给计算引擎,而本实施例中,由于计算引擎直接读取磁盘上的Hfile文件和内存中的Memstore文件,因此所读取到的数据未经过其他处理。所以计算引擎在读取到Hfile文件或Memstore中的数据之后,可以针对相同键值的数据进行合并等预设处理,最终得到待查询数据。
图3所示及相关实施方式中涉及的技术术语和技术特征与图1和图2所示及相关实施方式中提及的技术术语和技术特征相同或相似,对于图3所示及相关实施方式中涉及的技术术语和技术特征的解释和说明可参考上述对于图1和图2所示及相关实施方式的解释的说明,此处不再赘述。
图4示出根据本公开一实施方式的数据查询方法的应用场景示意图。图5示出根据本公开一实施方式的数据查询方法的整体流程图。如图4和5所示,Hbase数据库可以预先实现对外提供Region目录的接口,如上文中所述的目录读取接口,计算引擎在需要从Hbase数据库查询数据时,可以先从Hbase数据库请求获得待查询数据所在的Region的文件目录,进而再根据获得的Region目录确定所要读取的数据对应的Hfile文件和/或Memstore文件,进而再向Hbase数据库请求直接读取对应的Hfile文件和/或Memstore文件。Hbase数据库接收到计算引擎请求直接读取Hfile文件时,可以调用预先设置的Hfile文件读取接口,获得Hfile文件中的对应数据,并返回给计算引擎,Hbase数据库接收到计算引擎请求直接读取内存中的Memsore中的数据时,可以通过调用预先设置的内存读取接口,从Memstore中读取相应的数据,并返回给计算引擎。计算引擎在接收到数据之后,可以通过预先设置的逻辑对接收到的数据进行合并等预设处理,进而实现与Hbase数据库提供的数据查询服务同样的功能。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图6示出根据本公开一实施方式的数据查询装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述数据查询装置包括:
第一接收模块601,被配置为接收Hbase数据查询请求;
第一确定模块602,被配置为确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
第一返回模块603,被配置为返回所述目标Region的文件目录;
第二接收模块604,被配置为接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
第一获取模块605,被配置为获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
在本公开一实施方式中,该数据查询装置可适用于设置在Hbase数据库上。
图7示出根据本公开另一实施方式的数据查询装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,所述数据查询装置包括:
第一发送模块701,被配置为发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
第二接收模块702,被配置为接收所述目标Region的文件目录;
第二确定模块703,被配置为根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
第二发送模块704,被配置为发送携带有所述存储标识的数据读取请求;
第三接收模块705,被配置为接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
在本公开一实施方式中,该数据查询装置可适用于设置在计算引擎上。
图8示出根据本公开一实施方式的数据查询系统的结构框图,该系统可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图8所示,所述数据查询系统包括:计算引擎801和Hbase数据库802:
所述计算引擎801向所述Hbase数据库802发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
所述Hbase数据库802接收所述Hbase数据查询请求;
所述Hbase数据库802确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
所述Hbase数据库802向所述计算引擎801返回所述目标Region的文件目录;
所述计算引擎801接收所述目标Region的文件目录;
所述计算引擎801根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
所述计算引擎801向所述Hbase数据库802发送携带有所述存储标识的数据读取请求;
所述Hbase数据库802接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
所述Hbase数据库802获取并向所述计算引擎801返回包括所述待查询数据的所述Hfile文件和/或Memstore文件;
所述计算引擎801接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
在本公开一实施方式中,所述数据查询系统可适用于在计算引擎和Hbase数据库之间进行数据查询。
上述装置实施例所涉及的技术特征及其对应的解释和说明与上文所描述的方法实施例所涉及的技术特征及其对应的解释和说明相同、相应或相似,对于上述装置实施例所涉及的技术特征及其对应的解释和说明可参考上述方法实施例所涉及的技术特征及其对应的解释和说明,本公开在此不再赘述。
本公开实施例还公开了一种电子设备,所述电子设备包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方法步骤。
图9是适于用来实现根据本公开一实施方式的数据查询方法的计算机系统的结构示意图。
如图9所示,计算机系统900包括处理单元901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行上述实施方式中的各种处理。在RAM903中,还存储有计算机系统900操作所需的各种程序和数据。处理单元901、ROM902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。其中,所述处理单元901可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行所述数据传输方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。
本公开实施例还公开了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一方法步骤。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种数据查询方法,包括:
接收Hbase数据查询请求;
确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
返回所述目标Region的文件目录;
接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
2.根据权利要求1所述的方法,其中,确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region,包括:
解析所述数据查询请求中所述待读取数据的存储标识;
确定所述存储标识对应的目标Region;
调用目录读取接口,获取所述目标Region的文件目录。
3.一种数据查询方法,包括:
发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
接收所述目标Region的文件目录;
根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
发送携带有所述存储标识的数据读取请求;
接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
4.一种数据查询方法,包括:
计算引擎向Hbase数据库发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
所述Hbase数据库接收所述Hbase数据查询请求;
所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
所述Hbase数据库向所述计算引擎返回所述目标Region的文件目录;
所述计算引擎接收所述目标Region的文件目录;
所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
所述计算引擎向所述Hbase数据库发送携带有所述存储标识的数据读取请求;
所述Hbase数据库接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
所述Hbase数据库获取并向所述计算引擎返回包括所述待查询数据的所述Hfile文件和/或Memstore文件;
所述计算引擎接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
5.一种数据查询装置,包括:
第一接收模块,被配置为接收Hbase数据查询请求;
第一确定模块,被配置为确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
第一返回模块,被配置为返回所述目标Region的文件目录;
第二接收模块,被配置为接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
第一获取模块,被配置为获取并返回从所述Hfile文件和/或Memstore文件读取的包括所述待查询数据的数据。
6.一种数据查询装置,包括:
第一发送模块,被配置为发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
第二接收模块,被配置为接收所述目标Region的文件目录;
第二确定模块,被配置为根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
第二发送模块,被配置为发送携带有所述存储标识的数据读取请求;
第三接收模块,被配置为接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
7.一种数据查询系统,包括计算引擎和Hbase数据库:
所述计算引擎向所述Hbase数据库发送待查询数据的Hbase数据查询请求;所述数据查询请求用于从Hbase请求所述待查询数据所在的目标Region以及所述目标Region的文件目录;
所述Hbase数据库接收所述Hbase数据查询请求;
所述Hbase数据库确定所述Hbase数据查询请求中待查询数据在Hbase中的目标Region;
所述Hbase数据库向所述计算引擎返回所述目标Region的文件目录;
所述计算引擎接收所述目标Region的文件目录;
所述计算引擎根据所述文件目录确定所述待查询数据在所述目标Region的存储标识;
所述计算引擎向所述Hbase数据库发送携带有所述存储标识的数据读取请求;
所述Hbase数据库接收读取所述目标Region中Hfile文件和/或Memstore文件的数据读取请求;
所述Hbase数据库获取并向所述计算引擎返回包括所述待查询数据的所述Hfile文件和/或Memstore文件;
所述计算引擎接收所述Hfile文件和/或Memstore文件中包括所述待查询数据的数据。
8.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-4任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1-4任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110607358.0A CN113312383A (zh) | 2021-06-01 | 2021-06-01 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110607358.0A CN113312383A (zh) | 2021-06-01 | 2021-06-01 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113312383A true CN113312383A (zh) | 2021-08-27 |
Family
ID=77376780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110607358.0A Pending CN113312383A (zh) | 2021-06-01 | 2021-06-01 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312383A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239542A (zh) * | 2014-09-22 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种源分布式数据库捕获数据的系统及方法 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
CN110457279A (zh) * | 2019-07-11 | 2019-11-15 | 新华三大数据技术有限公司 | 数据离线扫描方法、装置、服务器及可读存储介质 |
CN110688382A (zh) * | 2019-09-25 | 2020-01-14 | 深圳市赛为智能股份有限公司 | 数据存储查询方法、装置、计算机设备及存储介质 |
-
2021
- 2021-06-01 CN CN202110607358.0A patent/CN113312383A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239542A (zh) * | 2014-09-22 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种源分布式数据库捕获数据的系统及方法 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
CN110457279A (zh) * | 2019-07-11 | 2019-11-15 | 新华三大数据技术有限公司 | 数据离线扫描方法、装置、服务器及可读存储介质 |
CN110688382A (zh) * | 2019-09-25 | 2020-01-14 | 深圳市赛为智能股份有限公司 | 数据存储查询方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
谭秦红: "NoSQL数据库原理与应用案例教程", 北京理工大学出版社, pages: 417 - 420 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176225B2 (en) | Data processing service | |
EP2572289B1 (en) | Data storage and processing service | |
US10713247B2 (en) | Executing queries for structured data and not-structured data | |
US10210221B2 (en) | System and method for distributed database query engines | |
CN104933112B (zh) | 分布式互联网交易信息存储处理方法 | |
US6879984B2 (en) | Analytical database system that models data to speed up and simplify data analysis | |
US11494339B2 (en) | Multi-level compression for storing data in a data store | |
CN112000636A (zh) | 基于Flink流式处理的用户行为统计分析方法 | |
EP2556446B1 (en) | Columnar storage representations of records | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
CN111221791A (zh) | 一种多源异构数据导入数据湖的方法 | |
CN105164673A (zh) | 跨数据库和文件系统的查询一体化 | |
US20170212930A1 (en) | Hybrid architecture for processing graph-based queries | |
CN111258978A (zh) | 一种数据存储的方法 | |
El Alami et al. | Supply of a key value database redis in-memory by data from a relational database | |
CN103034650B (zh) | 一种数据处理系统和方法 | |
KR101828522B1 (ko) | 이종 데이터 처리를 위한 분산 병렬 처리 시스템 | |
CN103902614A (zh) | 一种数据处理方法、设备和系统 | |
CN116775712A (zh) | 联表查询方法、装置、电子设备、分布式系统和存储介质 | |
CN116126901A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113312383A (zh) | 数据查询方法、装置、电子设备、存储介质及程序产品 | |
Vial | Different databases for different strokes | |
CN108804502A (zh) | 大数据查询系统、方法、计算机设备及存储介质 | |
CN113568892A (zh) | 一种基于内存计算对数据源进行数据查询的方法和设备 | |
Fong et al. | Toward a scale-out data-management middleware for low-latency enterprise computing |
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 |