![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
Empty-cup
这个作者很懒,什么都没留下…
展开
-
HiveSQL优化点之多次insert单次扫描表
比如将一张表的数据多次查询出来装载到另外一张表中。如表table1是一个分区表,分区字段为dt,如果需要在表中查询多个特定的分区日期数据,并将数据装载到多个不同的表中或同一张表的不同分区中。一般会写成如下:INSERT INTO table2 SELECT * FROM table1 WHERE dt ='2020-12-25';INSERT INTO table3 SELECT * FROM table1 WHERE dt ='2020-12-26';INSERT INTO table4 SELEC原创 2021-03-10 15:12:10 · 967 阅读 · 1 评论 -
Hive的Metastore和hiveServer2
1.Metastore作用客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。两种连接Hive客户端方式的流程如下:bin/hin --访问--> metaStore server --访问-->MySQLbeeline --访问-->hiveServer2 --访问--> metaSto原创 2020-12-19 15:45:08 · 2035 阅读 · 1 评论 -
HiveSQL如何判断一个字段中是否包含指定字符串
判断 name 字段中是否包含字符串 “aaa”:select * from temp where locate("aaa", name) > 0;locate(字符串,字段名),如果包含,返回大于0的index位置;否则,返回0;原创 2020-12-03 12:04:21 · 30626 阅读 · 3 评论 -
Hive的模糊匹配
% 表示任意多个字符_ 表示任意一个字符用法:select * from temp where dt like “2020%”;select * from temp where dt like “2020082_”;原创 2020-12-01 15:29:12 · 4334 阅读 · 0 评论 -
Hive Cli数据显示列名,且不带表名
> set hive.cli.print.header=true //显示列名,但带表名> set hive.resultset.use.unique.column.names=false //不显示表名在hue界面也可以做相同设置:query -> editors -> 右侧齿轮 -> setting 中,进行如上设置。...原创 2020-12-01 14:56:49 · 449 阅读 · 0 评论 -
HiveSQL字段内容为null的注意点
注意:字段内容为null和字段长度为0是两回事。如:length(name) = 0 和 name is null 是两种完全不同的情况。length(name) = 10 和 length(name) != 10 都不会包含 name is null 的情况。原创 2020-12-01 14:50:57 · 992 阅读 · 0 评论 -
Hive之复杂字段分隔符
Hive中常见的字段分隔符有\001、\t、逗号、空格等单个字符的分隔符,但有时候也会碰到复杂分隔符,这些复杂分隔符不止单个字符,直接使用 fields terminated by 指定分隔符会丢失数据,此时该怎么处理呢?测试数据:zhangsan$%#40lisi$%#25wangwu$%#38可以看出字段分隔符为:$%#建表:create table hive_tb(name string,age int) ROW FORMAT SERDE 'org.apache.hadoop.h原创 2020-07-03 17:37:59 · 2305 阅读 · 0 评论 -
Hiveserver2和Hive-JDBC的基本使用
参考博客:Hiveserver2参考:https://blog.csdn.net/qq_41955099/article/details/89284009Hive-JDBC参考:https://blog.csdn.net/u010429286/article/details/78780145原创 2019-09-23 11:39:46 · 406 阅读 · 0 评论 -
HiveServer2安全认证和Hive权限管理
HiveServer2的认证方式HiveServer2提供了JDBC链接操作Hive的功能,非常实用,但也存在弊端,HiveServer2默认没有安全认证,即远程连接HiveServer2不需要用户名和密码,直接就可以作为超级用户来操作Hive及HDFS数据,这将非常危险。HiveServer2支持多种用户安全认证方式:NONE,NOSASL, KERBEROS, LDAP, PAM ,CUS...原创 2019-10-02 00:21:36 · 1217 阅读 · 0 评论 -
Hive源码编译加入自定义UDF
官网地址[http://archive.cloudera.com/cdh5/cdh/5/](http://archive.cloudera.com/cdh5/cdh/5/)下载 hive-1.1.0-cdh5.15.1-src.tar.gz 源码包版本及环境hive-1.1.0-cdh5.15.1 ***注意***:编译hive源码时,最好是在网络较好的且能通外网的环境,因为过程中会下...原创 2019-11-12 00:02:27 · 151 阅读 · 0 评论 -
Hive之json数据处理
测试数据:{"movie":"2797","rate":"3","time":"978302205","userid":"1"}{"movie":"3595","rate":"5","time":"978302103","userid":"2"}{"movie":"5462","rate":"4","time":"978303212","userid":"3"}建表:create table rating_json(json string);重要函数:json_tupledesc fu原创 2020-07-03 16:58:24 · 1750 阅读 · 0 评论 -
HiveSQL实现WordCount
先把句子拆成单个单词,再行专列,再利用子查询做聚合。select word, count(1) as cnts from (select explode(split(sentence, ",")) as word from table) tgroup by wordorder by cnts desc;原创 2020-07-03 16:48:37 · 197 阅读 · 0 评论 -
Hive的三种复杂数据类型
Hive的复杂数据类型主要分为3类:array、map 和 struct。1. array测试数据: 列间用 \t 分隔,第二列用逗号分隔。zhangsan chengdu,shanghai,beijinglisi tianjin,taiyuan,chongqingwangwu xian,nanning,beijing建表:create table hive_array(name string,locations array<string>) row format del原创 2020-07-03 16:45:58 · 1531 阅读 · 0 评论