首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hbase的后缀过滤查询

HBase原生自带了对RowKey的很多种查询策略。...通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。...PageFilter 分页过滤器,通过pageSize设置每次返回的行数,这需要客户端在遍历的时候记住页开始的地方,配合scan的startkey一起使用 FilterList 过滤器集合,Hbase...的过滤器设计遵照于设计模式中的组合模式,以上的所有过滤器都可以叠加起来共同作用于一次查询 KeyOnlyFilter 设置过滤的结果集中只包含键而忽略值, FirstKeyOnlyFilter...TimestampsFilter 这里参数是一个集合,只有包含在集合中的版本才会包含在结果集中 由于其原生带有PrefixFilter这种对ROWKEY的前缀过滤查询,因此想着实现的后缀查询的过程中

3.6K70
您找到你想要的搜索结果了吗?
是的
没有找到

HBase RowKey 设计与查询实践

使用实践 实时维表 ---- 维度字段补充在实时处理链路里面是比较常见的一种操作,例如根据商品ID补齐商品名称、描述等信息,可将商品信息表存储在HBase 中, 查询方式根据商品ID 做Get操作, 商品...多维查询场景 多维查询也就是多条件查询,需要任意维度的组合查询,但是HBase 并不擅长做数据分析,为了保证查询性能,因此通常会在离线侧或者实时侧将多维任意组合的数据指标提前加工好写入HBase 中(即...HBase 本身存储是按照RowKey 字典顺序排序的, 在数据扫描时也是按照startRowKey作为起始值顺序查询出数据。...指定页码 指定页码即可以跳转到指定的分页数据,常见以下几种方式: 内存分页:在MySQL 可通过 limit offset 方式使用,其可以直接跳过指定的行数进行查询,但是对HBASE 却不能这么使用,...只能通过扫描全表数据进行然后进行内存分页, 因此这种方式只能数据量较少的情况下使用 二级索引分页:使用es 做索引,通过es分页查询查询出rowKey, 然后查询HBase 中数据, 将scan操作转换为批量

1K20

hue 查询 hbase 操作相关参考

界面操作说明 进入hue中的hbase 进入表的查询界面 界面说明 查询语句 ,表示结束查询,可以不加 主键查询 输入主键 rowkey1,rowkey2 说明:只输入主键查询 例1:00000051...|1538229142 例2:00000051|1538229142,00000051|1538230148 根据主键的前缀查询 row_prefix*, 说明:根据主键的前几位进行模糊查询,默认只显示一条数据...ValueFilter(=,'substring:111') 列值中包含111 ValueFilter(=,'binary:111') 列值等于111 以上过滤器是大部分常用的过滤器,在hue-hbase...以下是我自己整理的一部分参考语法: hbase中有单纯根据列值查询的ValueFilter和根据列名和列值查询的SingleColumnValueFilter,可根据需要选择。...下表中是按照根据列名和列值来进行查询的参考 SQL hue_hbase select col1,col2 [col1,col2] where col1="student" SingleColumnValueFilter

1.8K30

HBASE+Solr实现详单查询

最近群里面讨论HBASE的使用场景,以及是会没落,这个还真是一句话说不清楚。本文讲其中一个场景:详单查询。 背景 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询。...HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级的快速检索,对于多字段的组合查询却无能为力。...针对HBase的多条件查询也有多种方案,但是这些方案要么太复杂,要么效率太低,本文只对基于Solr的HBase多条件查询方案进行测试和验证。...原理 基于Solr的HBase多条件查询原理很简单,将HBase表中涉及条件过滤的字段和rowkey在Solr中建立索引,通过Solr的多条件查询快速获得符合过滤条件的rowkey值,拿到这些rowkey...之后在HBASE中通过指定rowkey进行查询

2K50

Spark如何读取Hbase特定查询的数据

最近工作需要使用到Spark操作Hbase,上篇文章已经写了如何使用Spark读写Hbase全量表的数据做处理,但这次有所不同,这次的需求是Scan特定的Hbase的数据然后转换成RDD做后续处理,简单的使用...Google查询了一下,发现实现方式还是比较简单的,用的还是Hbase的TableInputFormat相关的API。...基础软件版本如下: 直接上代码如下: 上面的少量代码,已经完整实现了使用spark查询hbase特定的数据,然后统计出数量最后输出,当然上面只是一个简单的例子,重要的是能把hbase数据转换成RDD,只要转成...注意上面的hbase版本比较新,如果是比较旧的hbase,如果自定义下面的方法将scan对象给转成字符串,代码如下: 最后,还有一点,上面的代码是直接自己new了一个scan对象进行组装,当然我们还可以不自己

2.7K50

大数据查询——HBase读写设计与实践

单笔查询返回 List 大小约 50 条以下,查询频率为 100 笔 / 天左右,查询响应时间 2s。...技术选型 从数据量及查询要求来看,分布式平台上具备大数据量存储,且提供实时查询能力的组件首选 HBase。根据需求做了初步的调研和评估后,大致确定 HBase 作为主要存储组件。...众所周知,HBase 是基于 RowKey 提供查询,且要求 RowKey 是唯一的。RowKey 的设计主要考虑的是数据将怎样被访问。初步来看,我们有 2 种设计方法。...查询时,先找到 check_id 对应的 id list,然后根据 id 找到对应的记录。均为 HBase 的 get 操作。 ②将本需求可看成是一个范围查询,而不是单条查询。...process query Step1: 根据查询条件,确定 RowKey 前缀 根据 3.3 RowKey 设计介绍,HBase 的写和读都遵循该设计规则。

1.3K90

大数据查询——HBase读写设计与实践

原实现基于 Oracle 提供存储查询服务,随着数据量的不断增加,在写入和读取过程中面临性能问题,且历史数据仅供业务查询参考,并不影响实际流程,从系统结构上来说,放在业务链条上游比较重。...单笔查询返回 List 大小约 50 条以下,查询频率为 100 笔 / 天左右,查询响应时间 2s。...技术选型 从数据量及查询要求来看,分布式平台上具备大数据量存储,且提供实时查询能力的组件首选 HBase。根据需求做了初步的调研和评估后,大致确定 HBase 作为主要存储组件。...将需求拆解为写入和读取 HBase 两部分。...写入 HBase 的方法大致有以下几种: Java 调用 HBase 原生 API,HTable.add(List(Put))。

1.3K50

HBase查询一张表的数据条数的方法

HBase查询一张表的数据条数的方法 0、写在前面 1、HBase-Shell的count命令 2、Scan操作获取数据条数 3、执行Mapreduce任务 4、Hive与HBase整合 5、协处理器...HBase版本:HBase-1.1.5 Hive版本:Hive-2.1.0 1、HBase-Shell的count命令 hbase(main):017:0> help 'count' Count the...Examples: hbase> count 'ns1:t1' hbase> count 't1' hbase> count 't1', INTERVAL => 100000 hbase> count...可以看到「使用count查询表的数据条数」这个操作可能需要消耗过长时间(运行'$HADOOP_HOME/bin/hadoop jar hbase.jar rowcount' 来运行计数 mapReduce...> ["hive_hbase_test"] 5、协处理器Coprocessor实现 该方法是目前最快实现「查询一张表的数据条数」的方法 为什么利用协处理器后速度会如此之快?

1.6K20

Hbase+Solr实现二级索引提供高效查询

github地址:https://github.com/qindongliang/hbase-increment-index 业务需求: 现有一张Hbase的表,数据量千万级+,而且不断有新的数据插入...,或者无效数据删除,每日新增大概几百万数据,现在已经有离线的hive映射hbase 提供离线查询,但是由于性能比较低,且不支持全文检索,所以想提供一种OLAP实时在线分析的查询,并且支持常规的聚合统计和全文检索...(3)打包代码成一个main.jar (4)安装依赖jar给各个Hbase节点,可以拷贝到hbase的lib目录,也可以在hbase.env.sh里面配置CLASSPATH Java代码.../hbase-increment-index.jar|com.hbase.easy.index.HbaseSolrIndexCoprocesser|1001|' (8)激活表 enable 'c'...(9)启动solr或者es集群 (9)在hbase shell或者 hbase java client进行put数据,然后等待查看索引里面是否正确添加数据,如果添加失败,查看hbase的regionserver

2.9K60

图解大数据 | 海量数据库查询-Hive与HBase详解

这意味着如果要查询,必须搜索整个数据集,即使是最简单的搜索工作。 当处理结果在另一个庞大的数据集,也是按顺序处理一个巨大的数据集。...5.Hive介绍 1) Hive简介 Hive是基于Hadoop的一个数据仓库工具,用于结构化数据的查询、分析和汇总。Hive提供类SQL查询功能,它将SQL转换为MapReduce程序。...Hive不支持OLTP,Hive无法提供实时查询。...2) Hive在大数据生态环境中的位置 [8a60a92bf1a6a26a3db1906e208374bc.png] 3) Hive特点 Hive的优点 简单容易上手:提供了类SQL查询语言HQL。...表添加一列 ALTER TABLE pokes ADD COLUMNS (new_col INT) 更改表名 ALTER TABLE events RENAME TO 3koobecaf 2) 查询语句

1.2K71

HBaseHBase之how

HBase到Hive 将HBase的数据作为数据源,建立Hive外部表关联到HBase,利用Hive的HQL查询HBase数据,更进一步,将Hive的元数据同步到Impala,利用Impala的SQL...Impala就是一个查询外壳,利用Hive的元数据进行SQL快速查询。而Hive和HBase利用HDFS和MapReduce进行数据存储和计算,利用ZooKeeper进行集群管理。...为HBase提供更多维度的查询能力,根据业务需求场景力求在读和写之间找到最佳的平衡点。在实际应用中应该通过构建尽量少的索引,来满足更多的查询场景。...但事实上,查询场景可能是多维度的。例如在上面的场景基础上,还需要单独基于Phone列进行查询。这是HBase二级索引出现的背景。即二级索引是为了让HBase能够提供更多维度的查询能力。...举个例子:如果最近写入HBase表中的数据是最可能被访问的,可以考虑将时间戳作为row key的一部分。 尽量将需要查询的维度或者信息存储在行键中,因为它筛选数据的效率最高。

3.2K20

Hbase(四):Hbase原理

查询数据时,先查找内存,如果内存中有当前键对应的数据,获取数据直接返回。...由于hbase中的数据天然排序 再加上索引 整个查询也可以非常的快 Hbase中的region的寻址 在hbase中有一个hbase:meta表,其中存放了 表和region和regionSever 之间的对应关系信息...zookeeper找到meta表对应的region的位置,连接这个位置读取到meta表中的信息,才能知道要查询的表 和 表的region和region对应的regionServer的信息 再根据这些信息连接真正要查询的表...可以很快 从逻辑结构上来说: 表按照行键进行了排序,所以查询时可以很快定位 数据按照行键切分为多个HRegion,分布在多个RegionServer中,查询大量数据时,多个RegionServer可以一起工作...hbase可以提供实时的数据的处理能力,适用于在线数据查询处理,本质上是一种数据库工具。

3.9K10

对比使用Phoenix组件和原生Hbase查询的时间性能

对比使用Phoenix组件和原生Hbase查询的时间性能 之前对于使用Phoenix查询Hbase大表数据一直卡死,于是搁置了好久,昨晚终于尝试了一下,完美搞定,本节文章来使用4种方法对比Hbase...查询数据量为1.8亿+。 1.基本理论 HBase是一个分布式的基于列存储的非关系型数据库。 HBase不是关系型数据库,而是一个在hdfs上开发的面向列的分布式数据库,不支持sql。...HBase统计使用count。查询按照rowkey查询,适合存储结果,不适合做sum、count、表连接等复杂查询,而SQL则适合多表连接,查询组合等。...2.查询方式 第一种:原生Hbase查询时间 count 'mysql_data' ?...Hbase查询时间为3856秒大约1小时7分钟 第二种:Hbase查询优化 count 'mysql_data', INTERVAL => 10000000 每隔一千万查询一次: ?

4.5K20
领券