掌桥专利:专业的专利平台
掌桥专利
首页

一种hbase数据索引到查询引擎的方法和相关装置

文献发布时间:2023-06-19 10:29:05


一种hbase数据索引到查询引擎的方法和相关装置

技术领域

本申请涉索引技术领域,特别涉及一种hbase数据索引到查询引擎的方法、装置、系统、索引器和介质。

背景技术

hbase数据没有全文检索功能,只能在直接查询行键的场景下保持高效,不能兼容全文检索的功能,所以某些场景需要将数据索引到其它查询引擎。hbase-indexer就是为了这种情况诞生的,能将数据索引到solr企业级搜索应用服务器中,还有一些索引到ES(elasticsearch)搜索服务器的方案,但是这些方案中准实时场景很多是类似hbase的replication的,基于hbase的wal机制,而全量或者增量索引到其它引擎的场景就靠扫描hbase全表,筛选范围的方式。相比准实时和全量索引数据的场景,批量的方案从性能低和使用成本高。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。

发明内容

本申请的目的是提供一种hbase数据索引到查询引擎的方法、装置、系统、索引器和介质,能够实现批量数据的导入,降低了成本,也拓宽了索引器的使用场景。其具体方案如下:

本申请提供了一种hbase数据索引到查询引擎的方法,包括:

接收hbase源端发送的wal批量导入指令信息;

根据所述wal批量导入指令信息读取zookeeper中的hfile文件位置信息;

根据所述hfile文件位置信息读取hfile文件,并将所述hfile文件转换成索引数据;

将所述索引数据批次地写入对应的查询引擎中。

优选地,所述将所述hfile文件转换成索引数据,包括:

解析所述hfile文件,得到行数据集合;

依次的根据索引规则将所述行数据集合中的每行数据进行转换,得到所述索引数据。

优选地,所述将所述索引数据批次地写入对应的查询引擎中之后,还包括:

当所述索引数据成功写入所述查询引擎中后,发送写入成功信息至所述hbase源端,以便所述hbase源端清除所述zookeeper中的所述hfile文件位置信息,并删除所述hfile文件。

优选地,所述接收hbase源端发送的wal批量导入指令信息之前,还包括:

配置所述hbase源端的批量加载的数据复制功能,以使所述hbase源端根据所述数据复制功能在执行批量加载时,发送所述wal批量导入指令信息至索引器,并将对应的批量加载的所述hfile文件位置信息存储至所述zookeeper中,且,当所述hfile文件合并或者region合并或分裂时,在完成所述索引数据写入所述查询引擎前,不删除所述hfile文件和所述zookeeper中的信息。

本申请提供了一种hbase数据索引到查询引擎的装置,包括:

Wal信息接收模块,用于接收hbase源端发送的wal批量导入指令信息;

位置信息读取模块,用于根据所述wal批量导入指令信息读取zookeeper中的hfile文件位置信息;

索引数据转换模块,用于根据所述hfile文件位置信息读取hfile文件,并将所述hfile文件转换成索引数据;

写入模块,用于将所述索引数据批次地写入对应的查询引擎中。

优选地,所述索引数据转换模块,包括:

解析单元,用于解析所述hfile文件,得到行数据集合;

索引数据转换单元,用于依次的根据索引规则将所述行数据集合中的每行数据进行转换,得到所述索引数据。

优选地,还包括:

成功信息发送模块,用于当所述索引数据成功写入所述查询引擎中后,发送写入成功信息至所述hbase源端,以便所述hbase源端清除所述zookeeper中的所述hfile文件位置信息,并删除所述hfile文件。

本申请提供了一种索引器,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述hbase数据索引到查询引擎的方法的步骤。

本申请提供了一种hbase数据索引到查询引擎的系统,包括:

hbase源端和如上所述的索引器。

本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述hbase数据索引到查询引擎的方法的步骤。

本申请提供了一种hbase数据索引到查询引擎的方法,包括:接收hbase源端发送的wal批量导入指令信息;根据所述wal批量导入指令信息读取zookeeper中的hfile文件位置信息;根据所述hfile文件位置信息读取hfile文件,并将所述hfile文件转换成索引数据;将所述索引数据批次地写入对应的查询引擎中。

可见,本申请可以执行批量导入的方式入库hbase,当接收到wal批量导入指令信息后,读取hfile文件位置信息,并根据该信息读取hfile文件,将该文件转换成符合查询引擎的索引数据,并同步到查询引擎中,实现了批量数据的导入,降低了成本,也拓宽了索引器的使用场景,不再限制hbase源端的数据导入方式,改善用户体验。

本申请同时还提供了一种hbase数据索引到查询引擎装置、系统、索引器和介质,均具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种hbase数据索引到查询引擎的方法的流程图;

