Hive
文章平均质量分 57
数据仓库
Alienware^
喜欢专研Java,Scala,Python,数据库,以及大数据框架系列知识。希望通过不断的学习,记录自己的点点滴滴。
展开
-
Hive常用字符串操作函数 (大多数MySQL也能用)
文章目录常用字符串操作函数upperlowerlengthtrimlpadrpadregexp_replace拼接字符串concatconcat_ws常用字符串操作函数upperupper: 转大写select upper('low');lowerlower: 转小写select lower('LOW');lengthlength: 长度select length("hao");trimtrim: 前后去空格select trim(" hao");lpadlpad:原创 2021-10-10 17:53:51 · 208 阅读 · 0 评论 -
Hive常用取整函数(MySQL也能用)
文章目录常用取整函数:roundceilfloor常用取整函数:roundround: 四舍五入select round(3.14);select round(3.54);ceilceil: 向上取整select ceil(3.14);select ceil(3.54);floorfloor: 向下取整select floor(3.14);select floor(3.54);...原创 2021-10-10 14:32:18 · 1136 阅读 · 0 评论 -
Hive的日期函数汇总(大多数MySQL也能用)
文章目录常用日期函数:unix_timestampfrom_unixtimecurrent_datecurrent_timestampto_dateyearmonthdayhourminutesecondweekofyeardayofmonthmonths_betweenadd_monthsdatediffdate_adddate_sublast_daydate_format常用日期函数:unix_timestampunix_timestamp:返回当前或指定时间的时间戳select unix_ti原创 2021-10-10 14:28:33 · 338 阅读 · 0 评论 -
Hive 常见的开窗函数,工作常用,面试常问 (HQL常见笔试案例)
文章目录row_number() over()sum() over()lag/lead() over()row_number() over()有如下数据:江西,高安,100江西,南昌,200江西,丰城,100江西,上高,80江西,宜春,150江西,九江,180湖北,黄冈,130湖北,武汉,210湖北,宜昌,140湖北,孝感,90湖南,长沙,170湖南,岳阳,120湖南,怀化,100需求:需要查询出每个省下人数最多的2个市create table wedw_tmp( pr原创 2021-08-02 22:08:23 · 634 阅读 · 0 评论 -
面试 Hive(笔试篇) 一
文章目录建表语句数据查看完整数据HQL语句今天在一个面试群里,发现了这张图片,是hive 笔试题,要求用HQL 语句,将上方的表变成下方的表建表语句create table stu1(name string,subject string,score int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';数据Tom Chinese 96Tom Math 61Tom English 85Lucy Chinese 53Lucy Engl原创 2021-08-03 22:07:18 · 468 阅读 · 0 评论 -
Hive 案例 列转行
文章目录函数说明数据准备需求创建本地 movie.txt,导入数据创建 hive 表并导入数据函数说明EXPLODE(col):将 hive 一列中复杂的 array 或者 map 结构拆分成多行。LATERAL VIEW用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias解释:用于和 split, explode 等 UDTF 一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。数据准备movi原创 2021-08-03 21:52:08 · 375 阅读 · 0 评论 -
Hive 案例 行转列
文章目录相关函数说明数据准备需求创建本地 person.txt,导入数据创建 hive 表并导入数据按需求查询数据相关函数说明concat (string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;concat_ws (separator, str1, str2,…):它是一个特殊形式的 concat ()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任原创 2021-08-03 21:14:11 · 226 阅读 · 0 评论 -
Hive中的 NTILE(n) 函数专讲
文章目录数据准备建表语句需求数据准备字段:name,orderdate,costjack,2017-01-01,10tony,2017-01-02,15jack,2017-02-03,23tony,2017-01-04,29jack,2017-01-05,46jack,2017-04-06,42tony,2017-01-07,50jack,2017-01-08,55mart,2017-04-08,62mart,2017-04-09,68neil,2017-05-10,12mart原创 2021-08-03 15:51:49 · 1396 阅读 · 0 评论 -
Hive 函数之 Rank 函数案例
文章目录函数说明数据准备需求创建本地 score.txt,导入数据创建 hive 表并导入数据按需求查询数据rank() 方式查询dense_rank() 方式查询row_number() 查询首先rank() 是一个排名函数,函数说明rank() 排名的时候,排序相同会重复,但总数不变dense_rank() 排序相同时会重复,但是总数会减少row_number() 会根据顺序计算,值一样,也不会出现重复排序数据准备namesubjectscore孙悟空语文87原创 2021-08-02 12:01:57 · 1146 阅读 · 0 评论 -
Hive 开窗函数 —— over(partition by) 介绍
开窗函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。–排序,即便值一样,也不会出现重复排序,select row_number() over(order by name) as 排序, * from t2_temp–排序,值一样,就重复排序,例如1,1,3,4select rank() over(order by name)原创 2021-08-01 22:53:16 · 8412 阅读 · 1 评论 -
Hive 案例——case when / if 查询
case when 语句 类似于 Java中的 switch 语句switch (choose){ case 1: case 2: case 3: }case 变量或表达式when 值1 then 语句1;when 值2 then 语句2;数据准备namedept_idsex悟空A男大海A男宋宋B男凤姐A女婷姐B女婷婷B女2.需求求出不同部门男女各多少人。结果如下:A 2 1B 1 2原创 2021-08-01 18:51:46 · 608 阅读 · 0 评论 -
HQL转换为MR核心流程
进入客户端进入服务端1,解析参数2,定义标准输入输出流3,按照 " ; " 切分HQL 语句进入Driver(驱动器)中1, 将HQL语句转换成抽象语法树(AST)2,将语法树转换为逻辑执行单元3,提交任务执行PaserDriver1,将HQL转化成Token(服务端生成的字符串,以作客户端请求的令牌)2,对Token进行解析,生成ASTSemanticAnalyzer1,将AST转化为查询块2,将查询块转化为执行树(逻辑执行计划)3,对操作树进行逻辑优化4,生成任务树.原创 2021-07-26 18:04:04 · 605 阅读 · 0 评论 -
HQL 转换为 MR 任务流程介绍
执行顺序1.进入程序,利用Antlr框架定义HQL的语法规则,对HQL完成词法语法解析,将HQL转换为为AST(抽象语法树);2.遍历AST,抽象出查询的基本组成单元QueryBlock(查询块),可以理解为最小的查询执行单元;3.遍历QueryBlock,将其转换为OperatorTree(操作树,也就是逻辑执行计划),可以理解为不可拆分的一个逻辑执行单元;4.使用逻辑优化器对OperatorTree(操作树)进行逻辑优化。例如合并不必要的ReduceSinkOperator,减少Shuffle数原创 2021-07-26 17:00:13 · 711 阅读 · 0 评论 -
Hive 核心组件回顾
Hive的核心组成介绍1)用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)2)元数据:Metastore元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore3)Hadoop使用 HDFS 进行存储,使用 MapRedu原创 2021-07-26 16:58:13 · 535 阅读 · 0 评论 -
Hive 格式优化
文章目录列式存储和行式存储合适的压缩格式Hive 支持的存储数据的格式主要有:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET。、行存储 :TEXTFILE 、SEQUENCEFILE列存储:ORC、PARQUET列式存储和行式存储如图所示左边为逻辑表,右边第一个为行式存储,第二个为列式存储1)行存储的特点查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。2)原创 2021-07-23 16:28:00 · 137 阅读 · 0 评论 -
Hive 建表优化
文章目录分区表分区表基本操作二级分区动态分区分桶表抽样查询分区表分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多,所以我们需要把常常用在 WHERE 语句中的字段指定为表的分区字段。分区表基本操作1)引入分区表(需要根据日期对日志进行管理, 通过部门信息模拟)dept_202004原创 2021-07-23 16:05:31 · 311 阅读 · 0 评论 -
Hive的执行计划查看
文章目录Explain 查看执行计划(重点)所有视频资料都来自于:http://www.atguigu.com/bigdata_video.shtml#bigdata里面的hive高级,源码,笔记,视频,都可以从那里领取。Explain 查看执行计划(重点)基本语法EXPLAIN [EXTENDED | DEPENDENCY | AUTHORIZATION] query-sqlexplain extended:查看最详细的内容explain dependency :查看依赖关系explai原创 2021-07-23 15:05:07 · 694 阅读 · 0 评论 -
Hive 中 insert into table 与 insert overwrite table 区别
举个例子1、insert into 语句Hive> insert into table account select id,age,name from account_tmp;2、insert overwrite语句hive> insert overwrite table account2 select id,age,name from account_tmp;也就是说 overwrite会覆盖现有的数据,而into是直接将数据写入库。如果需要的是去重的数据,那么应该选择overwr原创 2021-01-23 15:46:50 · 2732 阅读 · 0 评论 -
Hive学习笔记(十一)—— Hive 实战之谷粒影音
文章目录10.1 需求描述10.2 项目10.2.1 数据结构10.2.2 ETL 原始数据10.3 准备工作10.3.1 创建表10.3.2 导入 ETL 后的数据10.3.3 向 ORC 表插入数据10.4 业务分析10.4.1 统计视频观看数 Top1010.4.2 统计视频类别热度 Top1010.4.3 统计出视频观看数最高的 20 个视频的所属类别以及类别包含Top20 视频的个数10.4.4 统计视频观看数 Top50 所关联视频的所属类别 Rank10.4.5 统计每个类别中的视频热度 To原创 2020-10-25 11:37:47 · 595 阅读 · 0 评论 -
Hive学习笔记(十)—— 企业级调优
文章目录9.1 Fetch 抓取9.2 本地模式9.3 表的优化9.3.1 小表、大表 Join9.3.2 大表 Join 大表9.3.3 MapJoin9.3.4 Group By9.3.5 Count(Distinct) 去重统计9.3.6 笛卡尔积9.3.7 行列过滤9.3.8 动态分区调整9.3.9 分桶9.3.10 分区9.4 MR 优化9.4.1 合理设置 Map 数9.4.2 小文件进行合并9.4.3 复杂文件增加 Map 数9.4.4 合理设置 Reduce 数 1.调整 reduce 个数原创 2020-10-24 19:00:06 · 237 阅读 · 0 评论 -
Hive学习笔记(九)—— 压缩和存储
文章目录8.1 Hadoop 源码编译支持 Snappy 压缩8.1.1 资源准备8.1.2 jar 包安装8.1.3 编译源码8.2 Hadoop 压缩配置8.2.1 MR 支持的压缩编码8.2.2 压缩参数配置8.3 开启 Map 输出阶段压缩8.4 开启 Reduce 输出阶段压缩8.5 文件存储格式8.5.1 列式存储和行式存储8.5.2 TextFile 格式8.5.3 Orc 格式8.5.4 Parquet 格式8.5.5 主流文件存储格式对比实验8.6 存储和压缩结合8.6.1 修改 Hado原创 2020-10-23 21:52:19 · 169 阅读 · 0 评论 -
Hive学习笔记(八)—— 函数
文章目录7.1 系统内置函数7.2 自定义函数7.2.1 自定义 UDF 函数7.2.2 自定义 UDTF 函数7.1 系统内置函数1)查看系统自带的函数hive> show functions;2)显示自带的函数的用法hive> desc function upper;3)详细显示自带的函数的用法hive> desc function extended upper;7.2 自定义函数1)Hive 自带了一些函数,比如:max/min 等,但是数量有限,自己可以通过原创 2020-10-23 15:57:45 · 276 阅读 · 1 评论 -
Hive学习笔记(七)—— 查询 (高级)
文章目录高级查询部分1. CASE WHEN / IF高级查询部分1. CASE WHEN / IF数据准备namedept_idsex悟空A男大海A男宋宋B男凤姐A女婷姐B女婷婷B女2.需求求出不同部门男女各多少人。结果如下:A 2 1B 1 23.创建本地 emp_sex.txt,添加数据悟空 A 男大海 A 男宋宋 B 男凤姐 A 女婷姐 B 女婷婷 B 女4.创建 hive 表并导原创 2020-10-23 11:26:12 · 277 阅读 · 0 评论 -
Hive学习笔记(六)—— 查询(基础)
文章目录查询语句语法:6.1 基本查询(Select…From)6.1.1 全表和特定列查询6.1.2 列别名6.1.3 算术运算符6.1.4 常用函数6.1.5 Limit 语句6.2 Where 语句6.2.1 比较运算符(Between/In/ Is Null)6.2.2 Like 和 RLike6.2.3 逻辑运算符(And/Or/Not)6.3 分组6.3.1 Group By 语句6.3.2 Having 语句6.4 Join 语句6.4.1 等值 Join6.4.2 表的别名6.4.3 内连接原创 2020-10-22 16:03:35 · 288 阅读 · 0 评论 -
Hive学习笔记(五)—— DML 数据操作
文章目录5.1 数据导入5.1.1 向表中装载数据(Load)5.1.2 通过查询语句向表中插入数据(Insert)5.1.3 查询语句中创建表并加载数据(As Select)5.1.4 创建表时通过 Location 指定加载数据路径5.1.5 Import 数据到指定 Hive 表中5.2 数据导出5.2.1 Insert 导出5.2.2 Hadoop 命令导出到本地5.2.5 Sqoop 导出5.3 清除表中数据(Truncate)5.1 数据导入5.1.1 向表中装载数据(Load)1.语法原创 2020-10-22 13:10:42 · 137 阅读 · 0 评论 -
Hive学习笔记(四)—— DDL 数据定义
文章目录4.1 创建数据库4.1 创建数据库1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db。hive (default)> create database db_hive;2)避免要创建的数据库已经存在错误,增加 if not exists 判断。(标准写法)hive (default)> create database db_hive;FAILED: Execution Error, return code 1 fro原创 2020-10-22 12:04:54 · 298 阅读 · 0 评论 -
Hive学习笔记(三)—— Hive 数据类型
文章目录Hive 数据类型3.1 基本数据类型3.2 集合数据类型3.3 类型转化Hive 数据类型3.1 基本数据类型Hive 数据类型Java 数据类型长度例子TINYINTbyte1byte 有符号整数20SMALINTshort2byte 有符号整数20INTint4byte 有符号整数20BIGINTlong8byte 有符号整数20BOOLEANboolean布尔类型,true 或者 falseTRUE FALS原创 2020-10-22 08:00:59 · 145 阅读 · 0 评论 -
Hive学习笔记(二)—— Hive的安装
文章目录Hive 安装2.1 Hive 安装地址2.2 Hive 安装部署2.3 将本地文件导入 Hive 案例2.4 MySql 安装2.4.1 安装包准备2.4.2 安装 MySql 服务器2.4.3 安装 MySql 客户端2.4.4 MySql 中 user 表中主机配置2.5 Hive 元数据配置到 MySql2.5.1 驱动拷贝2.5.2 配置 Metastore 到 MySql2.5.3 多窗口启动 Hive 测试2.6 HiveJDBC 访问2.6.1 启动 hiveserver2 服务2.原创 2020-10-21 18:06:42 · 380 阅读 · 0 评论 -
Hive学习笔记(一)—— Hive的入门
文章目录Hive 基本概念1.1 什么是 Hive1.2 Hive 的优缺点1.2.1 优点1.2.2 缺点1.3 Hive 架构原理1.4 Hive 和数据库比较1.4.1 查询语言1.4.2 数据存储位置1.4.3 数据更新1.4.4 索引1.4.5 执行1.4.6 执行延迟1.4.7 可扩展性1.4.8 数据规模Hive 基本概念1.1 什么是 HiveHive:由 Facebook 开源用于解决海量结构化日志的数据统计。Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文原创 2020-10-21 16:53:25 · 253 阅读 · 0 评论