Hive
文章平均质量分 85
珞沫
欲望以提升热忱,毅力以磨平高山。
展开
-
Hive之Hive文件存储格式
文件存储格式引言1、TextFile2、sequencefile3、orc4、 parquet引言\quad \quadHive支持的存储数的格式主要有:TextFile、SEQUENCEFILE、ORC、PARQUET。其中,TEXTFILE、SEQUENCEFILE是基于行存储,ORC、PARQUET基于列存储。行存储和列存储上图中左边为逻辑表,右上为行存储,右下为列存储。行存储特点:查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到原创 2021-01-09 16:32:59 · 328 阅读 · 0 评论 -
Hive表设置支持中文注释、中文表数据导入
问题1、创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱create table student_score(stu_id string comment '学生id',stu_name string,courses string,scores string ); 这是因为在MySQL中的Hive元数据不支持中文,故出现乱码。2、加载中文数据到表中,结果出现乱码hive> insert into student_score values原创 2021-01-07 16:05:27 · 4538 阅读 · 0 评论 -
Hive之深入了解元数据
元数据引言1、Hive 元数据2、Hive 元数据表2.1 Hive 库2.2 VERSION 表2.3 Hive数据库相关的元数据表2.3.1 DBS—数据库表2.3.2 DATABASE_PARAMS表—数据库参数表2.4 Hive数据表相关的元数据表2.4.1 TBLS表—数据表的元数据表2.4.2 TABLE_PARAMS表—数据表属性信息表2.4.3 TBL_PRIVS—授权表2.5 Hive文件存储信息相关的元数据表2.5.1 SDS表2.5.2 SD_PARAMS表2.5.3 SERDES表原创 2021-01-07 14:49:19 · 7274 阅读 · 0 评论 -
Hive实践5之【分割函数(split)、行转列函数(explode)、lateral view】
小小实践1、split 函数—分割2、explode函数—行转列2.1 用于array类型的数据2.2 用于map类型的数据2.3 如何将其用入string类型的数据2.4 explode函数的局限性3、lateral view1、split 函数—分割作用: split()函数是用于切分数据,也就是将一串字符串切割成了一个数组,语法: split(string str, string pat)string str :待分割字符串string pat:分割符返回值: array原创 2021-01-07 10:28:57 · 15188 阅读 · 1 评论 -
Hive实践4之【列转行函数(collect_list、collect_set)、合并函数(concat、concat_ws)】
1、列转行函数Hive中collect相关的函数有collect_list、collect_set,两者都是将分组中的某一列转化为一个数组返回,需要与group by函数联合使用区别:collect_list不去重collect_set去重例子:原创 2021-01-06 17:06:47 · 5264 阅读 · 0 评论 -
Hive实践3之【排序及优化(order by,sort by,distribute by,cluster by)对比】
排序在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别:order bysort bydistribute bycluster by准备工作:Hive 提供了多重排序语句,我们这里对这几种排序方法做一解析,并进行测试编排如下:试验场景Hive 中的 ORDER BY 与其不足Hive 中的 SORT BY,DISTRIBUTE BYHive 中的CLUSTER BY 与其不足完成相同功能的Job 执行原创 2021-01-02 15:52:16 · 1943 阅读 · 3 评论 -
Hive实践2之【分桶】
分桶1、分桶原理2、分桶操作3、分桶实践4、分桶应用—数据抽样为什么要分桶?单个分区或者表中的数据量越来越大,当分区不能更细粒的划分数据时,所以会采用分桶技术将数据更细粒度的划分和管理。通俗点来说就是分区是分文件夹,分桶是将文件夹下的文件分成几个文件块去存储。比如表文件中本来是1000000条数据,由于在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便,所以我们可以分多个文件去存储。1、分桶原理分桶表是对列值取哈希值的方式,将不同数据放到不原创 2020-12-31 11:27:52 · 735 阅读 · 0 评论 -
Hive实践1之【静态分区及动态分区基本操作】
Hive分区引言1、静态分区1.1 静态分区——单分区1.2 静态分区——多分区引言分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。Hive中支持的分区类型有两种:静态分区动态分区静态分区和动态分区的主要区别在于静态分区需要手动指定,而动态分区是基于查询参数的位置去推断分区的原创 2020-12-30 21:10:51 · 1493 阅读 · 0 评论 -
Hive小技巧之查看函数定义的方法
Hive命令行窗口查看函数定义语法:desc function 函数名;原创 2020-12-29 16:19:02 · 297 阅读 · 0 评论 -
大数据之Hadoop数据仓库框架Hive(五-4):Hive 优化
Hive 优化引言1、配置优化1.1 数据存储格式引言\quad \quadHive的底层是MapReduce,当数据表太大时,往往可以通过并行来提高效率,比如通过分区实现运行多个reduce,可是如果处理不当则容易引发数据倾斜,从而导致效率较低,这就涉及到Hive 的优化。Hive的优化主要分为3个方面,即配置优化、MapReduce优化、程序优化。1、配置优化1.1 数据存储格式Hive文件存储格式有以下几种:其中TextFile是Hive默认的文件存储格式对于大量数据的情况下,工作中原创 2020-12-21 20:18:11 · 649 阅读 · 1 评论 -
大数据之Hadoop数据仓库框架Hive(五-3):常用业务操作实践
1、建库首先我们建一个库,以运行下面的任务create database test;切到这个库下:use test;2、将相关的数据进行建表现有用户历史行为数据orders,订单—商品详细数据order_products__train,基于这两数据解决一些实际问题首先将所需要的数据通过Xshell上传到本地文件2.1 创建orders,trains表下面演练一下创建orders表过程,order_products_train表同理创建orders表2.1.1 首先查看一原创 2020-12-21 10:03:54 · 915 阅读 · 1 评论 -
Hive表中load数据时,过滤首行表头
\quad \quad向Hive表中load数据的时候,一般被加载数据是不包含表头的,对于被加载数据包含表头,则需要通过以下方法变通解决。一般来说,hive加载csv文件时总是会把表头加载进来。hive 加载csv格式去除首行,有以下几种办法:方式一:shell命令思想:在load数据之前,将原数据的第一行去掉,其余数据定向输出到一个新文件里,然后我们用新文件的数据加载表sed '1d' tmp.csv > tmp_res.csvcat tmp_res.csv方式二:HQL (hi原创 2020-12-20 21:20:13 · 6227 阅读 · 0 评论 -
Hive查询语句中显示列名(字段名)
要想在hive查询语句中只显示列名,我们可以在hive命令行中手动开启:-- 显示列名set hive.cli.print.header=true; 此时显示的字段名带表名,可读性很差,列名会十分冗长,继续输入以下命令:-- 不显示表名set hive.resultset.use.unique.column.names=false;但是上述条命令有个弊端,那就是命令只能在当前会话有效,退出hive就失效,所以我们可以使用下面的方法让命令自动生效。在hive/conf/hive-site.x原创 2020-12-20 20:43:39 · 7471 阅读 · 2 评论 -
Hive处理数据结果保存
1、查询结果保存到本地一个目录hive> insert overwrite local directory "存放结果目录" > row format delimited fields terminated by "\t" > select * from orders limit 10;存放结果目录为本地已有的目录row format delimited fields terminated by “\t” 指存放结果时以什么方式分割数据最后也就是相关任务原创 2020-12-19 19:53:58 · 1602 阅读 · 1 评论 -
大数据之Hadoop数据仓库框架Hive(五-1):简介、数据类型、架构、数据模型、安装
Hive——Hadoop的数据仓库框架引言1、Hive简介2、Hive VS 数据库2.1 对比传统关系型数据库2.2 HQL VS SQL3、Hive数据类型4、Hive架构引言引入Hive框架原因对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一堆MapReduce代码,比较麻烦对于统计任务,只能由动MapReduce的程序员才能搞定耗时耗力Hive基于一个统一的查询分析层,通过SQL语句的方式对HDFS上的数据进行查询、统计和分析1、Hive简介原创 2020-12-18 12:18:24 · 744 阅读 · 0 评论 -
大数据之Hadoop数据仓库框架Hive(五-2):基本命令、基本操作
Hive 基本操作1、数据库基本操作2、数据表的基本操作2.1 创建内部表2.2 创建外部表2.3 将数据加载到表中2.4 显示指定表的信息2.5 显示指定表的详细信息2.6 内部表与外部表的转换2.7 表重命名2.8 修改字段名或字段类型2.4 小实践首先:1、启动集群start-all.sh2、启动Hive:hive1、数据库基本操作创建数据库create database test;创建数据库并指定hdfs的存储位置create database test1原创 2020-12-19 16:51:34 · 444 阅读 · 1 评论