一、前言HBase的基本概念和环境部署,可以参考我之前的文章:列式存储的分布式数据库——HBase(环境部署)二、命令行操作(hbase shell)1)连接HBase官方文档:https://hbase.apache.org/book.
HBase 表中的每行数据都由一个 RowKey 和多个 Column组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。
HBase是一个构建在HDFS之上,用于海量数据存储分布式列存储系统。举例: 原表:索引表:这种方式的思想是再构建一张hbase表,列族的列这里的name作为索引表的rowkey,根据rowkey查询出数据hbase是很快的,拿到id后,也就拿到了原表的rowkey了,因为源表的rowkey就是id,每次查询一共需要查询两张表。
如果采用 Bloom Filter,当 upsert 数据到来时,拆分为 insert 和 delete 操作,如果通过 bloom filter 过滤掉那些之前没有 insert 过数据的 delete 操作,这将极大的提高 upsert 的效率。
在大数据处理场景中,流处理和批处理使用到的技术大致如下:批处理会将源业务系统中的数据通过数据抽取工具将数据抽取到HDFS中,这个过程可以使用MapReduce、Spark、Flink技术对数据进行ETL清洗处理,也可以直接将数据抽取到Hive数仓中,一般可以将结构化的数据直接抽取到Hive数据仓库中,然后使用HiveSQL或者SparkSQL进行业务指标分析,如果涉及到的分析业务非常复杂,可以使用Hive的自定义函数或者Spark、Flink进行复杂分析,这就是我们通常说的数据指标分析。
要想非常明确什么场景下用Hbase,那么我们来先了解下Hbase的主要核心特性,那么在什么业务场景下用Hbase,就比较清晰了!Hbase是一种在Hadoop之上的NoSQL的Key/vale数据库,底层依靠HDFS进行数据存储。