图2为本申请实施例提供的一种数据写入的示意图;

图3为本申请实施例提供的一种hbase数据索引到查询引擎的装置的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

hbase数据没有全文检索功能,只能在直接查询行键的场景下保持高效,不能兼容全文检索的功能,所以某些场景需要将数据索引到其它查询引擎。hbase-indexer就是为了这种情况诞生的,能将数据索引到solr企业级搜索应用服务器中,还有一些索引到ES(elasticsearch)搜索服务器的方案,但是这些方案中准实时场景很多是类似hbase的replication的,基于hbase的wal机制,而全量或者增量索引到其它引擎的场景就靠扫描hbase全表,筛选范围的方式。相比准实时和全量索引数据的场景,批量的方案从性能低和使用成本高。

基于上述技术问题,本实施例提供一种hbase数据索引到查询引擎方法,本申请可以执行批量导入的方式入库hbase,当接收到wal批量导入指令信息后,读取hfile文件位置信息,并根据该信息读取hfile文件,将该文件转换成符合查询引擎的索引数据,并同步到查询引擎中,实现了批量数据的导入,降低了成本,也拓宽了索引器的使用场景,不再限制hbase源端的数据导入方式,改善用户体验。

具体请参考图1,图1为本申请实施例提供的一种hbase数据索引到查询引擎的方法的流程图,具体包括:

S101、接收hbase源端发送的wal批量导入指令信息;

本实施例的执行主体为索引器。本步骤的目的是为了接收hbase源端发送的wal批量导入指令信息,其中该wal批量导入指令信息可以是批量导入动作的wal信息。

在一种可实现的实施方式中,接收hbase源端发送的wal批量导入指令信息之前,还包括:

配置hbase源端的批量加载的数据复制功能,以使hbase源端根据数据复制功能在执行批量加载时,发送wal批量导入指令信息至索引器,并将对应的批量加载的hfile文件位置信息存储至zookeeper中,且,当hfile文件合并或者region合并或分裂时,在完成索引数据写入查询引擎前,不删除hfile文件和zookeeper中的信息。

可以理解的是,本实施例中,索引器允许hbase作为源端打开批量加载的数据复制功能。具体开开批量加载的数据复制功能可以是:(hbase.replication.bulkload.enabled=true,

hbase.replication.cluster.id=***,

hbase.replication.conf.dir=***,

hbase.replication.source.fs.conf.provider=***)

其中,该数据复制功能可以为版本hbase2.0.0和1.3.0的增加。在批量导入时,hbase源端发送bulkload的wal信息即wal批量导入指令信息给目标集群即对应的索引器。将批量加载的hfile文件位置保存到zookeeper中,即便发生hfile文件合并region合并或分裂,复制机制完成前不会删除hfile文件及zookeeper中的信息,以保证不会出现数据漏洞,避免了当发生合并后被删除,此时复制失败造成的hfile文件丢失的情况的发生。

可见,本实施例配置的hbase源端的批量加载的数据复制功能可以保证不会出现数据漏洞,保证了数据的安全性,避免了数据丢失的情况的发生。

S102、根据wal批量导入指令信息读取zookeeper中的hfile文件位置信息;

本实施例中会自动加载索引器的相应配置。在接收到wal批量导入指令信息后,会读取zookeeper上的hfile文件的hdfs上的hfile文件位置信息,将其作为输入送到索引模块执行步骤S103和步骤S104。当索引数据成功写入查询引擎中后,标记复制成功,通知hbase源端清理掉zookeeper中的hfile信息和不再保留hfile文件。

S103、根据hfile文件位置信息读取hfile文件,并将hfile文件转换成索引数据;

本实施例中根据该hfile文件位置信息读取远端hdfs集群上的hfile文件,此时,集群中的hfile文件仍存储,将该hfile文件的hbase格式转换为查询引擎对应的可用的索引数据。

具体地,将hfile文件转换成索引数据,包括:

解析hfile文件,得到行数据集合;

依次的根据索引规则将行数据集合中的每行数据进行转换,得到索引数据。

其中,将hfile文件解析为rowData的集合即行数据集合,批次地根据索引的规则转换为对应的索引数据,再将索引数据发送到对应的搜索引擎中。将hbase数据的不可用数据转换成可用的rowData数据,然后将rowData数据转换成查询引擎可用的数据。保证了数据的能够写入查询引擎中。

S104、将索引数据批次地写入对应的查询引擎中。

本申请将索引数据批次地写入查询引擎中,能够快速的实现数据的写入,减少了写入代价。

优选地,将索引数据批次地写入对应的查询引擎中之后,还包括:

