
hive
The Great Ant
做一个功成名就的人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021-05-03
手写SQL 有一个账号表如下,请写出SQL语句,查询各自区组的money排名前十的账号(分组取前10) 1)建表(MySQL) CREATE TABLE `account` ( `dist_id` int(11)DEFAULT NULL COMMENT '区组id', `account` varchar(100)DEFAULT NULL COMMENT '账号', `gold` int(11)DEFAULT 0 COMMENT '金币'); 2)最终SQL select dist_原创 2021-05-03 22:52:45 · 125 阅读 · 0 评论 -
2021-04-30
MySQL元数据备份 1)MySQL之元数据备份(项目中遇到的问题) 元数据备份(重点,如数据损坏,可能整个集群无法运行,至少要保证每日零点之后备份到其它服务器两个复本) Keepalived或者用mycat 2)MySQL utf8超过字节数问题 MySQL的utf8编码最多存储3个字节,当数据中存在表情号、特色符号时会占用超过3个字节数的字节,那么会出现错误 Incorrect string val原创 2021-04-30 23:28:48 · 99 阅读 · 1 评论 -
2021-04-29
Hive解决数据倾斜方法 1)怎么产生的数据倾斜? (1)不同数据类型关联产生数据倾斜 情形:比如用户表中user_id字段为int,log表中user_id字段string类型。当按照user_id进行两个表的Join操作时。 解决方式:把数字类型转换成字符串类型 select * from users a left outer join logs b on a.usr_id = cast(b.user_id as string) bug记录:https://www.jianshu.com/p/2181e原创 2021-04-29 22:09:30 · 132 阅读 · 0 评论 -
2021-04-28
hive窗口函数(开窗函数) 1)相关函数说明 OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。 CURRENT ROW:当前行 n PRECEDING:往前n行数据 n FOLLOWING:往后n行数据 UNBOUNDED:无边界 UNBOUNDED PRECEDING 前无边界,表示从前面的起点, UNBOUNDED FOLLOWING后无边界,表示到后面的终点 LAG(col,n,default_val):往前第n行数据原创 2021-04-28 22:25:21 · 76 阅读 · 0 评论 -
2021-04-28
Hive优化 1)MapJoin 如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成Common Join,即:在Reduce阶段完成join。容易发生数据倾斜。可以用MapJoin把小表全部加载到内存在map端进行join,避免reducer处理。 2)行列过滤 列处理:在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT *。 行处理:在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤。原创 2021-04-28 22:19:47 · 100 阅读 · 0 评论 -
2021-04-28
Hive的Rank和窗口函数 1)Rank (1)RANK() 排序相同时会重复,总数不会变 (2)DENSE_RANK() 排序相同时会重复,总数会减少 (3)ROW_NUMBER() 会根据顺序计算 2) OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化 (1)CURRENT ROW:当前行 (2)n PRECEDING:往前n行数据 (3) n FOLLOWING:往后n行数据 (4)UNBOUNDED:无边界 UNBOUNDED PRECED原创 2021-04-28 22:18:56 · 122 阅读 · 0 评论 -
2021-04-27
Hive中的系统函数 常用日期函数 unix_timestamp:返回当前或指定时间的时间戳 from_unixtime:将时间戳转为日期格式 current_date:当前日期 current_timestamp:当前的日期加时间 to_date:抽取日期部分 year:获取年 month:获取月 day:获取日 hour:获取时 minute:获取分 second:获取秒 weekofyear:当前时间是一年中的第几周 dayofmonth:当前时间是一个月中的第几天 months_between:原创 2021-04-27 22:11:14 · 68 阅读 · 0 评论 -
2021-04-27
Hive自定义UDF、UDTF函数 1)在项目中是否自定义过UDF、UDTF函数,以及用他们处理了什么问题,及自定义步骤? (1)用UDF函数解析公共字段;用UDTF函数解析事件字段。 (2)自定义UDF:继承UDF,重写evaluate方法 (3)自定义UDTF:继承自GenericUDTF,重写3个方法:initialize(自定义输出的列名和类型),process(将结果返回forward(result)),close 2)为什么要自定义UDF/UDTF? 因为自定义函数,可以自己埋点Log打印日志,原创 2021-04-27 22:07:41 · 109 阅读 · 0 评论 -
2021-04-27
Hive中的DDL和DML语言合集 一.DDL(数据定义语言) 1.1 库的ddl 1.1.1 创建库的语法 CREATE DATABASE [IF NOT EXISTS] database_name --IF NOT EXISTS 增强代码的健壮性 [COMMENT database_comment] --库的注释 这个库你将来拿来干嘛 [LOCATION hdfs_path] --可以指定当前库存在h原创 2021-04-27 22:07:03 · 141 阅读 · 0 评论 -
2021-04-22
Hive和数据库比较 Hive 和数据库除了拥有类似的查询语言,再无类似之处。 1)数据存储位置 Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。 2)数据更新 Hive中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的, 3)执行延迟 Hive 执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。 4)数据规模 Hive支持很大规模的数据计算;数据库可以支持的数据规模较原创 2021-04-22 19:08:00 · 82 阅读 · 0 评论