前言:
之前在公司写一套hive大数据查询接口,对大数据环境与查询有了一定了解,这里写个入门文章总结一下。一开始我们的方案是java直接连hive去查,数据是存hbase的,大数据工程师在hive和hbase之间做了映射,所以在hive中能查到。但是经过我的实际测试,直接连hive查速度很慢,即使只有几条数据查出来也要等待n秒钟,关于这个问题的分析我在网上看到的最好懂的说法是hive是数据仓库,原理和数据库不同,没有为数据建立索引,所以性能达不到数据库级别。所以最终的方案是在大数据环境引入了impala工具,通过把hive的元数据刷到内存,java查数据时去内存查,这样子性能有了明显提高,但这种方式的话数据就不能只存hbase了,要存到hive中,顺便说一下,我们对应的项目是在云上的微服务,所以大数据环境也在云上。
正文:
接下来我对查询过程做一个demo级的描述:
1、先用远程工具登录上远程的云主机节点,在linux环境输入"hive"命令进入hive的客户端(这里假设公司的大数据工程师已经布好并启动了大数据环境)。
2、建表:
hiveQL的语法规范跟SQL差不多,比如说: