Hive
文章平均质量分 90
数据仓库Hive
Keven He
一个热爱技术的大数据开发者
展开
-
数仓建模—宽表的设计
宽表是数仓里面非常重要的一块,数仓是分层的,这是技术进步和时代变化相结合的产物,数仓的分层式为了更好地管理数仓以及更加高效地进行数据开发。原创 2022-08-27 10:47:20 · 2358 阅读 · 0 评论 -
数据仓库之拉链表
拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。原创 2022-08-27 10:34:36 · 1012 阅读 · 0 评论 -
Hive严格模式
4、查询条件里面字段类型赋值时必须一致,比如日期分区dt字段类型为字符串,那么分区条件必须指定为dt=‘20160508’,而不能用dt=20160508。2、带orderby的查询,必须使用limit限制查询数据条数,否则会查询失败。5、在生成动态分区时,会失败,需要单独设置为非严格模式。今天工作中被同事问到Hive严格模式三种禁止的查询。1、对分区表查询必须带分区条件,否则会查询失败。在严格模式下无法执行,通过设置。3、不能进行笛卡尔积的查询。...原创 2022-08-10 22:39:13 · 1839 阅读 · 0 评论 -
关于Hive中的存储格式及压缩格式详解
最近面试,遇到了关于Hive的数据存储格式的问题,回答不尽人意,抽时间总结多看看关于Hive存储格式和压缩格式的内容。TEXTFILE 是 Hive 默认文件存储方式,存储方式为行存储,数据不做压缩,磁盘开销大,数据解析开销大,数据不支持分片,数据加载导入方式可以通过LOAD和INSERT两种方式加载数据。可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但使用gzip方式,hive不会对数据进行切分,从而无法对数据进行并行操作,但压缩后的文件不支持split。在反序列化过程中,必须逐个原创 2022-06-07 23:41:04 · 6067 阅读 · 5 评论 -
Hive入门篇笔记
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。用于解决海量结构化日志的数据统计。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的默认实现是MapReduce3)执行程序运行在Yarn上优缺点:操作接口采用类SQL语法避免MapReduce执行延迟高,常用于数据分析,实时性要求不高场景支持用户自定义函数缺点:HQL表达能力有限(1)迭代式算法无法表达(2)数据挖掘方面原创 2022-04-28 17:25:56 · 839 阅读 · 0 评论 -
Hive的调优使用
Hive调优Fetch抓取Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找、字段查找、limit查找等都不走mapr原创 2022-05-05 15:31:56 · 450 阅读 · 0 评论 -
Linux环境下Hive的安装
下载所需版本的 Hive,这里我下载版本为 。下载地址:http://archive.cloudera.com/cdh5/cdh/5/1.2 配置环境变量添加环境变量:使得配置的环境变量立即生效:1.3 修改配置1. hive-env.sh进入安装目录下的 目录,拷贝 Hive 的环境配置模板 修改 ,指定 Hadoop 的安装路径:2. hive-site.xml新建 hive-site.xml 文件,内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密码等信息:1.原创 2022-06-03 16:05:04 · 2171 阅读 · 0 评论 -
Hive常用DDL操作
1.3 新建数据库语法:示例:1.4 查看数据库信息语法:示例:1.5 删除数据库语法:默认行为是 RESTRICT,如果数据库中存在表则删除失败。要想删除库及其中的表,可以使用 CASCADE 级联删除。示例:二、创建表2.1 建表语法2.2 内部表2.3 外部表使用 命令可以查看表的详细信息如下:2.5 分桶表2.6 倾斜表通过指定一个或者多个列经常出现的值(严重偏斜),Hive 会自动将涉及到这些值的数据拆分为单独的文件。在查询时,如果涉及到倾斜值,它就原创 2022-06-03 16:07:54 · 628 阅读 · 0 评论 -
Hive的分区表和分桶表的概念和使用
Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大。分区为 HDFS 上表目录的子目录,数据按照分区存储在子目录中。如果查询的 字句的中包含分区条件,则直接从该分区去查找,而不是扫描整个表目录,合理的分区设计可以极大提高查询速度和性能。通常,在管理大规模数据集的时候都需要进行分区,比如将日志文件按天进行分区,从而保证数据细粒度的划分,使得查询性能得到提升。在 Hive 中可以使用 子句创建分区表。表可以包含一个或多个分区列,程序会为分区列中原创 2022-06-03 16:09:51 · 3003 阅读 · 0 评论 -
Hive 视图和索引
Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时,Hive 可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中。在 Hive 中可以使用 创建视图,如果已存在具有相同名称的表或视图,则会抛出异常,建议使用 预做判断。在使用视图时候需要注意以下事项:视图是只读的,不能用作 LOAD / INSERT / ALTER 的目原创 2022-06-03 16:12:06 · 1485 阅读 · 0 评论 -
Hive 常用DML操作
关键字代表从本地文件系统加载文件,省略则代表从 HDFS 上加载文件:从本地文件系统加载文件时, 可以是绝对路径也可以是相对路径 (建议使用绝对路径);从 HDFS 加载文件时候, 为文件完整的 URL 地址:如 可以是文件路径 (在这种情况下 Hive 会将文件移动到表中),也可以目录路径 (在这种情况下,Hive 会将该目录中的所有文件移动到表中);如果使用 OVERWRITE 关键字,则将删除目标表(或分区)的内容,使用新的数据填充;不使用此关键字,则数据以追加的方式加入;加载的目标可以是原创 2022-06-03 16:14:09 · 1317 阅读 · 0 评论 -
Hive数据查询详解
为了演示查询操作,这里需要预先创建三张表,并加载测试数据。1.2 部门表1.3 分区表这里需要额外创建一张分区表,主要是为了演示分区查询:二、单表查询2.1 SELECT2.2 WHERE2.3 DISTINCTHive 支持使用 DISTINCT 关键字去重。2.4 分区查询分区查询 (Partition Based Queries),可以指定某个分区或者分区范围。2.5 LIMIT2.6 GROUP BYHive 支持使用 GROUP BY 进行分组聚合操作。 控制原创 2022-06-03 16:15:28 · 4598 阅读 · 0 评论