---- Hive
文章平均质量分 96
Hive:由Facebook开源用于解决海量结构化日志的数据统计。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
云 祁
Focus BigData,专注于大数据技术领域的知识分享。
展开
-
Hive 热门数据分析笔试题(干货满满,持续更新中...)
这篇博文通过五道经典的大厂数据分析笔试题,尽可能的让大家能更熟悉hive 窗口函数、自连接、行转列、列转行、TopN。原创 2020-03-18 17:22:01 · 6020 阅读 · 29 评论 -
Hive 调优集锦,让 Hive 调优想法不再碎片化
一、前言1.1 概念Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在HDFS 中的数据进行分析和管理。1.2 架构1.用户接口:ClientCLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)2.元数据:Metastore元数据包括:表名、表所属的数据库(默认原创 2022-03-23 00:03:40 · 1243 阅读 · 0 评论 -
一起来看看HQL窗口函数在大厂热门数据分析题中的运用
在大佬的公众号【数据管道】上看到三道数据分析题,转载如下转载 2020-03-21 09:23:18 · 1610 阅读 · 4 评论 -
【Hive】笔试题 05 (求月销售额和总销售额)
文章目录1、数据说明(1)数据格式(2)字段含义2、数据准备(1)创建数据库表t_store(2)导入数据3、需求4、解析(1)按照商店名称和月份进行分组统计(2)对tmp_store1 表里面的数据进行自连接(3)比较统计1、数据说明(1)数据格式a,01,150a,01,200b,01,1000b,01,800c,01,250c,01,220b,01,6000a,02,20...原创 2020-03-15 16:10:26 · 2506 阅读 · 0 评论 -
【Hive】笔试题 04 (求学生选课情况)
文章目录1、数据说明(1)数据格式(2)字段含义2、数据准备(1)建表t_course(2)导入数据3、需求4、解析1、数据说明(1)数据格式id course 1,a 1,b 1,c 1,e 2,a 2,c 2,d 2,f 3,a 3,b 3,c 3,e(2)字段含义表示有id为1,2,3的学生选修了课程a,b,c,d,e,f中其中几门。2、数据准备(1)...原创 2020-03-15 15:44:35 · 2584 阅读 · 2 评论 -
【Hive】笔试题 03 (求每一年最大气温的那一天 + 温度)
背景是求每一年最大气温的那一天 + 温度文章目录1、说明2、 需求3、解析(1)创建一个临时表tmp_weather,将数据切分(2)创建一个临时表tmp_year_weather(3)将2个临时表进行连接查询1、说明具体数据201401021620140104102012010609201201081220120110232001010212200101041120130...原创 2020-03-15 15:19:12 · 1807 阅读 · 5 评论 -
【Hive】笔试题 02 (列转行)
题目背景是分析学生课程成绩,相关数据如下:文章目录1、说明2、需求1、使用case...when...将不同的课程名称转换成不同的列2、以sid分组合并取各成绩最大值3、比较结果1、说明use myhive;CREATE TABLE `course` ( `id` int, `sid` int , `course` string, `score` int ) ;// ...原创 2020-03-15 14:44:41 · 2514 阅读 · 0 评论 -
【Hive】笔试题 01(自连接与窗口函数分别实现)
第一题现有这么一批数据,现要求出: 每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数 三个字段的意思: 用户名,月份,访问次数 A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A,2015-02,6 ...原创 2019-12-17 19:47:55 · 1938 阅读 · 2 评论 -
【Hive】FROM_UNIXTIME() 和 UNIX_TIMESTAMP()时间戳函数用法
今天用 hive 进行 ETL时,需要对时间戳进行格式化, 其中还需要用到正则表达式及一些时间函数,在这里简单总结一下unix_timestamp、from_unixtime的用法,仅供参考。先看下这段 HQL :CREATE TEMPORARY TABLE user_eventSTORED AS ORC AS SELECT t.user_id, t....原创 2020-03-12 20:44:15 · 13093 阅读 · 2 评论 -
【Hive】函数 concat 、concat_ws 、concat_group 的区别
文章目录一、CONCAT()函数二、CONCAT_WS函数三、GROUP_CONCAT()函数四、CONCAT_WS(SEPARATOR ,collect_set(column)) ===>GROUP_CONCAT()函数一、CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串。使用数据表Info作为示例,其中SELECT id,name FROM info LIM...原创 2020-03-11 23:28:03 · 2190 阅读 · 0 评论 -
【Hive】MACRO (宏) 的使用
项目中用到了宏,实现的功能是计算一个值在其最小值和最大值之间的百分比,如下:-- macro to calculate the percentage a value between its min & max valuesCREATE TEMPORARY MACRO percentageValue(value double, min_value double, max_value do...原创 2020-03-11 22:50:45 · 1510 阅读 · 0 评论 -
【Hive】函数 instr 的用法
在写宏的时候用到了 instr 函数,这里记一下:-- macro to calculate the distance of user location and event locationCREATE TEMPORARY MACRO locationSimilar(user_location string, event_city string, event_province string, ...原创 2020-03-11 17:22:45 · 18215 阅读 · 1 评论 -
【Hive】如何在 Hive 中创建外部表映射 Hbase 中已存在的表
文章目录一、上传完整的jar文件到hive/lib中二、修改hive-site.xml三、修改hive-env.sh四、在hive和hbase中分别创建相关联的表并通过hive向hbase表中加载数据五、在hive中创建外部表映射hbase中已存在的表六、特别注意一、上传完整的jar文件到hive/lib中删除hive/lib下所有文件解压上传hive所有的jar到该目录下二、修改hi...原创 2020-03-17 22:34:28 · 5044 阅读 · 1 评论 -
【Hive】(二十四)谈谈 Hive 开发过程中需要注意的二三事?
文章目录一、前言二、建表规范2.1 LZO标准建表模板如下所示2.2 ORC标准建表模板如下所示三、字段类型使用 Hive 标准字段四、数据类型标准五、HDFS 目录规范5.1 表的 HDFS 目录与分区层级的名称和顺序保持一致5.2 表的 HDFS 目录中不能有特殊字符(只能包含字母、数字、=、-)一、前言主要讲讲一些 Hive 开发过程中需要注意的一些规范,大家可要注意┗|`O′|┛ 嗷~...原创 2020-03-24 23:07:23 · 1211 阅读 · 9 评论 -
【Hive】(二十三)简单几招教你如何解决 Hive 中小文件过多的问题
通常在大数据开发的过程中,我们会经常遇见小文件过多的情况,对查询和运算的性能都会有一定的影响,那么这篇文章将会帮助大家解决 hive 中小文件过多的问题 ????文章目录一、哪里会产生小文件 ?二、影响三、解决方法方法一:通过调整参数进行合并方法二:使用 distribute by rand() 将数据随机分配给 reduce方法三:使用 sequencefile 作为表存储格式,不要用 textfi...原创 2020-03-17 23:37:06 · 2979 阅读 · 26 评论 -
【Hive】(二十二)往 Hive 表中插入与导出数据方式load 、insert 、sqoop 等方式详解
文章目录一、前言二、往hive表中导入数据三、通过查询insert ....select的形式往hive中导入数据四、使用create....as 语句往hive表里装载数据五、从hive表里导出数据到文件系统一、前言往hive数据仓库的表中导入数据,可以直接insert ,也可以选择load方式。当然也可以通过第三方工具如sqoop等将数据导入到hive当初。特别注意:hive虽然不会验证用...原创 2020-02-29 17:59:54 · 2279 阅读 · 0 评论 -
【Hive】(二十一)textfile、sequencefile 和 rcfile 的使用与区别详解
一、引言hive在创建表时默认存储格式是textfile,或者显示自定义的stored as textfile。很多人知道hive常用的存储格式有三种,textfile,sequencefile,rcfile.但是却说不清楚这三种格式的干什么用的,本质有有什么区别?适合什么时候用?二、思考为什么hive会有多种存储格式?因为hive是文本批处理系统,所以就存在一个往hive中导入数据的问题,...原创 2020-02-29 17:46:14 · 1612 阅读 · 0 评论 -
【Hive】(二十)详解 Hive 四种排序的区别
排序6.5.1 全局排序(Order By)Order By:全局排序,只有一个Reducer1.使用 ORDER BY 子句排序ASC(ascend): 升序(默认)DESC(de...原创 2020-02-29 17:11:39 · 1462 阅读 · 0 评论 -
【Hive】(十九)Hive 常用参数优化汇总
● 使用动态分区需要加配置:SET hive.exec.dynamic.partition=true;SET hive.exec.dynamic.partition.mode=nonstrict;SET hive.exec.max.dynamic.partitions=1000;SET hive.exec.max.dynamic.partitions.pernode=100;为了防止一个reduc...原创 2020-02-29 16:52:08 · 1378 阅读 · 0 评论 -
【Hive】(十八)Hive 空值判断
Hive中空值判断基本分两种(1)NULL 与 \Nhive在底层数据中如何保存和标识NULL,是由 alter table name SET SERDEPROPERTIES(‘serialization.null.format’ = ‘\N’); 参数控制的比如:1.设置 alter table name SET SERDEPROPERTIES(‘serialization.null.f...原创 2020-02-29 16:46:33 · 2228 阅读 · 0 评论 -
【Hive】(十七)Hive 优化策略
文章目录一、Hadoop 框架计算特性二、优化常用手段三、排序选择四、怎样做笛卡尔积五、怎样写 in/exists 语句六、设置合理的 maptask 数量七、小文件合并八、设置合理的 reduceTask 的数量九、合并 MapReduce 操作十、合理利用分桶:Bucketing 和 Sampling十一、合理利用分区:Partition十二、Join 优化十三、Group By 优化1、Ma...原创 2020-01-30 16:40:53 · 1675 阅读 · 2 评论 -
【Hive】(十六)Hive 执行过程实例分析
文章目录一、Hive 执行过程概述1、概述2、Hive 操作符列表3、Hive 编译器的工作职责4、优化器类型二、join1、对于 join 操作2、实现过程3、具体实现过程三、Group By1、对于 group by操作2、实现过程四、Distinct1、对于 distinct的操作2、实现过程3、详细过程解释一、Hive 执行过程概述1、概述(1) Hive 将 HQL 转换成一组操作...原创 2020-01-28 21:21:56 · 1257 阅读 · 0 评论 -
【Hive】(十五)Hive 数据倾斜与调优
文章目录一、什么是数据倾斜?二、Hadoop 框架的特性三、主要表现四、容易数据倾斜情况五 、产生数据倾斜的原因六、业务场景1、空值产生的数据倾斜(1)场景说明(2)解决方案(3)总结2、不同数据类型关联产生数据倾斜(1)场景说明(2)解决方案3、大小表关联查询产生数据倾斜一、什么是数据倾斜?由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点。二、Hadoop 框架的特性A、不怕数...原创 2020-01-28 16:05:34 · 1468 阅读 · 1 评论 -
【Hive】(十四)Hive 项目实战之电子商务消费行为分析
文章目录一、前言二、项目需求三、问题分析3.1 数据结构一、前言Hive 学习到这里,有必要通过一些项目练习,来检验一下自己了,大家跟我一起练练吧,项目中如果不妥的地方或者更好的建议,欢迎指出! ????二、项目需求首先和大家讲一下这个项目的需求:对某零售企业最近1年门店收集的数据进行数据分析潜在客户画像用户消费统计门店的资源利用率消费的特征人群定位数据的可视化展现三、问题分析......原创 2020-01-05 15:00:35 · 6599 阅读 · 48 评论 -
【Hive】(十三)Hive 下 Apache Zeppelin 集成部署
文章目录一、Zeppelin简介Zeppelin特性Apache Spark 集成数据可视化二、Zeppelin的安装部署使用Beeline连接hive测试下载 Zeppelin修改配置文件启动zeppelin作为大数据研究分析,我越发觉得有必要能有一款快速上手,能够适合单一数据处理、但后端处理语言繁多的场景相关的开源工具。最近我找到了一款Apache Zeppelin,下面是我初步实战初步...原创 2019-12-17 22:56:46 · 1197 阅读 · 0 评论 -
【Hive】(十二)Hive自定义函数详解(UDF、UDAF、UDTF)
文章目录前言一、自定义函数二、UDF:用户定义(普通)函数,只对单行数值产生作用1.创建一个Maven工程Hive2.导入依赖3.创建一个类4.打成jar包上传到服务器/opt/soft/data/udf.jar5.将jar包添加到hive的classpath6.创建临时函数与开发好的java class关联7.即可在hql中使用自定义的函数三、UDAF:User- Defined Aggrega...原创 2019-12-17 22:42:11 · 1529 阅读 · 0 评论 -
【Hive】(十一)Hive 内置函数集合
1、内置函数2、数学函数round(四舍五入):hive> select round(45.3456,2),round(6.56787,-1);+------------------+-------------------+| round(45.3456,2) | round(6.56787,-1) |+------------------+------------------...原创 2019-12-17 00:28:35 · 1756 阅读 · 1 评论 -
【Hive】(十)Hive 行转列、列转行详解
文章目录一、行转列1.相关函数说明2.数据准备3.需求4.创建本地constellation.txt,导入数据5.创建hive表并导入数据6.按需求查询数据二、列转行1.函数说明2.数据准备3.需求4.创建本地movie.txt,导入数据5.创建hive表并导入数据6.按需求查询数据一、行转列1.相关函数说明CONCAT(string A/col, string B/col…):返回输入字...原创 2019-12-17 00:04:53 · 2796 阅读 · 1 评论 -
【Hive】(九)Hive 窗口函数总结
文章目录一、简介二、概念三、数据准备四、聚合函数+over()五、partition by 子句六、order by 子句七、window 子句八、窗口函数中的序列函数NTILErow_numberrankdense_rankLAG和LEAD函数一、简介本文主要介绍Hive中的窗口函数,Hive中的窗口函数和SQL中的窗口函数相类似,都是用来做一些数据分析类的工作,一般用于olap分析(在线分...原创 2019-12-16 21:25:22 · 1942 阅读 · 0 评论 -
【Hive】(八)Hive 的分区和分桶详解
文章目录一、数据准备二、分区三、分桶一、数据准备hive> create database if not exists myhive;hive> use myhive;hive> drop table if exists student;hive> create table student( > stuid int,stuname string,st...原创 2019-12-15 16:05:46 · 1487 阅读 · 0 评论 -
【Hive】(七)Hive 查询使用详解
文章目录查询语句语法一、基本查询(Select…From)1.1 全表和特定列查询1.2 列别名1.3 算术运算符1.4 常用函数1.5 Limit语句二、Where语句2.1 比较运算符(Between/In/ Is Null)2.2 Like和RLike2.3 逻辑运算符(And/Or/Not)三、分组3.1 Group By语句3.2 Having语句四、Join语句4.1 等值Join4....原创 2019-12-14 14:00:13 · 1849 阅读 · 2 评论 -
【Hive】(六)Hive DML 数据操纵语言详解
文章目录一、数据导入1.1 向表中装载数据(Load)1.2 通过查询语句向表中插入数据(Insert)1.3 查询语句中创建表并加载数据(As Select)1.4 创建表时通过Location指定加载数据路径1.5 Import数据到指定Hive表中二、数据导出2.1 Insert导出2.2 Hadoop命令导出到本地2.3 Hive Shell 命令导出2.4 Export导出到HDFS上三、清除表中数据(Truncate)原创 2019-12-14 11:52:38 · 1383 阅读 · 0 评论 -
【Hive】(五)Hive 中动态分区与静态分区详解
文章目录一、静态分区二、动态分区Hive中的分区有两种:动态分区和静态分区一、静态分区静态分区1、创建分区表hive> create table stu2( > id int, > name string, > likes array<string>, > adress map<string,string&g...原创 2019-12-12 23:22:25 · 1985 阅读 · 0 评论 -
【Hive】(四)Hive DDL 数据定义语言详解
文章目录1、创建数据库2、查询数据库2.1 显示数据库2.2 查看数据库详情2.3 切换当前数据库3、修改数据库4、删除数据库5、创建表5.1 内部表5.2 外部表5.3 管理表与外部表的互相转换6、分区表6.1 分区表基本操作6.2 分区表注意事项7、修改表7.1 重命名表7.2 增加、修改和删除表分区7.3 增加/修改/替换列信息8、删除表1、创建数据库1)创建一个数据库,数据库在HDFS...原创 2019-12-11 23:49:10 · 1466 阅读 · 0 评论 -
【Hive】(三)Hive 数据类型
Hive有三种复杂数据类型**ARRAY、MAP 和 STRUCT**。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。原创 2019-12-11 22:23:32 · 1425 阅读 · 0 评论 -
【Hive】(二)Hive 安装部署
文章目录1、前置安装 hadoop2、安装mysql数据库3、安装hive4、mysql驱动包5、重新启动系统1、前置安装 hadoop参考:Hadoop 分布式安装2、安装mysql数据库参考:手把手教你在Linux环境下安装JDK 1.8.0/Tomcat / MySQL(含字符编码集设置)亲测完美!3、安装hive(1)把apache-hive-1.2.1-bin.tar.gz上...原创 2019-12-11 19:28:45 · 1295 阅读 · 0 评论 -
【Hive】(一)Hive 入门
文章目录1 什么是Hive2 Hive的优缺点2.1 优点2.2 缺点3 Hive架构原理4 Hive和数据库比较4.1 查询语言4.2 数据存储位置4.3 数据更新4.4 索引4.5 执行4.6 执行延迟4.7 可扩展性4.8 数据规模1 什么是HiveHive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映...原创 2019-12-11 17:40:29 · 1400 阅读 · 0 评论