关于hbase和hive的选择

                             关于hbase和hive的选择

    hbase是一个nosql数据库,它能提供实时写入和实时查询,但是查询的灵活性偏低,必须按其rowkey进行查询,不带rokwkey的查询方式效率极其低下 。hive是一个数据仓库,它的主要作用是统计分析,当然也可以做查询,响应速度非常慢。那么我们到底是用hbase,还是用hive,还是hive over hbase呢?假如我们的数据来源是kafka:

   场景一:如果我们需要提供有限的实时查询,且通过rowkey能够满足,也需要提供灵活的统计分析,那么我们需要hbase,也需要hive,那么我们如何同步数据到hive中,一种是在hive中建立hbase的关联表,直接同步hbase的数据,hive同步hbase数据实际上还是通过hbase的scan进行的,但如果无法通过rowkey进行同步,这将是一个非常恼火的事情,不仅会大大影响hbase的性能,而且效率底下。另外一种是通过flume往hive(hdfs)写,这个时候hive统计时直接读取hdfs数据,不需要经过hbase,效率更高。

    场景二:如果不需要提供有限实时查询,只需要统计分析,那么我们只需要通过flume往hive(hdfs)写。

    场景三:如果我们需要多维度查询,也需要统计分析,那么我们可能需要选择elasticsearch来做数据写入,也需要通过flume往hive(hdfs)写。

    一旦我们选择hdfs和elasticsearch(或者hbase),那么我们为了节约成本,都建议elasticsearch(或者hbase)只存储热点数据(即最近几个月或者1年的数据),而hdfs存储永久数据,另外hive的效率相对较低,建议用spark取代hive进行统计分析。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容