![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
Hive
千里快哉风Y
这个作者很懒,什么都没留下…
展开
-
Hive窗口函数
over()必须跟在聚合函数后,()中为空,表示对整个数据集开窗ROW_NUMBER() 按顺序排名 1234RANK() 排名相等会在名次中留下空位 1134DENSE_RANK() 排名相等会在名次中不会留下空位 1123PRECEDING:往前FOLLOWING:往后CURRENT ROW:当前行UNBOUNDED:起点UNBOUNDED PRECEDING 表示从前面的起点UNBOUNDED FOLLOWING 表示到后面的终点NTILE(n) 用于将分组数据按照顺序切原创 2021-03-15 11:01:28 · 49 阅读 · 0 评论 -
Hive自定义UDF函数流程
1)写一个类继承(org.apache.hadoop.hive.ql.)UDF类;2)重写evaluate()方法;3)打JAR包;4)添加JAR到Hive的类路径:hive> add jar /home/ubuntu/ToDate.jar;5)注册函数:hive> create temporary function xxx as ‘XXX’;6)使用函数;UDF(一进一出) UDAF(多进一出) UDAF(一进多出)简单的数据类型(比如String、Inte原创 2021-03-15 10:55:16 · 417 阅读 · 0 评论 -
Hive优化
1.Fetch抓取对简单的查询可以不走MapReduce,直接从文件中读取数据2.本地模式对于小数据集,可以通过本地模式在单台机器上处理所有的任务3.严格模式限制笛卡尔积的查询对于使用了order by的查询语句,必须使用limit限制查询结果对于分区表,除非用where指定了分区,否则不予执行4.开启并行执行Hive会将一个查询转化成多个阶段,默认情况下,Hive一次只会执行一个阶段5.开启推测执行启动一个备份任务,与原任务同时处理同一份数据,最终选用最先完成任务的计算结果作为最终结原创 2021-03-15 10:53:24 · 40 阅读 · 0 评论 -
Hive内部表和外部表区别
1.内部表数据的存储位置默认在/user/hive/warehouse下,删除时,元数据和hdfs上的数据都会被删除,适用于临时创建的中间表。2.外部表数据的存储位置由自己指定,删除时,只删除元数据,外部表相对安全,适用于数据共享的情况。...原创 2021-03-15 10:48:47 · 182 阅读 · 0 评论 -
Hive压缩格式
LZO和BZip2支持文件切分Snappy和Gzip不支持文件切分Snappy不支持文件分割操作,文件只会被一个任务所读取,如果该压缩文件很大,那么处理该文件的Map需要花费很长时间,为了避免这种情况的发生,就需要采用支持文件分割的压缩算法,但ORC不支持这些压缩方式,所以大文件压缩不选择ORC,避免数据倾斜。实际生产中,使用Parquet+LZO更常见,可以避免由于读取不可分割大文件引发的数据倾斜,数据量不大的情况下,使用ORC+Snappy...原创 2021-03-15 10:46:59 · 105 阅读 · 0 评论 -
Hive和Hbase的区别
Hive是数据仓库,严格来说不是数据库,可以将结构化的数据文件映射为一张表,并提供类SQL的查询功能,适用于离线的数据批处理。Hbase是一种非关系型数据库,主要适用于海量数据的随机实时查询。二者一般配合使用,通过HIve清洗处理后的数据,如果是面向海量数据随机查询场景的可存入Hbase。...原创 2021-03-12 16:21:57 · 68 阅读 · 0 评论 -
Hive中导入和导出数据的方式
导入:1从本地导入: load data local inpath ‘/home/1.txt’ (overwrite)into table student;2从Hdfs导入: load data inpath ‘/user/hive/warehouse/1.txt’ (overwrite)into table student;3建表导入: create table student1 as select * from student;4插入导入:insert (overwrite)into table原创 2021-03-15 10:44:15 · 76 阅读 · 0 评论 -
Hive数据倾斜原因及解决方案
原因:key的hash值分布不均匀或者业务本身的特性,造成reduce上的数据量差异过大,导致某些reduce任务进度长时间维持在99%。某些SQL语句本身就有数据倾斜。解决方案:1>参数调节:开启map端合并(combine操作) hive.map.aggr=true开启负载均衡 hive.groupby.skewindata=true2>SQL语句调节:1)两个表join的时候选用key分布最均匀的表作为驱动表,做好列裁剪和过滤操作。2)小表Joi原创 2021-03-12 16:27:12 · 257 阅读 · 0 评论 -
Hive与关系型数据库的区别
1、hive适合海量数据,事务性和实时性较差rdbms一般数据量相对来说不会太大,事务性和实时性较好2、hive的计算引擎是mapreducerdbms的计算引擎由数据库自己设计实现3、hive的扩展能力比较好rdbms的扩展能力比较差4、hive没有主键和索引,不支持更新操作rdbms有主键和索引,支持增删改查...原创 2021-03-12 16:23:46 · 171 阅读 · 0 评论