我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HBASE二级索引

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HBASE二级索引

HBASE基于coprocessor实现二级索引


场景如下:存储UC_TWEETS表,ROWKEY设计:folderId_dayId_siteId_docId,导出有如下需求:根据campaignId导出,所以需要存储campaignId的索引表

实现步骤如下:

一, 代码实现如下:

public class HbaseCoprocessor extends BaseRegionObserver {

@Override

public void prePut(final ObserverContext<RegionCoprocessorEnvironment> e, final Put put, 

final WALEdit edit, final Durability durability) throws IOException {

Configuration configuration = HBaseConfiguration.create();

configuration.set("hbase.regionserver.lease.period", "900000");  

        configuration.set("hbase.rpc.timeout", "1800000");  

        configuration.set("hbase.client.scanner.timeout.period", "1800000");

        configuration.set("hbase.zookeeper.property.clientPort", "2181");  

        configuration.set("hbase.zookeeper.quorum", "DEV-HADOOP-01,DEV-HADOOP-02,DEV-HADOOP-03");  

        configuration.set("hbase.master", "DEV-HADOOP-01:60000");

        

        HTable table = new HTable(configuration, "UC_INDEX");

   List<Cell> kv = put.get("f1".getBytes(), "campaignId".getBytes()); 

   Iterator<Cell> kvItor = kv.iterator(); 

   while (kvItor.hasNext()) { 

    KeyValue tmp = (KeyValue)kvItor.next(); 

    String rowkey = new String(tmp.getRow());

    String value = new String(tmp.getValue());

    String newRowkey = value + "_" + rowkey;

   Put indexPut = new Put(newRowkey.getBytes()); 

   indexPut.add("f1".getBytes(), tmp.getQualifier(), tmp.getValue()); 

   table.put(indexPut); 

   } 

   table.close();

}


}


二, 把上面的HbaseCoprocessor类导出.选择Export -> Jar File,导出成ucTweet.jar文件

三, 把ucTweet.jar文件上传到HDFS,命令如下:./hadoop fs -put /data/server/ucTweet_index.jar /jars

四, 设置UC_TWEETS表的coprocessor属性,命令如下:alter 'UC_TWEETS',METHOD=>'table_att','coprocessor'=>'hdfs://192.168.9.110:9000/jars/ucTweet.jar|com.prime.dsc.inputservice.coprocessor.HbaseCoprocessor|1001|'

五, 把数据插入UC_TWEETS表,如果UC_INDEX表同样有数据,并且符合设计,则说明二级索引建立成功

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HBASE二级索引

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

「从零单排HBase 11」HBase二级索引解决方案

今天,我们就来看看有哪些二级索引方案,通过对比各个方案的优缺点,并结合我们的具体场景做出二级索引方案选型。 1.为什么需要二级索引 HBase系统单纯从解决大数据实时读写问题角度出发,重点关注于分布式存储的扩展性、容错性、读写性能等方面,为此也牺牲了很多传统关
「从零单排HBase 11」HBase二级索引解决方案
2019-12-25

HBase如何支持高效的二级索引查询

HBase支持高效的二级索引查询主要通过两种方式实现:基于协处理器的方案和非协处理器方案。基于协处理器的二级索引方案协处理器(Coprocessor):HBase的协处理器允许在RegionServer上运行自定义代码,用于管理数据。通过
HBase如何支持高效的二级索引查询
2024-10-22

MySQL 聚集索引和二级索引

Clustered and Secondary Indexes(聚集索引和二级索引)Every InnoDB table has a special index called the clustered index where the data for the
MySQL 聚集索引和二级索引
2022-03-11

使用ElasticSearch赋能HBase二级索引 | 实践一年后总结

前言:还记得那是2018年的一个夏天,天气特别热,我一边擦汗一边听领导大刀阔斧的讲述自己未来的改革蓝图。会议开完了,核心思想就是:我们要搞一个数据大池子,要把公司能灌的数据都灌入这个大池子,然后让别人用 各种姿势 来捞这些数据。系统从开始打造到上线差不多花了半
使用ElasticSearch赋能HBase二级索引 | 实践一年后总结
2019-05-04

MongoDB中二级索引和主索引的区别是什么

MongoDB中的主索引是指集合中的_id字段,默认情况下_id字段会被自动创建并作为主索引。主索引是集合中的唯一索引,它保证了集合中每个文档都有一个唯一的标识。主索引在MongoDB中是唯一的,且不能被删除。而二级索引是指除主索引外的其
MongoDB中二级索引和主索引的区别是什么
2024-04-19

InnoDB主键索引树和二级索引树的示例分析

这篇文章将为大家详细讲解有关InnoDB主键索引树和二级索引树的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们这里讨论InnoDB存储引擎,数据和索引存储在同一个文件student.ibd场景
2023-06-29

MySQL与HBase的索引机制对比

MySQL和HBase是两种不同类型的数据库系统,它们的索引机制有着本质的区别。MySQL是一个关系型数据库管理系统,支持多种类型的索引,包括B+树索引、哈希索引等,主要用于优化查询性能。而HBase是一个分布式的、面向列的NoSQL数据库
MySQL与HBase的索引机制对比
2024-10-19

怎么使用高斯Redis实现二级索引

这篇“怎么使用高斯Redis实现二级索引”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用高斯Redis实现二级索引”文
2023-07-02

使用高斯Redis实现二级索引的方法

目录一、背景二、场景一:词典补全2.1 基本方案2.2 与频率相关的词典补全三、场景二:多维索引3.1 数据编码3.2 添加新元素3.3 查询四、总结一、背景提起索引,第一印象就是数据库的名词,但是,高斯Redis也可以实现二级索引!!!
2022-07-08

MySQL二级索引查询过程是怎么样的

这篇文章将为大家详细讲解有关MySQL二级索引查询过程是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言聚簇索引就是innodb默认创建的基于主键的索引结构,而且表里的数据就是直接放在聚簇索引里
2023-06-29

解读MySQL红黑树在二级索引中的应用

MySQL中的InnoDB存储引擎使用B+树作为其索引结构,而不是红黑树。然而,红黑树是一种自平衡的二叉搜索树,它在数据库和其他数据结构中有广泛的应用。在讨论红黑树在二级索引中的应用之前,我们首先需要了解B+树的基本概念和特点。B+树是一
解读MySQL红黑树在二级索引中的应用
2024-10-08

【MySQL性能优化系列】select count(*)走二级索引比主键索引快几百倍,你敢信?

问题 在MySQL版本5.7数据测试过程中,一张百万数据的表用 select count(*)查询特别慢需要20s并且是走了主键索引,为什么查询还需要这么久?如何优化?下面我们将请到当事SQL进行发言 验证分析 猜想 先猜想一波为什么
2023-08-23

labview怎么索引二维数组

在LabVIEW中,您可以使用索引数组函数来索引二维数组。1. 打开LabVIEW并创建一个新的VI。2. 从Functions面板中的Array操作类别中拖动"Index Array"函数到Block Diagram中。3. 将要索引的二
2023-09-26

编程热搜

目录