一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于HBase的数据同步方法、装置及存储介质与流程

2022-05-08 05:44:04 来源:中国专利 TAG:

一种基于hbase的数据同步方法、装置及存储介质
技术领域
1.本发明涉及大数据技术领域,具体涉及一种基于hbase的数据同步方法、装置及存储介质。


背景技术:

2.目前,hbase作为大数据领域常用的分布式数据库,支持千亿行、百万列的数据存储,但hbase本身只提供基于行键和全表扫描的查询,涉及到了多条件的组合查询时,只能通过全表扫描,但效率低下。多条件组合查询在大数据应用场景中是比较常见的,我们产品中的indexer基于开源hbase-indexer进行改造,将hbase表里的某些列索引到es里面,不会给hbase带来入侵式的代码,而且不会影响写入性能。该需求可以提升hbase二级索引的效率,满足全文索引场景。大数据量多查询组合场景下,可将查询耗时从小时级提升至秒级,组合查询性能极大提升,但是由于开源hbase-indexer社区近几年不够活跃,indexer组件的部分核心设计逻辑已很长时间没有进行优化,限制了indexer组件的性能。
3.在实际使用中存在以下问题:每个表的索引都会模拟一个regionserver服务,对hbase中所有表写入数据的wal文件进行解析,但仅保留该索引对应表的写入记录,有多少个二级索引表,就模拟多少个regionserver进行数据同步和解析。在高负载背景下,会引起机器资源消耗殆尽,进而导致indexer组件处于不可用状态,对业务影响极大。


技术实现要素:

