Hive
文章平均质量分 88
bone_ds
关于明天的事,后天就知道了.
展开
-
[ Hive ] 用户自定义UDF
用户自定义UDF用户自定义函数简称UDF,源自于英文user-defined function。自定义函数总共有3类,是根据函数输入输出的行数来区分的,分别是:UDF(User-Defined-Function)普通函数,一进一出UDAF(User-Defined Aggregation Function)聚合函数,多进一出UDTF(User-Defined Table-Generating Functions)表生成函数,一进多出需求自定义开发实现Hive函数,将手机号中间4位进行脱敏处理,满原创 2022-04-07 19:20:47 · 863 阅读 · 0 评论 -
[ Hive ] hive优化三 : Job执行优化
Job执行优化1 Explain1.1 语法EXPLAIN [FORMATTED|EXTENDED|DEPENDENCY|AUTHORIZATION|] queryFORMATTED:对执行计划进行格式化,返回JSON格式的执行计划EXTENDED:提供一些额外的信息,比如文件的路径信息DEPENDENCY:以JSON格式返回查询所依赖的表和分区的列表 AUTHORIZATION:列出需要被授权的条目,包括输入与输出1.2 组成执行计划一般由三个部分构成,分别是:1)The Abstr原创 2022-04-07 18:12:34 · 1412 阅读 · 0 评论 -
[ Hive ] hive优化二 : 表数据优化
表数据优化1 文件格式文件格式优点缺点应用场景TextFile1)是最常用且默认的格式2)不需要经过处理,可以直接cat查看3)可以使用任意的分隔符进行分割4)便于和其他工具(Pig, grep, sed, awk)共享数据5)可以搭配Gzip、Bzip2、Snappy等压缩一起使用1)耗费存储空间,I/O性能较低2)结合压缩时Hive不进行数据切分合并,不能进行并行操作,查询效率低3)按行存储,读取列的性能差1)适合于小量数据的存储查询2)一般用于做第一层数据加载和测试使原创 2022-04-07 18:09:45 · 1621 阅读 · 0 评论 -
[ Hive ] hive优化一 : 表设计优化
表设计优化1 普通表1.1 Hive查询基本原理创建数据库(chapter_6)创建表(tb_login),hdfs上自动在数仓的数据库目录下创建表目录关联数据:使用load命令将数据加载到表中,数据会被自动放入hdfs中对应表目录下当执行查询计划时,Hive使用表的最后一级目录作为底层处理数据的输入在元数据库metastore中表现为:1)在TBLS表中根据表明查得SD_ID2)SDS元数据表中的记录查询SD_ID对应的HDFS的表目录位置,即底层处理数据的输入原创 2022-04-07 18:02:53 · 1337 阅读 · 0 评论 -
[ Hive ] 函数应用 : 多字节分隔符.url,json解析.拉链表
1 多字节分隔符应用场景:情况一:每一行数据的分隔符是多字节分隔符,例如:”||”、“–”等情况二:数据的字段中包含了分隔符解决方案:方案一:在ETL阶段通过一个MapReduce程序,将数据中的“||”替换为单字节的分隔符“|”该方式实现较为简单,只需替换字符串即可,但,无法满足情况二的需求方案二:1)正则加载数据建表时使用指定SERDE类:ROW FORMAT SERDE ‘org.apache.hadoop.hive.serde2.RegexSerDe’指定正则表达式W原创 2022-04-07 17:59:12 · 456 阅读 · 0 评论 -
[ Hive ] 函数高阶 : 窗口函数.UDTF.UDAF
1 UDTF表生成函数explode函数接收map或者array类型的数据作为参数,然后把参数中的每个元素炸开变成一行数据。一个元素一行explode(map)将map里的每一对元素作为一行,其中key为一列,value为一列explode函数可以直接使用,但是如果在select条件中,包含explode和其他字段就必须结合lateral view侧视图使用explode函数+lateral view侧视图--lateral view侧视图基本语法如下select …… from ta原创 2022-04-07 17:49:39 · 1085 阅读 · 0 评论 -
[ Hive ] 函数入门
1 内置运算符1.1 关系运算符关系运算符是二元运算符,返回boolean类型结果,多用于where子句过滤条件-- is null空值判断select 1 from dual where 'itcast' is null;-- is not null 非空值判断select 1 from dual where 'itcast' is not null;-- like比较: _表示任意单个字符 %表示任意数量字符-- 否定比较: NOT A like Bselect 1 from du原创 2022-04-07 17:45:00 · 391 阅读 · 0 评论 -
[ Hive ] Select查询.Join连接
1 DQL-Select查询数据1.1 语法树[WITH CommonTableExpression (, CommonTableExpression)*] SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [ORDER BY col_list] [CLUSTER BY col_list原创 2022-04-07 17:43:08 · 1367 阅读 · 0 评论 -
[ Hive ] 数据加载和插入
1 DML-Load加载数据产生映射的方式:将数据文件移到表对应文件夹下建表时使用location关键字指定数据文件路径官方推荐使用load命令将数据加载到表中,加载操作本质上是将数据文件移动到与Hive表对应的位置的纯复制/移动操作-- 加载语法-- 使用local关键字从本地文件系统(服务端)加载为纯复制,不使用则从hdfs上加载为移动-- 使用overwrite关键字,则filepath中的内容会替代目标表/分区中的所有内容-- 加载到表/分区(手动指定静态分区)LOAD DAT原创 2022-04-01 22:12:32 · 1589 阅读 · 0 评论 -
[ Hive ] DDL : 完整建表语法.Show语法
1 Hive DDL建表基础1.1 完整建表语法树1.2 Hive数据类型Hive数据类型分为:原生数据类型(primitive data type)和复杂数据类型(complex data type)英文字母大小写不敏感复杂数据类型的使用通常需要和分隔符指定语法配合使用如果定义的数据类型和文件不一致,hive会尝试隐式转换,但是不保证成功,不成功的话默认转为null值原生数据类型:复杂数据类型:1.3 数据类型转换原生类型从窄类型到宽类型的转换称为隐式转换[如下图]显式类原创 2022-04-01 16:18:03 · 2493 阅读 · 1 评论 -
[ Hive ] Hive入门 : 数仓基础.Hive架构.安装部署
数仓基础概念数据仓库(Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。仓库解读:不“生产”任何数据,其数据来源于不同外部系统同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用数仓需求引出信息用于两处:操作型记录的保存+分析型决策的制定操作型记录的保存:1)公司下辖多条业务线,各业务线的业务正常运营需要记录维护多种不同信息.引出联机事务处理系统(OLTP)原创 2022-03-31 21:42:15 · 2065 阅读 · 0 评论