正文
hbase根据rowkey前缀,hbase前缀查询
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
HBase从入门到精通11:HBase数据保存过程和Region分裂
1、HBase表的列族在创建之初只有一个Region,随着插入数据的增多Region变得越来越大。
2、以fileServer为例,在使用默认的split策略--IncreasingToUpperBoundRegionSplitPolicy 的情况下,16个预分区Region, 则单个Resion容量达到 min(32,50),即32GB时分裂。
3、默认,HBase 在创建表的时候,会自动为表分配一个 Region,正处于混沌时期,start-end key 无边界,所有 RowKey 都往这个 Region里分配。
HBase存储架构
1、HBase采用了类似Google Bigtable的数据模型,即一个稀疏的、分布式的、持久化的多维映射表,每个表都由行键、列族、列限定符和时间戳组成。
2、/hbase/.archive HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。
3、hbase的核心数据结构为LSM树。LSM树分为内存部分和磁盘部分。内存部分是一个维护有序数据集合的数据结构。
4、HBase系统架构如下所示,包括客户端、Zookeeper服务器、Master主服务器、Region服务器。一般而言,HBase会采用HDFS作为底层数据存储。
5、其中Hbase是基于HDFS,而oceanbase是自己内部实现的分布式文件系统,在此也可以说分布式数据库以分布式文件系统做基础存储。
6、HRegion:Hbase中分布式存储的最小单元,可以理解成一个Table HStore:HBase存储的核心。由MemStore和StoreFile组成。
hbase添加数据列标识符
put 表名,行键,列族名: 列名, 列值其中 row1 为行键(即Row Key); column family:column name 为列族名和列名; value 为插入列的值。
使用HBaseShell或HBaseAPI可以创建表,需要指定表的名称和列族。例如,创建一个名为student的表,包含一个列族info。插入数据 使用Put命令可以向表中插入数据,需要指定行键、列族、列和值。
HBase中表的数据是存储在RegionServer上的一个个Region中的,表的一个列族对应于一个Region。Region是按照数据行键Rowkey的字典序来存储数据的。
sql:结构化查询语言 nosql:非关系型数据库,列存储和文档存储(查询低延迟),hbase是nosql的一个种类,其特点是列式存储。
BloomFilter是一个列族级别的配置属性,如果在表中设置了BloomFilter,那么HBase会在生成StoreFile时包含一份BloomFilter结构的数据,称其为MetaBlock;MetaBlock与DataBlock(真实的KeyValue数据)一起由LRU BlockCache维护。
HBase本身的设计目标是支持稀疏表,而稀疏表通常会有很多列,但是每一行有值的列又比较少。如果不使用Column Family的概念,那么有两种设计方案:把所有列的数据放在一个文件中(也就是传统的按行存储)。
HBase数据结构是什么?
HBase采用了类似Google Bigtable的数据模型,即一个稀疏的、分布式的、持久化的多维映射表,每个表都由行键、列族、列限定符和时间戳组成。
RowKey 与nosql数据库们一样,RowKey是用来检索记录的主键。
HBase数据结构是什么?hbase的核心数据结构为LSM树。LSM树分为内存部分和磁盘部分。内存部分是一个维护有序数据集合的数据结构。RowKey 与nosql数据库们一样,RowKey是用来检索记录的主键。
hbase使用的是jdk提供的ConcurrentSkipListMap,并对其进行了的封装,Map结构是KeyValue,KeyValue的形式。Concurrent表示线程安全。
而HBase中的数据存储是基于列族(column family)和行键(row key)的,HBase的数据存储结构是按行键排序的有序映射表,可以通过行键的前缀匹配来检索数据。
HBase中rowkey设计有哪些注意点
必须在设计上保证RowKey的唯一性。由于在HBase中数据存储是Key-Value形式,若向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据覆盖。设计的RowKey应均匀的分布在各个HBase节点上,避免数据热点现象。
设计的RowKey应均匀的分布在各个HBase节点上, 避免数据热点现象。
rowkey的设计主要为了方便后期的查询(条件查询语句),如果设计的合理,查询速率可以大大提升 分区的设计,主要考量的是入库HBase的速率。如果设计的不合理,会导致局部入库数据过热,严重的有可能出现入库失败的情况。
避免用特殊字符。ASCII 码可显示字符有 95 个,大致顺序如下 第一个是:「空格」,最后一个是:「~」下一篇将讲讲 rowkey 的设计与优化,包括预分区的选择策略。
行键(RowKey)的设计 首先应该避免使用时序或单调(递减/递增)行键。
hbase根据rowkey前缀的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于hbase前缀查询、hbase根据rowkey前缀的信息别忘了在本站进行查找喔。