CN106326381A - 基于MapDB构建的HBase数据检索方法 - Google Patents
基于MapDB构建的HBase数据检索方法 Download PDFInfo
- Publication number
- CN106326381A CN106326381A CN201610673258.7A CN201610673258A CN106326381A CN 106326381 A CN106326381 A CN 106326381A CN 201610673258 A CN201610673258 A CN 201610673258A CN 106326381 A CN106326381 A CN 106326381A
- Authority
- CN
- China
- Prior art keywords
- data
- hbase
- mapdb
- rowkey
- field
- 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
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/25—Integrating or interfacing systems involving database management 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
- G06F16/2272—Management thereof
-
- 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
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于MapDB构建的HBase数据检索方法,包括如下步骤:a)通过数据接口操作MapDB数据库进行数据读写操作;b)在数据写入HBase之前,先对数据进行格式化,生成Hbase的RowKey作为一级索引,并对数据分割相应字段,将用于查询的字段及其对应的RowKey写入MapDB数据库中作为二级索引;c)接着再将数据在MapDB数据库中按照HBase的表及列进行分类存储;d)采用二级索引查询HBase时,先通过查询字段在MapDB中获取对应的RowKey集合,再通过HBase提供的get方法进行数据查询。本发明能够方便地采用二级索引查询Hbase,快速匹配数据,大大提高查询性能。
Description
技术领域
本发明涉及一种数据库多字段查询方法,尤其涉及一种基于MapDB构建的HBase数据检索方法。
背景技术
HBase是一个分布式的、面向列的开源数据库,它是利用Hadoop HDFS作为其文件存储系统。随着HBase在性能和稳定性持续改善,HBase逐渐成为在大数据NoSQL领域的标准之一。在Hadoop之上提供了类似于Bigtable的能力,是Apache的Hadoop项目的子项目,其不同于一般的关系数据库而是一个适合于非结构化数据存储的数据库,另一个不同之处是HBase是基于列的而不是基于行的模式,以表的形式存储数据,表由行和列组成,列划分为若干个列族(row family),如下表所示。
与nosql数据库一样,row key是用来检索记录的主键。访问HBase table中的行,只有三种方式:1、通过单个RowKey访问;2、通过RowKey的range;3、全表扫描。RowKey行键(Row key)可以是任意字符串(最大长度是64KB,实际应用中长度一般为10-100bytes),在HBase内部,row key保存为字节数组。
目前HBase主要应用在结构化和半结构化的大数据存储上,其在插入和读取上都具有极高的性能表现,这与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序,RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯地依靠RowKey,为了能支持多条件查询,开发者需要将所有可能作为查询条件的字段一一拼接到RowKey中,这是HBase开发中极为常见的做法,但是无论怎样设计,单一RowKey固有的局限性决定了它不可能有效地支持多条件查询。通常来说,RowKey只能针对条件中含有其首字段的查询给予令人满意的性能支持,在查询其他字段时,表现就差强人意了,在极端情况下某些字段的查询性能可能会退化为全表扫描的水平,这是因为字段在RowKey中的地位是不等价的,它们在RowKey中的排位决定了它们被检索时的性能表现,排序越靠前的字段在查询中越具有优势,特别是首位字段具有特别的先发优势,如果查询中包含首位字段,检索时就可以通过首位字段的值确定RowKey的前缀部分,从而大幅度地收窄检索区间,如果不包含则只能在全体数据的RowKey上逐一查找,由此可以想见两者在性能上的差距。
由上可见,如何在确保非侵入的前提下,以高性能为首要目标,通过建立二级多列索引实现了对复杂条件查询的支持,成为HBase最受关注的研究方向。
发明内容
本发明所要解决的技术问题是提供一种基于MapDB构建的HBase数据检索方法,能够方便地采用二级索引查询Hbase,快速匹配数据,大大提高查询性能。
本发明为解决上述技术问题而采用的技术方案是提供一种基于MapDB构建的HBase数据检索方法,包括如下步骤:a)通过数据接口操作MapDB数据库进行数据读写操作;b)在数据写入HBase之前,先对数据进行格式化,生成Hbase的RowKey作为一级索引,并对数据分割相应字段,将用于查询的字段及其对应的RowKey写入MapDB数据库中作为二级索引;c)接着再将数据在MapDB数据库中按照HBase的表及列进行分类存储;d)采用二级索引查询HBase时,先通过查询字段在MapDB中获取对应的RowKey集合,再通过HBase提供的get方法进行数据查询。
上述的基于MapDB构建的HBase数据检索方法,其中,所述步骤a)通过远程rmi接口操作MapDB数据库进行数据读写操作,所述远程rmi接口调用为采用java编程语言开发的实现远程对象之间无缝调用的数据接口。
上述的基于MapDB构建的HBase数据检索方法,其中,所述步骤b)在写入HBase数据之前,每条入库数据均生成一个RowKey以及至少一个用于查询的字段,并将用于查询的字段通过rmi接口调用MapDB,将字段值及rowkey写入到MapDB中。
上述的基于MapDB构建的HBase数据检索方法,其中,所述MapDB采用哈希表HashMap存储字段值及其对应的Hbase的RowKey,并将数据按照不同的业务存储到不同的MapDB中。
上述的基于MapDB构建的HBase数据检索方法,其中,所述步骤c)中MapDB数据库采用HBase的表名作为获取HashMap的key值,采用HBase列作为HashMap中的键,并在HashMap里面存储RowKey集合。
上述的基于MapDB构建的HBase数据检索方法,其中,所述MapDB采用文件存放方式将数据写入到本地磁盘进行持久化,并在JVM关闭时关闭文件流。
上述的基于MapDB构建的HBase数据检索方法,其中,所述步骤d)通过HBase的客户端进行条件查询时,先通过rmi调用MapDB进行查询获取RowKey,再通过HBase提供的get方法获取数据。
上述的基于MapDB构建的HBase数据检索方法,其中,所述步骤b)中每条入库数据格式化生成RowKey后,按照分隔符进行分割,并将用于后续查询的字段及字段值拼接进来,写入List集合中;所述步骤c)调用MapDB的写入接口将RowKey、HBase表名及List集合传递过去,写入MapDB数据库中;所述步骤d)采用二级索引进行数据查询时,将查询条件按照入库时的拼接方式将字段及字段值进行拼接,写入List集合中,并远程rmi接口调用MapDB的查询接口将HBase表名及List集合传递过去,获取相应的RowKey集合,返回结果为List<String>集合,并通过字节流的方式返回到HBase的客户端,所述HBase的客户端采用HTable的get方法,直接将整个List<String>集合作为参数进行数据检索。
上述的基于MapDB构建的HBase数据检索方法,其中,所述HBase的客户端接收到MapDB服务器返回的RowKey集合后,判断RowKey集合是否存在数据,不存在的则直接返回;如果RowKey集合中存在数据,首先遍历该RowKey集合获取所有的RowKey,构造GET对象并写入到该RowKey集合中,然后通过HBase的批量GET方法获取HBase数据。
上述的基于MapDB构建的HBase数据检索方法,其中,还包括查询HBase时,如果查询字段中包含一级索引RowKey中的首位字段,则直接通过Scan设置StartKey和EndKey参数后进行数据查询。
本发明对比现有技术有如下的有益效果:本发明提供的基于MapDB构建的HBase数据检索方法,在数据写入HBase之前,先对数据进行格式化并分割相应字段,将用于查询的字段及其对应的RowKey写入MapDB数据库中作为二级索引,从而能够方便地采用二级索引查询Hbase,快速匹配数据,大大提高查询性能。
附图说明
图1为本发明基于MapDB构建的HBase数据检索流程示意图;
图2为本发明使用的MapDB数据库的结构导图;
图3为本发明数据写入HBase的流程图;
图4为本发明HBase数据查询的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明基于MapDB构建的HBase数据检索流程示意图。
请参见图1,本发明提供的基于MapDB构建的HBase数据检索方法,包括如下步骤:
步骤S1:通过数据接口操作MapDB数据库进行数据读写操作;
步骤S2:在数据写入HBase之前,先对数据进行格式化,生成Hbase的RowKey作为一级索引,并对数据分割相应字段,将用于查询的字段及其对应的RowKey写入MapDB数据库中作为二级索引;
步骤S3:接着再将数据在MapDB数据库中按照HBase的表及列进行分类存储;
步骤S4:采用二级索引查询HBase时,先通过查询字段在MapDB中获取对应的RowKey集合,再通过HBase提供的get方法进行数据查询。
本发明使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信,构建MapDB提供数据操作服务器。在数据写入HBase数据库之前,生成HBase的RowKey,并将需要用于查询的字段及对应的值发送到MapDB提供的接口中,MapDB按照字段名为索引构建一个Map结构的存储,将字段的值及对应的HBase的RowKey存储到Map结构中。如果字段值已经存在的,则将新的RowKey加入到原有的队列中,并写入硬盘中。在MapDB中存储完成后,按照HBase原有的API将数据写入HBase中。
MapDB中采用Hash存储,将对应的字段值Hash分散,在进行数据匹配时可以达到最快的匹配速度。对于数据量比较的大可以按照不同的业务存储到不同的MapDB中,提高MapDB的操作速度。
在进行HBase条件查询时,对应满足RowKey设计规则的查询,则直接通过RowKey进行查询,对于不满足RowKey规则的,则在进行查询是,将需要查询的表名、字段及字段值。发送到MapDB提供服务的接口中。MapDB通过表名及字段名获取存储对应的Map数据表,在从数据表中根据字段值进行检索获取RowKey的集合并返回客户端,客户端在接收到RowKey集合后,根据RowKey进行Get操作,从HBase数据库中获取数据。以此到达最快的查询性能。
由于在HBase数据库查询中,GET查询速度是最快的,因为GET查询是直接通过RowKey到对应的META表中获取Region。并快速获取到该Region中RowKey对应的值。本发明具备多条件查询优化方法并具备快速获取RowKey的能力,通过MapDB数据库能提供远程调用功能,并实现MapDB数据库的按照条件的规则进行数据写入及数据查询,达到优化的目的。MapDB数据库具备快速数据写入及查询,且MapDB是不需要安装的只需要jar包即可使用,所有的数据都是暂时缓存在内存中,写入磁盘上,在内存的查询速度上远远高于在磁盘上做查询。通过字段值构造RowKey的倒排索引以到达最快的RowKey查询。提高了多条件查询的效率,为多条件查询提供了优化的方法;该方法的条件查询过程较为简洁,且无需安装,因此更为高效,实用性强,易于推广。
本发明属于一种基于MapDB构建HBase二级索引的方法。主要涉及MapDB数据库的远程服务、MapDB数据库存储设计、查询时方案设计三方面。本发明将所有入库HBase的数据对应RowKey及需要查询的字段写入集中式的MapDB数据库,满足分布式入库的需求,按照查询字段进行分组,存储到对应的集合中,并将字段值进行Hash分组,对应的RowKey进行倒排索引存储。为HBase表的多条件查询做好优化准备。在客户端进行多条件查询时,先通过MapDB的服务接口获取该条件的RowKey集合,在通过RowKey集合进行GET查询,减少全表数据扫描,提高查询性能,达到优化效果。具体实施过程如下:
1、编程实现远程服务,在服务端实现MapDB数据库的存储。存储结构上根据字段名称作为HashMap表的Key值,可以通过该Key值获取对应的HashMap表的存储位置及数据。字段值作为HashMap表的Key值,而对应的RowKey则采用集合的方式存储到HashMap表对应的Value。通过HashMap的快速Key值匹配,提高多字段查询的获取的RowKey的性能。
编程实现远程服务,在服务端实现MapDB数据库的查询,接收客户端传递过来的字段及字段值。通过字段名获取对应的HashMap表,在根据在字段值获取对应的RowKey集合,并返回客户端。
2、客户端在写入HBase表前,先将数据进行格式化,生成RowKey及分割相应的字段。每条入库数据会生成一个RowKey及多个用于查询的字段。并将RowKey及字段、字段值通过MapDB的服务接口,写到到MapDB数据库中。写入方式采用上述的方法进行。保证达到优化的效果
3、在多条件查询数据时,将字段及字段值通过MapDB的服务接口,调用其查询方法获取字段条件对应的RowKey集合,在用这个RowKey集合调用HBase的GET方法进行数据查询。
本发明的详细优化步骤如下:
1、首先使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信,构建MapDB提供数据操作服务,并在服务器上注册TCP端口。然后启动该服务,确保其他的服务器可以通过服务器地址+端口号+服务名进行接口调用。并进行正常的数据传输。
数据写入HBase之前,通过MapDB服务器的服务器地址+端口+服务名获取MapDB服务器的接口。将数据按照分割符进行拆分,按照最常用的查询方式生成RowKey。并将可能用于查询的字段名及字段值用”#”进行连接,并放入集合中。并按照RowKey值作为key,集合做Value放入到Map中。以批量的方式将这些数据和HBase表名通过MapDB的接口调用它的写入方法。
MapDB服务器的写入方法接收到数据后,将数据集进行遍历获取RowKey、字段名、字段值。通过字段名获取HashMap集合,获取到HashMap集合后,首先使用字段值到HashMap集合中匹配是否已经存在相应的字段值,存在则将本次的RowKey加入到集合中,不存在的则创建集合将本次RowKey写入到集合中,并将该集合写入到HashMap集合中。并定时写入磁盘中。持久化数据,确保数据不会出现丢失。
比如新建一个用于提供服务的接口类实,并继承Remote这个类实现远程调用过程。Remote是JAVA程序自带的类,具体类路径java.rmi.Remote。接口类中定义写入及查询两个方法。在实现类的实现上述接口,并覆写上述的写入及查询接。该实现必须继承UnicastRemoteObject这个类,UnicastRemoteObject是有JAVA自带的程序提供,具体的类路径是:java.rmi.server.UnicastRemoteObject。在写入方法中,首先通过参数HBase表名获取MapDB的存储接口。利用字段名称获取HashMap表,并将字段值作为key,RowKey集合作为value写入HashMap表中,对于多个字段的则循环上述内容,最后将数据提交至MapDB数据库中。
2、根据用户程序指定的查询条件,查询条件满足RowKey设计规则,则直接通过Scan中的参数设置,设置StartKey和EndKey进行数据查询,对于不满足该设计条件的,获取MapDB服务的接口。并将查询条件作为参数调用接口的查询方法。查询方法中通过参数HBase表名获取MapDB的存储接口。利用字段名称获取HashMap表,并通过字段值在HashMap表中获取对应的RowKey集合,对应多个字段查询,则循环执行上述内容。最后将多个RowKey集合结合获取交集部分返回客户端。
3、进行数据入库时,首先格式化数据,每条数据生成RowKey,按照分隔符进行分割,并将用于后续查询的字段及字段值拼接进来,写入List集合中。接着调用MapDB的写入接口,将RowKey、HBase表名及List集合传递过去,写入MapDB数据库中。
MapDB服务器的查询方法接收到参数后,按照HBase表名和字段名获取MapDB数据库中对应的HashMap集合。在通过字段值到HashMap集合获取RowKey集合,并将该集合返回给客户端。也就是说,进行数据查询时,将查询条件按照入库时的拼接方式将字段及字段值进行拼接,写入List集合中,并调用MapDB的查询接口,将HBase表名及List集合传递过去,获取相应的RowKey集合,通过该RowKey集合调用HBase的查询方法,进行数据检索。
4、客户端接收到MapDB服务器返回的RowKey集合后,判断RowKey集合是否存在数据,不存在的则直接返回。RowKey集合中存在数据的,首先遍历该集合获取所有的RowKey,构造GET对象,并写入到集合中。通过HBase的批量获取GET的方法,通过该集合获取HBase的数据,至此整个查询结束。此外,通过MapDB数据库获取到相应的RowKey集合在进行查询时,可以根据HBase中的相关读操作的参数配置,如caching设置大一些有利于读。Batch设置大一些有利于一次可以抓取多条数据,通过这些参数的合理设置可以提高性能,达到优化的目的。
本发明的具体实施操作过程如下:
1、首先部署分布式集群环境,该集群中的硬件环境是10台服务器,每台服务器是64G内存,CPU采用4个Intel(R)Xeon(R)CPU E5-2630v2@2.60GHz,硬盘是6*1T,操作系统是Centos6.5。按照官方文档在服务器中安装Hadoop组件。然后将HDFS、Zookeeper及HBase按照正常顺序开启服务。本实例中源数据的格式是1451011513,332,30,2bbb1935567cac4f2bbb1934567cac4f,899,88第一列是时间(秒),第二列是毫秒,第三列是设备编号,第四列是数据ID,第五列是厂商编号,第五列是位置编号。条件查询是指给定设备编号或厂商编码或位置编号,查找在满足这些条件的所有信息,源数据有100亿条数据,提高查询效率是必要的。经过分析。因为查询的条件是任意不固定的,所以单从RowKey设计上进行查询优化是无法满足性能要求的,必须查询二级索引的方案来提升查询性能,采用MapDB数据库作为二级索引的数据存储,不在RowKey的查询范围内的都通过MapDB数据库构建二级索引,通过MapDB数据库获取不同的查询字段及对应的RowKey,达到优化的结果。
2、再挑选其中一台主节点服务器作为MapDB数据库提供服务的服务节点,将已经实现RMI服务的程序部署到该节点上,并启动注册服务,注册端口为2007,该端口号可以根据实际情况进行调整,集群上的其他服务器可以通过这个节点的ip、端口号及服务名去调用MapDB数据库的服务。MapDB数据库的数据操作如图2所示。在实例化MapDB是采用newFileDB的这种方式,这种方式可以将数据持久化到本地磁盘上,另外需要设置closeOnJvmShutdown方法,保障在JVM关闭的时候才关闭MapDB数据库,而MapDB数据库在此采用HashMap的存储方式,不需要采用TreeMap的结构,因为不需要对数据进行排序且数据更加离散在进行数据检索时达到更好的效果。每批数据写入MapDB数据库后,都需要调用commit的方法,将数据写入到本地磁盘进行持久化,保障数据的安全可靠性。
3、客户端导入数据时,将数据进行格式化,选用设备编号作为RowKey,厂商编号、位置编号则采用二级索引的方式进行存储。整体数据入库流程如图3所示,将数据按照每10000条作为一批数据,每批数据入库HBase之前调用MapDB数据库的服务接口,将RowKey、厂商编号、位置编号作为参数传递到该接口上。确认节点调用成功后,将数据写入HBase中,所有的数据存储为一个列,减少IO的压力。达到更快的入库性能。
4、在优化查询时,如图4所示,首先是客户端获取查询条件时从条件上判断是否是设备编号的查询,如果是只需调用HBase的scan方法,然后设置StartKey和EndKey。使用HTable的getScanner方法进行进行获取数据,客户端与regionserver通信一次,会找到regionserver的region,并扫描region返回一定数据。这个数据量是由scan的Batch指定的。而caching的作用就是通信一次找到region,调用扫描caching次,也就是说用这两个参数的话,一次通信可以返回的数据为caching*batch条,显然这会减少客户端和rs的通信量。
5、在所有非设备编号查询中,先提取查询条件,调用MapDB数据库的服务接口,获取RowKey集合,返回结果为List<String>集合,通过字节流的方式返回到客户端。客户端采用HTable的get方法,直接将整个集合作为参数,而不采用遍历集合在进行查询,这样可以减少RPC的请求次数,进而提升查询的性能。在查询过程中,客户端采用静态变量的方式保存MapDB数据库的服务接口,不需要每次入库都需要重新去获取该服务接口。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (10)
1.一种基于MapDB构建的HBase数据检索方法,其特征在于,包括如下步骤:
a)通过数据接口操作MapDB数据库进行数据读写操作;
b)在数据写入HBase之前,先对数据进行格式化,生成Hbase的RowKey作为一级索引,并对数据分割相应字段,将用于查询的字段及其对应的RowKey写入MapDB数据库中作为二级索引;
c)接着再将数据在MapDB数据库中按照HBase的表及列进行分类存储;
d)采用二级索引查询HBase时,先通过查询字段在MapDB中获取对应的RowKey集合,再通过HBase提供的get方法进行数据查询。
2.如权利要求1所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述步骤a)通过远程rmi接口操作MapDB数据库进行数据读写操作,所述远程rmi接口调用为采用java编程语言开发的实现远程对象之间无缝调用的数据接口。
3.如权利要求1所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述步骤b)在写入HBase数据之前,每条入库数据均生成一个RowKey以及至少一个用于查询的字段,并将用于查询的字段通过rmi接口调用MapDB,将字段值及rowkey写入到MapDB中。
4.如权利要求3所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述MapDB采用哈希表HashMap存储字段值及其对应的Hbase的RowKey,并将数据按照不同的业务存储到不同的MapDB中。
5.如权利要求4所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述步骤c)中MapDB数据库采用HBase的表名作为获取HashMap的key值,采用HBase列作为HashMap中的键,并在HashMap里面存储RowKey集合。
6.如权利要求5所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述MapDB采用文件存放方式将数据写入到本地磁盘进行持久化,并在JVM关闭时关闭文件流。
7.如权利要求1所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述步骤d)通过HBase的客户端进行条件查询时,先通过rmi调用MapDB进行查询获取RowKey,再通过HBase提供的get方法获取数据。
8.如权利要求7所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述步骤b)中每条入库数据格式化生成RowKey后,按照分隔符进行分割,并将用于后续查询的字段及字段值拼接进来,写入List集合中;所述步骤c)调用MapDB的写入接口将RowKey、HBase表名及List集合传递过去,写入MapDB数据库中;所述步骤d)采用二级索引进行数据查询时,将查询条件按照入库时的拼接方式将字段及字段值进行拼接,写入List集合中,并远程rmi接口调用MapDB的查询接口将HBase表名及List集合传递过去,获取相应的RowKey集合,返回结果为List<String>集合,并通过字节流的方式返回到HBase的客户端,所述HBase的客户端采用HTable的get方法,直接将整个List<String>集合作为参数进行数据检索。
9.如权利要求7所述的基于MapDB构建的HBase数据检索方法,其特征在于,所述HBase的客户端接收到MapDB服务器返回的RowKey集合后,判断RowKey集合是否存在数据,不存在的则直接返回;如果RowKey集合中存在数据,首先遍历该RowKey集合获取所有的RowKey,构造GET对象并写入到该RowKey集合中,然后通过HBase的批量GET方法获取HBase数据。
10.如权利要求1所述的基于MapDB构建的HBase数据检索方法,其特征在于,还包括查询HBase时,如果查询字段中包含一级索引RowKey中的首位字段,则直接通过Scan设置StartKey和EndKey参数后进行数据查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610673258.7A CN106326381B (zh) | 2016-08-16 | 2016-08-16 | 基于MapDB构建的HBase数据检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610673258.7A CN106326381B (zh) | 2016-08-16 | 2016-08-16 | 基于MapDB构建的HBase数据检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106326381A true CN106326381A (zh) | 2017-01-11 |
CN106326381B CN106326381B (zh) | 2019-06-25 |
Family
ID=57740670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610673258.7A Expired - Fee Related CN106326381B (zh) | 2016-08-16 | 2016-08-16 | 基于MapDB构建的HBase数据检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326381B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844654A (zh) * | 2017-01-23 | 2017-06-13 | 公安部第三研究所 | 面向警务实战的海量视频分布式检索方法 |
CN107577714A (zh) * | 2017-08-07 | 2018-01-12 | 上海斐讯数据通信技术有限公司 | 一种基于HBase的数据查询方法 |
CN107729553A (zh) * | 2017-11-07 | 2018-02-23 | 北京京东金融科技控股有限公司 | 系统数据对账方法及装置、存储介质、电子设备 |
CN108153805A (zh) * | 2017-11-17 | 2018-06-12 | 广东睿江云计算股份有限公司 | 一种高效清理Hbase时序数据的方法、系统 |
CN108398641A (zh) * | 2017-11-30 | 2018-08-14 | 深圳市科列技术股份有限公司 | 一种电池数据处理方法和电池数据服务器 |
CN108875743A (zh) * | 2017-05-15 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 一种文本识别方法及装置 |
CN109144995A (zh) * | 2017-06-26 | 2019-01-04 | 辽宁艾特斯智能交通技术有限公司 | 一种高速公路海量交易数据检索方法 |
CN109697200A (zh) * | 2018-12-18 | 2019-04-30 | 厦门商集网络科技有限责任公司 | 一种基于Solr的HBase二级索引方法及设备 |
CN109710667A (zh) * | 2018-11-27 | 2019-05-03 | 中科曙光国际信息产业有限公司 | 一种基于大数据平台的多源数据融合共享实现方法及系统 |
CN110347722A (zh) * | 2019-07-11 | 2019-10-18 | 软通智慧科技有限公司 | 基于HBase的数据获取方法、装置、设备及存储介质 |
CN110659271A (zh) * | 2019-08-29 | 2020-01-07 | 福建天泉教育科技有限公司 | 一种数据删除的优化方法及终端 |
US10552394B2 (en) | 2017-09-07 | 2020-02-04 | International Business Machines Corporation | Data storage with improved efficiency |
CN111125108A (zh) * | 2019-12-24 | 2020-05-08 | 深圳市信联征信有限公司 | 基于Lucene的HBASE二级索引方法、装置及计算机设备 |
CN111125119A (zh) * | 2019-12-30 | 2020-05-08 | 中科星图股份有限公司 | 一种基于HBase的时空数据存储与索引方法 |
CN111259004A (zh) * | 2020-01-08 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
CN112800058A (zh) * | 2021-01-27 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种HBase二级索引的实现方法 |
US11663177B2 (en) | 2020-05-04 | 2023-05-30 | International Business Machines Corporation | Systems and methods for extracting data in column-based not only structured query language (NoSQL) databases |
US11675751B2 (en) | 2020-12-01 | 2023-06-13 | International Business Machines Corporation | Systems and methods for capturing data schema for databases during data insertion |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN103488704A (zh) * | 2013-09-06 | 2014-01-01 | 乐视致新电子科技(天津)有限公司 | 一种数据存储方法及装置 |
CN103955538A (zh) * | 2014-05-19 | 2014-07-30 | 携程计算机技术(上海)有限公司 | HBase数据持久和查询方法及HBase系统 |
CN104731922A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | 基于分布式数据库HBase的结构化数据的快速检索系统及方法 |
-
2016
- 2016-08-16 CN CN201610673258.7A patent/CN106326381B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN103488704A (zh) * | 2013-09-06 | 2014-01-01 | 乐视致新电子科技(天津)有限公司 | 一种数据存储方法及装置 |
CN103955538A (zh) * | 2014-05-19 | 2014-07-30 | 携程计算机技术(上海)有限公司 | HBase数据持久和查询方法及HBase系统 |
CN104731922A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | 基于分布式数据库HBase的结构化数据的快速检索系统及方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844654A (zh) * | 2017-01-23 | 2017-06-13 | 公安部第三研究所 | 面向警务实战的海量视频分布式检索方法 |
CN108875743B (zh) * | 2017-05-15 | 2022-02-22 | 创新先进技术有限公司 | 一种文本识别方法及装置 |
CN108875743A (zh) * | 2017-05-15 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 一种文本识别方法及装置 |
CN109144995A (zh) * | 2017-06-26 | 2019-01-04 | 辽宁艾特斯智能交通技术有限公司 | 一种高速公路海量交易数据检索方法 |
CN107577714A (zh) * | 2017-08-07 | 2018-01-12 | 上海斐讯数据通信技术有限公司 | 一种基于HBase的数据查询方法 |
US10552394B2 (en) | 2017-09-07 | 2020-02-04 | International Business Machines Corporation | Data storage with improved efficiency |
CN107729553A (zh) * | 2017-11-07 | 2018-02-23 | 北京京东金融科技控股有限公司 | 系统数据对账方法及装置、存储介质、电子设备 |
CN108153805A (zh) * | 2017-11-17 | 2018-06-12 | 广东睿江云计算股份有限公司 | 一种高效清理Hbase时序数据的方法、系统 |
CN108398641A (zh) * | 2017-11-30 | 2018-08-14 | 深圳市科列技术股份有限公司 | 一种电池数据处理方法和电池数据服务器 |
CN109710667A (zh) * | 2018-11-27 | 2019-05-03 | 中科曙光国际信息产业有限公司 | 一种基于大数据平台的多源数据融合共享实现方法及系统 |
CN109697200A (zh) * | 2018-12-18 | 2019-04-30 | 厦门商集网络科技有限责任公司 | 一种基于Solr的HBase二级索引方法及设备 |
CN110347722A (zh) * | 2019-07-11 | 2019-10-18 | 软通智慧科技有限公司 | 基于HBase的数据获取方法、装置、设备及存储介质 |
CN110659271A (zh) * | 2019-08-29 | 2020-01-07 | 福建天泉教育科技有限公司 | 一种数据删除的优化方法及终端 |
CN110659271B (zh) * | 2019-08-29 | 2022-07-26 | 福建天泉教育科技有限公司 | 一种数据删除的优化方法及终端 |
CN111125108A (zh) * | 2019-12-24 | 2020-05-08 | 深圳市信联征信有限公司 | 基于Lucene的HBASE二级索引方法、装置及计算机设备 |
CN111125119A (zh) * | 2019-12-30 | 2020-05-08 | 中科星图股份有限公司 | 一种基于HBase的时空数据存储与索引方法 |
CN111259004A (zh) * | 2020-01-08 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
WO2021139376A1 (zh) * | 2020-01-08 | 2021-07-15 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
CN111259004B (zh) * | 2020-01-08 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
US11868330B2 (en) | 2020-01-08 | 2024-01-09 | Tencent Technology (Shenzhen) Company Limited | Method for indexing data in storage engine and related apparatus |
US11663177B2 (en) | 2020-05-04 | 2023-05-30 | International Business Machines Corporation | Systems and methods for extracting data in column-based not only structured query language (NoSQL) databases |
US11675751B2 (en) | 2020-12-01 | 2023-06-13 | International Business Machines Corporation | Systems and methods for capturing data schema for databases during data insertion |
CN112800058A (zh) * | 2021-01-27 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种HBase二级索引的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106326381B (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326381A (zh) | 基于MapDB构建的HBase数据检索方法 | |
US11263268B1 (en) | Recommending query parameters based on the results of automatically generated queries | |
US20230027188A1 (en) | Hybrid execution of playbooks including custom code | |
US11216511B1 (en) | Executing a child query based on results of a parent query | |
CN106227800B (zh) | 一种高度关联大数据的存储方法及管理系统 | |
US11409756B1 (en) | Creating and communicating data analyses using data visualization pipelines | |
US11604799B1 (en) | Performing panel-related actions based on user interaction with a graphical user interface | |
CN104750681B (zh) | 一种海量数据的处理方法及装置 | |
US10733172B2 (en) | Method and computing device for minimizing accesses to data storage in conjunction with maintaining a B-tree | |
US8825581B2 (en) | Simplifying a graph of correlation rules while preserving semantic coverage | |
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其系统 | |
CN106815338A (zh) | 一种大数据的实时存储、处理和查询系统 | |
CN104252528B (zh) | 基于标识符空间映射的大数据二级索引构建方法 | |
US11644955B1 (en) | Assigning a global parameter to queries in a graphical user interface | |
US20230161760A1 (en) | Applying data-determinant query terms to data records with different formats | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN109255055A (zh) | 一种基于分组关联表的图数据存取方法和装置 | |
CN107480252A (zh) | 一种数据查询方法、客户端、服务端及系统 | |
US11720824B1 (en) | Visualizing outliers from timestamped event data using machine learning-based models | |
CN111221791A (zh) | 一种多源异构数据导入数据湖的方法 | |
US11593477B1 (en) | Expediting processing of selected events on a time-limited basis | |
US11886844B1 (en) | Updating reusable custom functions across playbooks | |
CN103795811A (zh) | 一种基于元数据保存存储信息及统计管理数据的方法 | |
CN104615734B (zh) | 一种社区管理服务大数据处理系统及其处理方法 | |
US10380115B2 (en) | Cross column searching a relational database table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190625 Termination date: 20190816 |