鼠年大吉
HAPPY 2020'S NEW YEAR
上一篇文章,我们将用户的购物数据用Hive进行了非实时的大数据分析,并为他们打上了标签,某些同学喜欢衣服,某些同喜欢汽车。那这些标签数据究竟存到了哪里,标签数据是否永远保存,这些标签数据是否能够不断更新?
一、这些数据对存储有什么要求?
1、希望数据存储容量很大:中国有超过13个人口,每个人的个人画像数据超过上百项,数据超过PB级别很容易,我们希望这个数据存储的空间很大、而且可以不断扩展。
2、希望能随时增加数据类型:社会在不断变化,新生事物不断,我们无法知道明天会有什么新的潮流产生,我们希望这些数据存储的关键字可以随时增加。如“是否外星人结婚”这个属性我们现在不可能加上,但将来有可能要求加上。
3、希望存储的成本很低:数据量这么大,我们希望存储的成本非常低。
4、希望存储的可靠性很高:这些大数据就是财富,我们希望这些数据可以永远保存起来。
二、我们来一个实际案例
1、在Hive中创建HBase表格格式
在Hive中创建了一张表,将该数据直接存储到了HBase中,而不是将Hive表直接存储到了HDFS中。
我创建了一个bigdata的Hive表,字段有no,name,likeclothes,并将该表存储到了Hbase中。Hbase中的列族有:key,info。
2、在Hive中进行再进行数据分析
并将分析结果insert入刚才创建的表格中。
3、我们将大数据分析后的数据全部保存至Hbase中
我们通过HIVE分析后,直接将分析后的数据存储到HIVE表中,实际是直接存储到了HBase中。
我们在Hbase中用scan查询数据,发现hive的分析结果已存储到HBase中。
三、Hbase究竟是何方神圣
1、Hbase扩展方便。Hbase基于列族进行扩展,如果数据量小,将同一个表格存储于region server服务器中,如果数据量大,Hbase将自动根据列族或rowkey将数据分散至不同的region server中存储。
如下图,12表,分别存储至3台region server中。
2、Hbase可以随时增加数据类型。Hbase的列族下面可以任意创造元数据,这样,我们可以随时向HBase中insert入不同的用户爱好属性。如info:sex,代表性别;info:marriedwithAllien,代表是否与外星人结婚。
3、HBase存储成本很低。Hbase基于便宜的x86存储,够便宜。如下图,Hbase的数据实际看到存在了hdfs中。
4、基于HDFS,数据可多副本,可靠性高。Hdfs默认支持三副本,你也可以任意设置。