物理存储结构物理存储结构即为数据映射关系,而在概念视图的空单元格,底层实际根本不储存 。
文章插图
数据模型
- Name Space:命名空间,类似于关系型数据库的 database 概念,每个命名空间下有多个表 。HBase 两个自带的命名空间,分别是 hbase 和default,hbase 中存放的是 HBase 内置的表,default表是用户默认使用的命名空间 。
- Table:类似于关系型数据库的表概念 。不同的是,HBase 定义表时只需要声明列族即可,不需要声明具体的列 。因为数据存储时稀疏的,所有往 HBase 写入数据时,字段可以动态、按需指定 。因此和关系型数据库相比,HBase 能够轻松应对字段变更的场景 。
- Row:HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey 的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要 。
- Column:HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如 info:name,info:age 。建表时,只需指明列族,而列限定符无需预先定义 。
- Time Stamp:用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入 HBase 的时间 。
- Cell:由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元 。cell 中的数据全部是字节码形式存储 。
- 对象存储:比如一些app的海量的图片、网页、新闻等对象,可以存储在HBase中,有些病毒公司的病毒库也可以存储在HBase中 。
- 时空数据:主要是轨迹、气象网格之类
- 比如滴滴打车的轨迹数据主要存在HBase之中 。
- 另外大数据量的车联网企业,数据也都是存在HBase中 。
- 比如互联网出行,智慧物流与外卖递送,传感网与实时GIS等场景 。
- 时序数据:时序数据就是分布在时间上的一系列数值 。
- HBase之上有OpenTSDB模块,可以满足时序类场景的需求 。
- 比如我们有很多的设备、传感器,产生很多数据,如果规模不是特别大的厂家有几千个风机,每个风机有几百个指标,那么就会有一百万左右的时序数据,如果用采样每一秒会产生一百万个时间点,如果用传统数据库,那么每一秒会产生一百万次,持续地往MQ做一百万次,它会崩裂 。并且查询也是个大问题,除了多维查询以外,我们还会额外地增加时间纬度,查看一段时间的数据 。这时候HBase很好了满足了时序类场景的需求 。
- 推荐画像:特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在HBase上 。用户画像有用户数据量大,用户标签多,标签统计维度不确定等特点,适合HBase特性的发挥 。
- 消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上 。
- Feed流:是RSS中用来接收该信息来源更新的接口,简单的说就是持续更新并呈现给用户的内容 。比如微信朋友圈中看到的好友的一条条状态,微博看到的你关注的人更新的内容,App收到的一篇篇新文章的推送,都算是feed流 。
- NewSQL:HBase上有Phoenix的插件,可以满足二级索引、SQL的需求,对接传统数据需要SQL非事务的需求 。从NoSQL到NewSQL,Phoenix或许是新的趋势 。
经验总结扩展阅读
- 大众捷达定速巡航怎么用
- 世界上的五大人种
- 邮箱大师怎么修改密码
- 世界几大动画片出品公司
- 菌种扩大培养的目的是什么
- 大厨炒素菜怎么做
- 天生独特,对爱情无感的四大星座
- 爱情第一,在恋爱中智商为零的四大星座
- 太痴情,爱上了就忘不掉的四大星座
- 真我GT Neo2和大师探索版哪个好_怎么选择