先谈谈传统关系型数据库的一些缺点
- 查询时最小操作单位为行,在需要查询一行中某一个字段时,虽然显示字段个数可以控制,但是在执行sql语句时,会将条数据加载到内存中,浪费内存
- 数据插入问题。当插入一条数据,某些字段为空时,数据库仍然会分配磁盘空间给它,造成了磁盘空间的浪费。
hbase是什么?
是一个内存型数据库,存储格式为 列存储,结构包含rowkey(类似主键),列信息(列簇名+字段名),字段值,时间戳(每次插入时更新)。
hbase作用?
数据存储位置在hadoop的hdfs上,存储量大,用于大数据的数据存储,
为什么使用hbase?
hdfs自身也能存储大数据文件,为什么还要使用hbase,因为hdfs虽然支持大数据存储,但是对于数据的精确查询并不支持,为了能业务需求,我们需要一个既支持大量数据存储,又支持数据精确查询,hbase就被需要了。
谈谈hbase的crud
进行crud前需要创建库namespace,以及表格table
1.添加:添加字段
2.删除:删除字段,删除表,删除库
3.修改:修改字段(实际并没有删除,只是新添加了一条数据,更新了时间戳)
4.查询:根据rowkey和列簇查询,根据rowkey和列簇和字段值查询,根据rowkey和列簇和时间戳查询,根据时间戳区间查询…
hbase对关系型数据库遗留问题解决
1.hbase存储数据时最小单位为列簇,查询时精确到列,一个字段对应一个列,不会查询到多余字段,解决了内存浪费问题
2.当存储时如果该条数据该字段为空,hbase将不会存储,也解决了磁盘浪费问题