![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
大数据面壁者
大数据相关知识分享,框架底层原理机制,生产学习中遇到的相关问题分享,共同学习,共同进步。
展开
-
hive空字符串数组和空数组
hive空字符串数组和空数组最近在处理数据时发现一个有意思的情况空字符串数组 :array(’’)空数组:array()select size(array('')), size(array());将字符串数组转换为字符串:concat_ws(',',collect_set(cast(colum)))...原创 2021-12-13 20:22:16 · 4122 阅读 · 0 评论 -
SparkSql使用Catalog连接Hive
SparkSql使用Catalog连接Hive目录SparkSql使用Catalog连接Hive一、Catalog二、Catalog类型三、HiveCatalog连接Hive获取数据一、CatalogCatalog 提供了元数据信息,例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。数据处理最关键的方面之一是管理元数据。 元数据可以是临时的,例如临时表、或者通过 TableEnvironment 注册的 UDF。 元数据也可以是持久化的,例如 Hive Metastore 中的元原创 2021-03-12 23:05:06 · 1879 阅读 · 3 评论 -
Hive元数据的读取的两种方式
1.直连模式使用JDBC的方式直接去mysql中读取元数据,称为直连模式需要的条件:连接Mysql的驱动,已经放入到$HIVE_HOME/lib下创建连接时,需要有url,username,password,driveClassName,在hive-site.xml中配置<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql:原创 2021-01-17 20:27:57 · 2709 阅读 · 2 评论 -
Hive常用日期处理函数
Hive常用日期处理函数1)date_format函数(根据格式整理日期)hive (gmall)> select date_format('2020-06-14','yyyy-MM');2020-062)date_add函数(加减日期)hive (gmall)> select date_add('2020-06-14',-1);2020-06-13hive (gmall)> select date_add('2020-06-14',1);2020-06-153)ne原创 2021-01-09 11:33:44 · 1880 阅读 · 0 评论 -
使用拉链表记录用户表信息的变化
使用拉链表记录用户表信息的变化一、拉链表1.1 什么是拉链表1.2 为什么要做拉链表1.3 拉链表制作过程1.4 拉链表形成过程二、代码案例INSERT overwrite table dwd_dim_user_info_his --数据分两批导入到dwd_dim_user_his--第一批: old + 更新需要变化的old的数据SELECT --左表和右边关联后,右表中为NULL的是不需要更新的数据,否则且左表的end_date为9999-99-99,需要将次字段更新原创 2021-01-08 20:27:53 · 438 阅读 · 0 评论 -
数仓相关
数仓小思考1.为什么使用关系型存储用户业务数据RDMS(关系型数据库)是基于OLTP(online transaction process在线事务处理)设计,重事务和在线处理2.用户行为数据和用户业务数据的区别用户行为数据侧重于记录事件,用户业务数据侧重记录完整的事实3.为什么采用json存储用户行为数据用户行为数据低价值密度,记录周期长,结构复杂json格式比xml少了标志类信息,占用空间小。比csv等文本文件多了结构信息,方便管理。4.为什么采用sqoop采集业务数据原创 2021-01-04 20:40:52 · 433 阅读 · 3 评论 -
数仓相关思考4
数仓相关思考41.数仓中向表中导入数据的方式以及区别是什么?load加载方式: 不走Job!如果是本地的文件,上传到表的目录中!如果是HDFS的文件,移动到表的目录中! 手动上传和load的区别: 如果是全量表,没有任何区别! 如果是分区表,load操作会生成分区的元数据! 如果是手动上传,必须修复表的元数据: msck repair table 表名insert插入数据方式: 走Job!原创 2021-01-08 19:39:17 · 160 阅读 · 0 评论 -
Hive自定义UDTF解析json不定长数组
Hive自定义UDTF解析json不定长数组一、UDTF函数概述UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-to-many maping) 的需求。二、添加pom.xml依赖 <dependencies> <dependency> <groupId>org.apache.hive</groupId>原创 2021-01-07 15:06:52 · 985 阅读 · 3 评论 -
Hive中get_json_object方法的使用
Hive中get_json_object方法的使用get_json_object(json_txt, path): 从一个JSON字符串中取出指定路径对应的数据!核心:path怎么写?$: 代表根对象. : 获取子元素的操作符[] : 获取一个数组中子元素的操作符用法:select get_json_object('[{"name":"大郎","sex":"男","age":"25"},{"name":"西门庆","sex":"男","age":"47"}]','$[0].name');原创 2021-01-07 14:39:31 · 1330 阅读 · 0 评论 -
Hive on Spark配置
Hive on Spark配置一、在Hive所在节点部署Spark首先部署Spark-Yarn模式,配置SPARK_HOME的环境变量。详见:https://blog.csdn.net/weixin_42796403/article/details/1114999401)上传并解压解压spark-3.0.0-bin-hadoop3.2.tgz[hadoop@hadoop102 software]$ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/mo原创 2021-01-05 21:15:22 · 482 阅读 · 0 评论 -
Spark On Hive 与 Hive On Spark
Spark On Hive 与 Hive On SparkSparkSql:spark提供的一个模块,模块支持使用SQL语言及spark提供的DF,DS,API进行数据处理-Spark On Xxxx 是SparkSql的一个使用场景- Spark On Hive : spark程序,用了SQL | DF | DS ,处理的数据是用 Hive 管理起来的数据 !- Spark On Xxxx : spark程序,用了SQL | DF | DS ,处理的数据是用 Xxxx 管理起来的数据原创 2021-01-05 21:02:09 · 259 阅读 · 0 评论 -
什么时候需要创建分区表
什么时候需要创建分区表分区表的目的是为了分散数据,将目录中的数据,在次分散到多个分区目录因此数据量大时可以考虑分区如果在查询时,经常按照某个字段进行过滤,可以将过滤查询的字段作为分区字段,自然要将表改为分区表...原创 2021-01-05 20:52:27 · 1233 阅读 · 0 评论 -
配置hive支持中文注释
配置hive支持中文注释①在Hive元数据存储的Mysql数据库中,执行以下SQL:#修改字段注释字符集alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;#修改表注释字符集alter table TABLE_PARAMS modify column PARAM_VALUE varchar(20000) character set utf8;#修改分区参数,支持分区建用中文表示alter ta原创 2021-01-05 14:48:36 · 273 阅读 · 0 评论 -
Hive之多维度聚合
Hive之多维度聚合多维聚合1、grouping sets语法: select ... from .. where .. group by A,B,C grouping sets( (A),(A,B),(A,B,C),.. ) 注意:grouping sets后面在进行维度组合的时候字段只能是group by 后面的字段select A,B,C,count(D) from school group by A,B,C grouping sets( (A),(A,B),(A,B,C) ) 等价原创 2020-12-11 21:02:08 · 1695 阅读 · 0 评论 -
Hive常用调优方法
Hive常用调优方法一、Fetch抓取Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM emp;在这种情况下,Hive可以简单地读取emp对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找、字段查找、limit查找等都不走mapreduc原创 2020-11-30 21:30:36 · 654 阅读 · 0 评论 -
Hive之文件存储格式
Hive之文件存储格式Hive支持的存储数据的格式主要有:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET。目录Hive之文件存储格式一、列式存储和行式存储二、TextFile格式三、Orc格式四、Parquet格式一、列式存储和行式存储如图所示左边为逻辑表,右边第一个为行式存储,第二个为列式存储。1)行存储的特点查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更原创 2020-11-29 19:12:23 · 138 阅读 · 0 评论 -
Hive常用函数与自定义函数
Hive常用函数与自定义函数一、系统内置函数1)查看系统自带的函数hive> show functions;2)显示自带的函数的用法hive> desc function upper;3)详细显示自带的函数的用法hive> desc function extended upper;二、常用内置函数2.1 空字段赋值函数说明:NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为NULL,则NV原创 2020-11-29 18:55:33 · 199 阅读 · 0 评论 -
Hive之分区表和分桶表
Hive之分区表和分桶表一、分区表分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。1.1 分区表基本操作1)创建分区表语法hive (default)> create table dept_partition(deptno int, dname string, loc string原创 2020-11-29 18:23:42 · 519 阅读 · 0 评论 -
Hive的查询语句
Hive的查询语句目录Hive的查询语句一、查询语句语法二、基本查询(Select...from)2.1 全表和特定列查询2.2 列别名2.3 算数运算符2.4 常用函数2.5 Limit语句2.6 Where语句2.7 比较运算符(Between/In/ Is Null)2.8 Like和RLike2.9 逻辑运算符(And/Or/Not)三、分组3.1 Group By语句3.2 Having语句四、Join语句4.1 等值Join4.2 表的别名4.3 连接分类4.4多表连接4.5 笛卡尔积五、排序原创 2020-11-27 19:34:00 · 5527 阅读 · 0 评论 -
Hive数据库操作集合
Hive数据库操作集合一 、建库语法 #注意:中括号中的内容都是可省略的。 CREATE DATABASE [IF NOT EXISTS] 库名 #[IF NOT EXISTS] :如果库不存在就创建,如果存在则不创建。如果没有该字段库存在则抛异常 [COMMENT 库的描述信息] [LOCATION 路径] #location : 指定库存放的路径,如果不指定那么默认在(配置的路径下-/user/hive/warehouse/) [WITH DBPROPERTIES (key=val原创 2020-11-25 19:34:28 · 540 阅读 · 0 评论 -
Hive表的操作总结
Hive表的操作总结一、建表语句CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名 # [EXTERNAL]:创建外部表,如果不加该字段创建的是内部表(管理表) # [IF NOT EXISTS] :如果表不存在就创建该表,如果存在则不创建。不加该字段如果表存在则报错。[(字段名 字段的类型 [COMMENT 字段的描述信息], ...)] [COMMENT 表的描述信息] [PARTITIONED BY (col_name data_type [COMME原创 2020-11-25 19:26:28 · 412 阅读 · 0 评论 -
Hive报错集合
Hive报错集合更新中。。。。原创 2020-11-25 16:17:23 · 920 阅读 · 0 评论 -
Hive安装详细步骤
Hive安装详细步骤文章目录Hive安装详细步骤一、下载地址二、MySql安装2.1 检查当前系统是否安装过Mysql2.2 将MySQL安装包拷贝到/opt/software目录下2.3 解压MySQL安装包2.4 在安装目录下执行rpm安装2.5 删除/etc/my.cnf文件中datadir指向的目录下的所有内容,如果有内容的情况下:2.6 初始化数据库2.7 查看临时生成的root用户的密码2.8 启动MySQL服务2.9 登录MySQL数据库2.10 必须先修改root用户的密码,否则执行其他的原创 2020-11-24 18:48:02 · 2931 阅读 · 0 评论 -
Hive基础知识简介
Hive基础知识简介文章目录Hive基础知识简介一、什么是Hive1.1 hive简介1.2 Hive本质二、Hive的优缺点2.1 优点2.2 缺点三、Hive架构原理四、Hive的运行机制五、Hive和 数据库比较5.1 查询语言5.2 数据更新5.3 执行延迟5.4 数据规模一、什么是Hive1.1 hive简介Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。原创 2020-11-24 18:28:19 · 522 阅读 · 0 评论