HIVE

如果新增数据怎么办
方式一 : 重新load单个文件
注意:直接导入一个新的文件就可以了
方式二: 可以直接把新建的文件直接上传到 表的目录下
注意: 如果要使导入到相应目录下的文件有效,文件名必须的相同,那就意味着我们需要把原来的目录文件删除
然后再hdfs dfs -put,那么就可以生。导入的文件必须的同名,否则不生效,如果直接导入不同名得文件则是不生效的。
对于创建好表并指定了表的目录路径(LOCATION ‘/doit10/data/’),那么,只要格式相同,直接把文件(eg: hdfs -put /doit10/data/) 就会生效,如果是分区表的话就算指定了目录路径也不行了。
方式三 : 重新导入所有的数据 , 覆盖导入 load data local inpath ‘/data/’ overwrite into table student ;
hive生成mr时,1.4版本后reduce默认大小为256M, 1.4之前reduce处理数据的大小为1G
窗口函数
https://blog.csdn.net/qq_26937525/article/details/54925827
https://blog.csdn.net/xiepeifeng/article/details/42676567
https://blog.csdn.net/Abysscarry/article/details/81408265
https://blog.csdn.net/scgaliguodong123_/article/details/60135385
用OVER()函数指定指定窗口大小,再用使用分析函数对窗类的数据进行分析,这就是窗口函数。
OVER()从句实际上就是先给每一行作用上一个窗口,指定窗口大小,然后用分析函数对相应窗口进行分析或聚合,在把这个窗口的结果作为当前行的分析结果。在OVER()从句中,我们可以使用子句PARTITION BY对整个数据表在进一步分区,把每一个分区的数据作为单独的数据进行相应的数据分析/聚合,默认就只有一个分区,也可以使用子句ORDER BY 进行排序,使用ORDER BY 进行排序后,也可以使用窗口子字句直接指定窗口大小,如果不存在窗口字句,那么会有一个默认的窗口的大小,对于有的窗口函数来说默认为起始行排序值的到本行排序值到这段范围内的逻辑窗口,而对于有的窗口函数来说,不能
随意使用指定窗口大小,要么指定为整个分区为窗口大小,要么不使用窗口字句指定窗口的大小,其函数本身就默认作用整个分区。而对于PARTITION BY 和 ORDER BY , 窗口子句之间,不存在依赖关系,只是根据业务来进行相应的处理。
RANGE与ROWS
https://blog.csdn.net/qq_29970875/article/details/82710477
侧视图和爆裂函数
https://blog.csdn.net/guodong2k/article/details/79459282
https://www.jianshu.com/p/4951f2b41098
关于sql和MySQL的语句执行顺序(必看!!!)
https://blog.csdn.net/u014044812/article/details/51004754
SQL和MySQL执行的顺序都一样,且每一步都是操作上一个虚拟表而得到下一个虚拟表。
我们的每执行的一步,都是建立在上一步的基础之上。
SQL区别:group by(开始使用select中的别名,后面的语句中都可以使用).
MsSQL:执行 GROUP BY 子句, 进行分组(注:这一步开始才就可以使用select中的别名,他返回的是一个游标,而不是一个表,所以在where中不可以使用select中的别名,而having却可以使用,group by 就可以使用别名)。
对于SQL来,GROUP BY 时,就开始将SELECT中的别名指向虚拟表的字段名 那么后续的使用别名的前提是的保证虚拟表中存在这个
别名。eg:SELECT * , id + 2 A 那么这个别名也只能等到SELECT子句的时候,之后才可以使用别名A。
而对于MySQL不管这个别名的字段是否存在虚拟表中,在GROUP BY 开始后都能使用。
只是使用的方式不同,一个是游标,一个是别名对应到虚拟表中具体的字段。
对于SQL来说,HAVING 只能作用GROUP BY 生成后的虚拟表,也就是分组后的虚拟表,如果没有GORUP BY就不能使用HAVING.且对于
SQL: GROUP BY 生成的虚拟表只包含分组的字段,如果有聚合函数的使用,那么还会包含聚合字段,每一组反回一行,也就是有分组字段和聚合字段,这个虚拟表不存在其他字段。(使用了group by 之后,由于一组只能返回一行,就要求select后面的字段包含在group by 或聚合函数里面,这时如果想读取其它字段则无法实现,其他字段有多个值不知道读取哪一个。),因此SELECT中不能使用星号的缘故,星号代表初始表的所有字段。
MySQL:使用了group by 之后,如查列没有出现在 group by中,就会把非分组列中的第一行的值列出来。如果你换成 oracle 或 mssql 就该报错了。也即是说,MySQL分组后,取出每一组的第一行,如果有聚合函数的使用,就添加新的字段,得到一个新的虚拟表。这也是为撒MySQL中即使使用了分组,也能SELECT ** (这个星号表示FROM开始时的所有字段)。
HAVING是对整个组进行过滤, 在MySQL中HAVING MIN(grade) > 80 = HAVING grade > 80(grade为非分组字段),只要组内任何一个grade小于80那么也就意味着整组数据就被过滤掉, 而在SQL中只有grade为分组字段才能使用使用这种HAVING grade > 80,额如果grade为非字段的话那么只能使用聚合函数, 切记不论是那种形式,都是对整个分组的选着。
SQL优化,
https://baijiahao.baidu.com/s?id=1628437659593476871&wfr=spider&for=pc
https://blog.csdn.net/yexudengzhidao/article/details/97965572
Hive字符串函数
https://www.cnblogs.com/handsome-24/p/11232904.html
HIve调优
https://www.cnblogs.com/alamps/p/8446877.html
https://cloud.tencent.com/developer/article/1189621
https://yq.aliyun.com/articles/30994?spm=a2c4e.11153940.0.0.644a1d16scUpfT
https://www.cnblogs.com/smartloli/p/4356660.html
HiveSQL解析过程详解,工作原理
https://blog.csdn.net/qq_36932624/article/details/81702405
Schme
https://blog.csdn.net/u010429286/article/details/79022484
在hive中千万不要使用带有中文的字段多问分区或分桶,否者嘿嘿,你就玩完了。
mysql常用函数
https://blog.csdn.net/weixin_39415084/article/details/76251633
Hive 时间戳转换为日期时间
https://blog.csdn.net/u010002184/article/details/98082605
hive常用函数大全
https://www.iteblog.com/archives/2258.html
对于不指定存储格式的表,默认存储格式为text, 分割符号位/00,
而对于一些特殊的存储格式,比如parquet就不能指定分割符号了,
本省自带结果信息。
hive 的 left semi join 讲解
https://blog.csdn.net/happyrocking/article/details/79885071
SQL练习
https://blog.csdn.net/flycat296/article/details/63681089
Sql Server 之 DATADIFF用法
https://blog.csdn.net/XTY00/article/details/102678140
hive中关于常见数据倾斜的处理
https://blog.csdn.net/qq_26442553/article/details/80866723?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
《关于hive调优》
https://www.51doit.com/blog/?p=840

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值