当索引数据成功写入查询引擎中后,发送写入成功信息至hbase源端,以便hbase源端清除zookeeper中的hfile文件位置信息,并删除hfile文件。

本实施例中只有在成功写入查询引擎后,才将写入成功信息发送至hbase源端,此时源端才触发清除和删除操作,避免了在写入过程中发生故障后,造成的数据丢失的情况的发生。

基于上述技术方案,本实施例可以执行批量导入的方式入库hbase,当接收到wal批量导入指令信息后,读取hfile文件位置信息,并根据该信息读取hfile文件,将该文件转换成符合查询引擎的索引数据,并同步到查询引擎中,实现了批量数据的导入,降低了成本,也拓宽了索引器的使用场景,不再限制hbase源端的数据导入方式,改善用户体验。

请参考图2,图2为本申请实施例提供的一种数据写入的示意图,其中,包括三部分。

第一部分:源端更改。

a.允许hbase作为源端打开批量加载的数据复制功能。

b.发送bulkload的wal信息(wal批量导入指令信息)给目标端模拟。

c.将批量加载的hfile文件位置信息保存到zookeeper中并保留hfile文件。

第二部分:目标端(索引器)模拟。

a.加载相应配置及必要功能

b.收到wal信息后,读取zookeeper上的hfile文件位置信息,将其作为索引的输入。

c.待索引结束,通知hbase源端清理过程。具体的,待其索引结束,标记复制成功,通知源端清理掉zookeeper中的hfile信息和不再保留hfile文件。

第三部分:索引。

a.根据hfile文件位置信息读取远端集群上hdfs的hfile文件。

b.将hfile文件解析为rowData的集合(行数据集合)。

c.批次地将根据索引的规则转换为对应的索引数据写入到对应的搜索引擎(查询引擎)中。

可见,本实施例只更改配置方便地实现在批量导入的方式入库hbase的场景下,类似hbase-indexer的索引器将索引同步到其它查询引擎的功能。使类似索引器使用场景更宽泛,不再限制hbase端数据导入方式,增强了增量导入场景的功能,为制定方案提供更多的选择。

下面对本申请实施例提供的一种hbase数据索引到查询引擎的装置进行介绍,下文描述的装置与上文描述的方法可相互对应参照,相关模块均设置于索引器中,参考图3,图3为本申请实施例提供的一种hbase数据索引到查询引擎的装置的结构示意图,包括:

Wal信息接收模块301,用于接收hbase源端发送的wal批量导入指令信息;

位置信息读取模块302,用于根据wal批量导入指令信息读取zookeeper中的hfile文件位置信息;

索引数据转换模块303,用于根据hfile文件位置信息读取hfile文件,并将hfile文件转换成索引数据;

写入模块304,用于将索引数据批次地写入对应的查询引擎中。

优选地,索引数据转换模块303,包括:

解析单元,用于解析hfile文件,得到行数据集合;

索引数据转换单元,用于依次的根据索引规则将行数据集合中的每行数据进行转换,得到索引数据。

优选地,还包括:

成功信息发送模块,用于当索引数据成功写入查询引擎中后,发送写入成功信息至hbase源端,以便hbase源端清除zookeeper中的hfile文件位置信息,并删除hfile文件。

优选地,还包括:

配置模块,用于配置hbase源端的批量加载的数据复制功能,以使hbase源端根据数据复制功能在执行批量加载时,发送wal批量导入指令信息至索引器,并将对应的批量加载的hfile文件位置信息存储至zookeeper中,且,当hfile文件合并或者region合并或分裂时,在完成索引数据写入查询引擎前,不删除hfile文件和zookeeper中的信息。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种索引器进行介绍,下文描述的索引器与上文描述的方法可相互对应参照。

本申请提供了一种索引器,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上hbase数据索引到查询引擎的方法的步骤。

由于索引器部分的实施例与方法部分的实施例相互对应,因此索引器部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种hbase数据索引到查询引擎的系统进行介绍,下文描述的hbase数据索引到查询引擎的系统与上文描述的方法可相互对应参照。

本申请提供了一种hbase数据索引到查询引擎的系统,包括:

hbase源端和如上的索引器。

由于hbase数据索引到查询引擎的系统部分的实施例与方法部分的实施例相互对应,因此hbase数据索引到查询引擎的系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的方法可相互对应参照。

本申请提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上hbase数据索引到查询引擎的方法的步骤。

由于计算机可读存储介质部分的实施例与方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种hbase数据索引到查询引擎的方法、装置、系统、索引器和介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

相关技术
  • 一种hbase数据索引到查询引擎的方法和相关装置
  • 一种建立数据索引的方法、数据查询方法及相关装置
技术分类

06120112568500