
Hive
文章平均质量分 81
大数据离线计算框架
败给你的黑色幽默丶
if i say you're the one would you believe me;
if i ask you to stay would you show me the way
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Hive调优】Explain查看执行计划
Explain1. explain 的用法Operator2. explain 的使用场景案例一:join 语句会过滤 null 的值吗?案例二:group by 分组语句会进行排序吗?案例三:哪条sql执行效率高呢?案例四:定位产生数据倾斜的代码段1. 通过时间判断2. 通过任务 Counter 判断3. 定位 SQL 代码1.确定任务卡住的 stage2. 确定 SQL 执行代码3. explain dependency的用法案例一:识别看似等价的代码案例二:识别SQL读取数据范围的差别4. expla转载 2022-03-22 15:17:11 · 1363 阅读 · 1 评论 -
【Hive】SQL执行原理
Join 的实现原理 以下面这个 SQL 为例,讲解 join 的实现: select u.name, o.orderid from order o join user u on o.uid = u.uid; 在 map 的输出 value 中为不同表的数据打上 tag 标记,在 reduce 阶段根据 tag 判断数据来源。MapReduce 的过程如下: MapReduce CommonJoin 的实现 group by 原理 将group by 的字段 作为key,即groupBy_key 。原创 2022-02-26 12:00:16 · 1355 阅读 · 0 评论 -
【hive调优】
hive建表设计层面调优 1.分区表 分区表,查询的时候只会扫描分区的数据,避免全表查询; 所以一定要用在查询时where条件中经常使用的字段作为分区字段,就比如datetime 2.分桶表 分桶表示hash散列,把一系列的记录按照hash散列进行分类; 一个分桶中会有多个不同的值,如果一个分桶中包含了某个值,那么这个值的所有的记录必然都在这个分桶中; 分桶经常使用的场景: join 采样 比如想去分析某个数据的中位数,或者平均值啊 最大最小值,从全表算是很消耗性能的;此时可以用分桶表,分桶表中的数据具备原创 2021-10-28 02:00:59 · 1544 阅读 · 0 评论 -
【Hive】【问题】
Hive读取Lzo压缩文件问题 现象: hive (gmall)> select * from ods_log; Time taken: 0.706 seconds, Fetched: 2955 row(s) hive (gmall)> select count(*) from ods_log; 2959 两次查询结果不一致。 原因: select * from ods_log不执行MR操作,直接采用的是ods_log建表语句中指定的DeprecatedLzoTextInputFormat,原创 2022-01-06 21:59:37 · 298 阅读 · 0 评论 -
【Hive】【内置常用函数】
get_json_object 1)数据 json数组 [{"name":"大郎","sex":"男","age":"25"},{"name":"西门庆","sex":"男","age":"47"}] 2)取出第一个json对象 select get_json_object('[{"name":"大郎","sex":"男","age":"25"},{"name":"西门庆","sex":"男","age":"47"}]','$[0]'); 结果是:{“name”:“大郎”,“sex”:“男”,“age原创 2022-02-13 18:41:15 · 670 阅读 · 0 评论 -
【八】Hive自定义函数
三种用户自定义函数 UDF(User-Defined-Function) 一进一出 UDAF(User-Defined Aggregation Function) 聚合函数,多进一出 类似于:count/max/min UDTF(User-Defined Table-Generating Functions) 一进多出 如lateral view explode() 官方文档地址 https://cwiki.apache.org/confluence/display/Hive/HivePlugins 编原创 2021-11-07 20:13:32 · 1948 阅读 · 0 评论 -
【八】 Hive内置函数
系统内置函数 1)查看系统自带的函数 hive> show functions; 2)显示自带的函数的用法 hive> desc function upper; 3)详细显示自带的函数的用法 hive> desc function extended upper; 常用内置函数 NVL nvl(v1,v2) 参数:第一个参数是字段,第二个参数是常量值或者某个字段; 功能是如果v1为NULL,则返回v2的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL CASE W原创 2021-11-06 02:12:38 · 1605 阅读 · 0 评论 -
【7】 分区表和分桶表
分区表和分桶表分区表1.分区表基本操作1)引入分区表2)创建分区表语法3)加载数据到分区表中4)查询分区表中数据5)增加分区6)删除分区7)查看分区表有多少分区8)查看分区表结构2.二级分区1)创建二级分区表2)正常的加载数据3.分区表和数据产生关联的三种方式(1)方式一:上传数据后修复 msck repair(2)方式二:上传数据后添加分区(3)方式三:创建文件夹后load数据到分区4.动态分区调整1)动态分区参数设置2)案例实操3)动态分区新特性分桶表 分区表 Hive表实际上就是对应一个HDFS文件原创 2021-11-03 02:39:45 · 1168 阅读 · 0 评论 -
【6】查询
注意: (1)SQL 语言大小写不敏感。 (2)SQL 可以写在一行或者多行 (3)关键字不能被缩写也不能分行 (4)各子句一般要分行写。 (5)使用缩进提高语句的可读性。原创 2021-11-02 02:40:31 · 104 阅读 · 0 评论 -
【5】DML
数据导入 1.向表中装载数据(Load) 1)语法 hive> load data [local] inpath '数据的path' [overwrite] into table \ student [partition (partcol1=val1,…)]; (1)load data:表示加载数据 (2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表 (3)inpath:表示加载数据的路径 (4)overwrite:表示覆盖表中已有数据,否则表示追加 (5)into原创 2021-11-01 02:15:14 · 164 阅读 · 0 评论 -
【4】 DDL
DDL就是建库建表、删库删表修改的语句; 库 1. 创建数据库 1.1 语法格式 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)]; (1)[LOCATION hdfs_path]指定库数据存放在hdfs上的路径 (2)[IF NOT EXISTS] (标准写原创 2021-10-22 18:07:05 · 100 阅读 · 0 评论 -
【3】Hive数据类型
基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。 集合数据类型 Hive有三种复杂数据类型ARRAY、MAP 和 STRUCT。 ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合 复杂数据类型允许任意层次的嵌套。 案例实操 1)假设某表有如下一行,我们用JSON格式来表示其数据结构 { "n原创 2021-10-19 15:51:16 · 259 阅读 · 0 评论 -
【1】Hive基本概念
1.Hive简介 Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能 关键字:结构化日志,数仓工具,提供SQL查询功能 2.Hive本质 hive的本质:将HQL转化成MapReduce程序 (1)Hive处理的数据存储在HDFS (2)Hive分析数据底层的实现是MapReduce (3)执行程序运行在Yarn上 3.Hive的优缺点和场景 3.1 优点 (1)操作接口采用类SQ原创 2021-10-30 03:13:46 · 762 阅读 · 0 评论