4.为了解决上述背景技术中提到的至少一个问题,本发明提供了一种基于hbase的数据同步方法、装置及存储介质,通过公用region server对数据进行同步利于数据的索引,大幅度降低内存、cpu和线程资源占用,提高indexer组件高负载场景下的鲁棒性,提高产品竞争力。
5.本发明实施例提供的具体技术方案如下:
6.第一方面,提供一种基于hbase的数据同步方法,所述方法包括:
7.接收用户操作索引并更新对应的索引列表;
8.接收hbase数据并同步到公用region server中;
9.indexer根据所述索引列表对所述公用region server中数据进行索引,得到索引数据;
10.根据更新后的所述索引列表对所述索引数据进行过滤,输出有效数据流,并将所述有效数据流写入es中。
11.进一步的,构建公用region server,并采用所述公用region server对所述hbase数据进行同步。
12.进一步的,在将所述有效数据流写入es中之前,还包括:将所述有效数据流转换为所述es可识别的数据格式。
13.进一步的,还包括:所述用户操作索引至少包括索引的新增、删除以及更新中的一
种或者几种。
14.进一步的,接收用户操作索引更新对应的索引列表,具体包括:
15.接收用户操作索引,自动将索引信息记录到zookeeper中;
16.通过indexer获取zookeeper中的所述索引信息,并将所述索引信息更新到所述索引列表中。
17.进一步的,接收hbase数据并同步到公用region server中,具体包括:
18.实时接收所有来自hbase的wal日志,并将所述wal日志数据同步到所述公用region server中。
19.进一步的,根据更新后的所述索引列表对所述索引数据进行过滤,输出有效数据流,具体包括:
20.将所述wal日志数据解析,得到可识别数据;
21.根据所述索引列表中的表名和列名对所述可识别数据进行过滤;
22.输出所述有效数据流。
23.进一步的,所述可识别数据为单条数据。
24.第二方面,提供一种基于hbase的数据同步装置,所述装置包括:
25.索引注册模块,用于接收用户操作索引更新对应的索引列表;
26.数据同步模块,用于接收hbase数据并同步到公用region server中;
27.数据索引模块,用于indexer根据所述索引列表对所述公用region server中数据进行索引,得到索引数据;
28.数据过滤模块,用于根据更新后的所述索引列表对所述索引数据进行过滤,输出有效数据流,并将所述有效数据流写入es中。
29.第三方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述极端及可执行指令用于执行如上所述的基于hbase的数据同步方法。
30.本发明实施例具有如下有益效果:
31.1.本实施例中通过构建公用region server,利用公用region server的特性接收所有来自hbase的wal日志数据,然后根据用户新增索引、删除索引以及更新索引的操作,更新对应的索引列表;根据索引列表对公用region server中数据进行索引,得到索引数据;然后以更新后的索引列表为筛选条件,对索引数据进行解析、过滤,输出有效数据流,并将有效数据流写入es中;通过以上方案,大幅度降低内存、cpu和线程资源占用,提高indexer组件高负载场景下的鲁棒性,提高产品竞争力;
32.2.在用户进行索引操作时,自动将索引信息记录到zookeeper中,通过indexer获取zookeeper中的所述索引信息,并将所述索引信息更新到所述索引列表中,实现对过滤信息的注册;
33.3.根据更新后的索引列表对索引数据进行过滤,即对同步的wal日志数据进行解析,将其解析为可识别的单条数据,并根据索引列表中的表名和列名进行过滤,输出仅处理需要构建索引的数据流,并将索引数据转换为es可识别的数据格式,写入es中。
附图说明
34.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1用于体现本技术中的基于hbase的数据查询方法的示意图;
36.图2示出根据本技术中的步骤s4中解析、过滤过程的示意图;
37.图3用于体现本技术所述的各个实施例的示例性系统示意图。
具体实施方式
38.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.hbase,是一种开源nosql数据库,适合于各种非结构化和半结构化的松散数据的存储和管理,利用hbase数据库技术可在服务器集群上搭建起大规模存储集群,满足大数据的存储需求。
40.es(elastic search)是一个基于lucence构建的开源、分布式restful搜索引擎,支持通过http使用json进行数据索引。
41.indexer:一种hbase二级索引工具。
42.二级索引:用于弥补hbase自身多条件组合查询不足的一种方案。
43.目前,hbase作为大数据领域常用的分布式数据库,支持千亿行、百万列的数据存储,但hbase本身只提供基于行键和全表扫描的查询,涉及到了多条件的组合查询时,只能通过全表扫描,但效率低下。多条件组合查询在大数据应用场景中是比较常见的,我们产品中的indexer基于开源hbase-indexer进行改造,将hbase表里的某些列索引到es里面,不会给hbase带来入侵式的代码,而且不会影响写入性能。该需求可以提升hbase二级索引的效率,满足全文索引场景。大数据量多查询组合场景下,可将查询耗时从小时级提升至秒级,组合查询性能极大提升,但是由于开源hbase-indexer社区近几年不够活跃,indexer组件的部分核心设计逻辑已很长时间没有进行优化,限制了indexer组件的性能。
44.在实际使用过程中存在以下问题:每个表的索引都会模拟一个regionserver服务,对hbase中所有表写入数据的wal文件进行解析,但仅保留该索引对应表的写入记录,有多少个二级索引表,就模拟多少个regionserver进行数据同步和解析。在高负载背景下,会引起机器资源消耗殆尽,进而导致indexer组件处于不可用状态,对业务影响极大。基于以上问题,本技术提出了一种基于hbase的数据同步方法、装置及存储介质,大幅度降低内存、cpu和线程资源占用,提高indexer组件高负载场景下的鲁棒性,提高产品竞争力。
45.实施例一
46.如图1为基于hbase的数据查询方法的流程图,该hbase的数据同步方法可以执行于服务端,可选的,在本实施例中可由计算机设备来执行。其中方法具体包括以下步骤:
47.步骤s1:
48.接收用户操作索引更新对应的索引列表。
49.具体的,indexer接收用户操作索引,自动将索引信息记录到zookeeper中,通过
indexer获取zookeeper中的所述索引信息,并将所述索引信息更新到所述索引列表中。其中,用户操作索引至少包括索引的新增、删除以及更新中的一种或者多种。
50.具体的,indexer以zookeeper作为元数据存储,所有索引的元数据信息都会在zookeeper中存储。根据用户操作索引的,自动的将索引信息记录到zookeeper中,通过indexer获取zookeeper中的索引信息,并将索引信息更新到所述索引列表中。当索引进行新增、删除、更新操作时,也即hbase中部分表、部分列需要进需要索引或去除索引,这些都需要进行实时更新到服务中,从而更新过滤条件。
51.进一步的,用户新增、删除、更新索引列表时,后台自动的将索引对应信息记录到zookeeper中。例如:t1表,过滤f1列;t2表,过滤f2列;t3表,新增过滤f2列等,indexer实时获取zookeeper中的索引信息,并更新过滤条件,在获取到zookeeper中的索引信息后,从实时获取的wal日志数据中查询得到:t1表的f1数据;t2表的f1数据;t3表的f2数据等。
52.例如,用户进行新增一个“性别”索引的操作,此时索引列表中也会增加一个“性别”对应的列;当用户修改了其中一个索引时,比如将“性别”修改为“姓名”,此时索引列表中也会将“性别”对应的列删除,然后增加一个“姓名”对应的列。
53.本实施例中的indexer索引器是一种基于hbase的二级索引工具,是基于hbase-indexer进行改造,相关技术中的hbase-indexer是基于solr搜索引擎进行二级索引查询,本技术实施例提供的indexer索引器基于es搜索引擎建立二级索引查询,利用es搜索引擎对hbase数据库进行实时分布式搜索和分析,能够提高hbase数据库的多条件组合查询的数据查询效率。本实施例中,indexer索引器用于接收用户输入的组合查询命令行,并对用户输入的组合查询命令行进行解析。
54.在本实施例中,用户通过客户端的显示界面输入查询语句,可选的,显示界面具有查询语句输入窗口,用户可以在该输入窗口输入查询语句,该查询语句可以单条件查询语句,也可以是多条件的组合查询命令行。本实施例以索引列表为例进行说明。当用户输入索引列表后,触发确定指令,将索引列表发送至indexer索引器。其中,索引列表可以包括:组合查询的逻辑运算符、待查询的字段、指定输出列等信息。
55.步骤s2:
56.接收hbase数据并同步到公用region server中。其中,首先构建公用region server,并采用所述公用region server对所述hbase数据进行同步。
57.具体的,构建的公用region server,借助hbase replication特性,即hbase replication的处理是由regionserver开启独立的线程去处理的,处理方式是并行且异步的,使得这种机制来实现hbase indexer使得对hbase的数据索引更加安全。而且,replication的近实时的索引同步,具有很高的灵活性和扩展性。
58.进一步的,公用region server实时接收所有来自hbase的wal日志数据,并将wal日志数据同步到公用region server中。
59.其中,开源组件是一个索引表对应一个region server,本技术中通过对indexer设计架构进行改造以及参数调整配置结合实现所有索引数据从一个公用region server中获取。公用region server借助hbase replication的特性,实时接收所有来自hbase的wal日志,并同步到公用region serve中。hbase中包含有多个region serve,所有需要索引的表均匀分布在多个region server上,通过调整参数配置,所有hbase region server的wal
日志同时发往indexer的公用region server。indexer根据维护的索引列表,从公用region server输出所有索引表的索引数据。
60.步骤s3:
61.indexer根据索引列表对公用region server中数据进行索引,得到索引数据。
62.具体的,用户通过客户端中的indexer索引器对索引列表进行索引。客户端获取到索引列表的索引信息,向公用region server发出数据查询请求以按照索引信息进行数据索引,从公用region server的wal日志数据中索引得到对应的索引数据。
63.步骤s4:
64.如图2所示,根据更新后的索引列表对索引数据进行过滤,输出有效数据流,并将有效数据流写入es中。其中,首先将有效数据路转换为es可识别数据,具体的,可识别数据为单条数据;并根据索引列表中的表名和列名对单条数据进行过滤,输出仅处理需要构建索引的数据流,并将索引数据转换为es可识别的数据格式,写入es中。
65.具体的,包括a公司、b公司、c公司以及d公司等对应的索引列表,以a公司的索引列表为例,其中索引列表包括姓名、出生日期、性别、入职年份等多个索引,确定“姓名”为需要进行过滤的索引,解析得到以“姓名”为索引的单条数据,然后再以“a公司”为表名,以“姓名”为列名进行过滤,输出以“姓名”为索引的数据流。然后将数据流转换为es可识别的数据格式,该数据流向es发出写入请求,es接收到写入请求并校验,校验通过后,将该数据流写入es。
66.其中,步骤s1、步骤s2和步骤s3的具体顺序不作限制,本领域技术人员可根据实际情况进行调整。
67.实施例二
68.对应上述实施例,本技术提供了一种基于hbase的数据同步装置,所述装置包括:
69.索引注册模块,用于接收用户操作索引更新对应的索引列表;其中,根据用户操作索引至少包括索引的新增、删除以及更新中的一种或者多种更新对应的索引列表。具体的,对indexer客户端进行改造,indexer用于接收用户的操作索引,并将索引信息变更同步到存储于zookeeper的索引列表中。
70.数据同步模块,用于接收hbase数据并同步到公用region server中,生成同步数据;具体的,首先构建公用region server,然后借助公用region server的replication特性和特定参数设置,接收并同步所有来自hbase的wal日志数据。
71.数据索引模块,用于indexer根据所述索引列表对所述公用region server中数据进行解析,得到索引数据。具体的,用户通过客户端中的indexer索引器对索引列表进行索引。客户端获取到索引列表的索引信息,向公用region server发出数据查询请求以按照索引信息进行数据索引,从公用region server的wal日志数据中索引得到对应的索引数据。
72.数据过滤模块,用于根据更新后的所述索引列表对所述索引数据进行解析、过滤,输出有效数据流,并将所述有效数据流写入es中。具体的,首先将有效数据路转换为es可识别的单条数据,并根据索引列表中的表名和列名进行过滤,输出仅处理需要构建索引的数据流,并将索引数据转换为es可识别的数据格式,写入es中。
73.图3示出可被用于实施本技术中所述的各个实施例的示例性系统。
74.如图3所示,在一些实施例中,系统能够作为各所述实施例中的任意一个用于交通
噪声控制的上述设备。在一些实施例中,系统可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或nvm/存储设备)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本技术中所述的动作的一个或多个处理器(例如,(一个或多个)处理器)。
75.对于一个实施例,系统控制模块可包括任意适当的接口控制器,以向(一个或多个)处理器中的至少一个和/或与系统控制模块通信的任意适当的设备或组件提供任意适当的接口。
76.系统控制模块可包括存储器控制器模块,以向系统存储器提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
77.系统存储器可被用于例如为系统加载和存储数据和/或指令。对于一个实施例,系统存储器可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,系统存储器可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。
78.对于一个实施例,系统控制模块可包括一个或多个输入/输出(i/o)控制器,以向nvm/存储设备及(一个或多个)通信接口提供接口。
79.例如,nvm/存储设备可被用于存储数据和/或指令。nvm/存储设备可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。
80.实施例三
81.本发明实施例提供一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行如上所述的基于hbase的数据同步方法。
82.其中,计算机可执行指令执行时实现以下步骤:
83.接收用户操作索引更新对应的索引列表;
84.构建公用region server,并通过公用region server接收hbase数据并进行他同步;
85.indexer根据所述索引列表对所述公用region server中数据进行解析,得到索引数据;
86.根据更新后的所述索引列表对所述索引数据进行解析、过滤,输出有效数据流,并将所述有效数据流写入es中。
87.具体的,indexer以zookeeper作为元数据存储,所有索引的元数据信息都会在zookeeper中存储。根据用户操作索引的,自动的将索引信息记录到zookeeper中,通过indexer获取zookeeper中的索引信息,并将索引信息更新到所述索引列表中。当索引进行新增、删除、更新操作时,也即hbase中部分表、部分列需要进需要索引或去除索引,这些都需要进行实时更新到服务中,从而更新过滤条件。构建公用region server,并通过公用region server接收hbase数据并进行他同步;公用region server实时接收所有来自hbase的wal日志数据,并将wal日志数据同步到公用region server中。
88.indexer根据所述索引列表对所述公用region server中数据进行索引,得到索引数据。具体的,用户通过客户端中的indexer索引器对索引列表进行索引。客户端获取到索引列表的索引信息,向公用region server发出数据查询请求以按照索引信息进行数据索
引,从公用region server的wal日志数据中索引得到对应的索引数据。
89.根据更新后的所述索引列表对所述索引数据进行解析、过滤,输出有效数据流。具体的,首先将有效数据路转换为es可识别的单条数据,并根据索引列表中的表名和列名进行过滤,输出仅处理需要构建索引的数据流,并将索引数据转换为es可识别的数据格式,写入es中。
90.在本实施例中,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(ram,dram,sram);以及非易失性存储器,诸如闪存、各种只读存储器(rom,prom,eprom,eeprom)、磁性和铁磁/铁电存储器(mram,feram);以及磁性和光学存储设备(硬盘、磁带、cd、dvd);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
91.尽管已描述了本发明实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例中范围的所有变更和修改。
92.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献