hive专题

Hive和Hbase的区别

Hive 和 HBase 都是 Hadoop 生态系统中的重要组件,它们都能处理大规模数据,但各自有不同的适用场景和设计理念。以下是两者的主要区别: 1. 数据模型 Hive:Hive 类似于传统的关系型数据库 (RDBMS),以表格形式存储数据。它使用 SQL-like 语言 HiveQL 来查询和处理数据,数据通常是结构化或半结构化的。HBase:HBase 是一个 NoSQL 数据库,基

掌握Hive函数[2]:从基础到高级应用

目录 高级聚合函数 多进一出 1. 普通聚合 count/sum... 2. collect_list 收集并形成list集合,结果不去重 3. collect_set 收集并形成set集合,结果去重  案例演示 1. 每个月的入职人数以及姓名  炸裂函数  概述  案例演示 1. 数据准备 1)表结构 2)建表语句 3)装载语句 2. 需求 1)需求说明 2)答

【Hive Hbase】Hbase与Hive的区别与联系

问题导读: Hive与Hbase的底层存储是什么? hive是产生的原因是什么? habase是为了弥补hadoop的什么缺陷? 共同点: 1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储 区别: 2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目

【hive 日期转换】Hive中yyyymmdd和yyyy-mm-dd日期之间的切换

方法1: from_unixtime+ unix_timestamp--20171205转成2017-12-05 select from_unixtime(unix_timestamp('20171205','yyyymmdd'),'yyyy-mm-dd') from dual;--2017-12-05转成20171205select from_unixtime(unix_timestamp

【hive 函数】Hive分析函数和窗口函数

拿一个例子来说 数据集: cookie1,2015-04-10 10:00:02,url2 cookie1,2015-04-10 10:00:00,url1 cookie1,2015-04-10 10:03:04,1url3 cookie1,2015-04-10 10:50:05,url6 cookie1,2015-04-10 11:00:00,url7 cookie1,2

Hive SQL 分组与连接操作详解

目录 分组 Group By语句 1. 案例实操  Having语句 1. having 与 where 不同点 2. 案例实操  Join语句  等值Join 1. 案例实操  表的别名 1. 好处 2. 案例实操  内连接  左外连接  右外连接  满外连接  多表连接 1. 创建位置表 2. 导入数据 3. 多表连接查询  笛卡尔集 1. 笛卡尔集

Hive SQL基础语法及查询实践

目录 基础语法 1. 官网地址 2. 查询语句语法  基本查询(Select…From)  数据准备 (0)原始数据 (1)创建部门表 (2)创建员工表 (3)导入数据  全表和特定列查询 1. 全表查询 2. 选择特定列查询  列别名 1. 重命名一个列 2. 便于计算 3. 紧跟列名,也可以在列名和别名之间加入关键字 ‘AS’ 案例实操  Limit语句

Hive是什么?

Apache Hive 是一个基于 Hadoop 的数据仓库工具,用于在 Hadoop 分布式文件系统(HDFS)上管理和查询大规模结构化数据集。Hive 提供了一个类似 SQL 的查询语言,称为 HiveQL,通过这种语言可以在 HDFS 上执行 MapReduce 作业而无需编写复杂的代码。 Hive 的核心概念和特点 数据仓库工具:Hive 可以将结构化数据存储在 HDFS 上,用户可

Hive扩展功能(一)--Parquet

软件环境: linux系统: CentOS6.7Hadoop版本: 2.6.5zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这三部机, 每部主机的用户名都为centos 192.168.179.201: m1 192.168.179.202: m2 192.168.179.203: m3 m1: Zookeeper, Namenode, DataNod

Hive - 日期从整形转为Date类型

在建表的时候我们常将日期字段设置为INT类型,将诸如20180601这样的数字值来表示日期,这样在做日期比较等操作时没有问题,但是要进行某些日期计算,就要先转成日期类型才能进行计算了,怎么转换呢? 数据准备 下面在Hive中先建一个表,含有一个INT类型的日期字段,插入两行数据。 create table tb (dt INT);insert into tb values (2018070

一个小知识点-Hive行转列实现Pivot

前言 传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。 传统数据库方式 这种方式是借鉴在Oracle或者SQLserver在支持Pivot函数之前实现行转列的方式,实际上语法没有什么变化,只是换成了Hive。 with testtable(select 1 id

Hive/HiveSQL常用优化方法全面总结

Hive作为大数据领域常用的数据仓库组件,在平时设计和查询时要特别注意效率。影响Hive效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、job或I/O过多、MapReduce分配不合理等等。对Hive的调优既包含对HiveSQL语句本身的优化,也包含Hive配置项和MR方面的调整。 《2021年最新版大数据面试题全面开启更新》 《2021年最新版大数据面试题全面开启更新》   目录   列

Flink1.10和Hive集成一些需要注意的点

前几天,Flink官方release了Flink1.10版本,这个版本有很多改动。比如: Flink 1.10 同时还标志着对 Blink的整合宣告完成,随着对 Hive 的生产级别集成及对 TPC-DS 的全面覆盖,Flink 在增强流式 SQL 处理能力的同时也具备了成熟的批处理能力。本篇博客将对此次版本升级中的主要新特性及优化、值得注意的重要变化以及使用新版本的预期效果逐一进行介绍。 其

Flink1.12集成Hive打造自己的批流一体数仓

简介 小编在去年之前分享过参与的实时数据平台的建设,关于实时数仓也进行过分享。客观的说,我们当时做不到批流一体,小编当时的方案是将实时消息数据每隔15分钟文件同步到离线数据平台,然后用同一套SQL代码进行离线入库操作。 但是随着 Flink1.12版本的发布,Flink使用HiveCatalog可以通过批或者流的方式来处理Hive中的表。这就意味着Flink既可以作为Hive的一个批处

【硬刚Hive】Hive 中的排序和开窗函数

Hive 中的四种排序 排序操作是一个比较常见的操作,尤其是在数据分析的时候,我们往往需要对数据进行排序,hive 中和排序相关的有四个关键字,今天我们就看一下,它们都是什么作用。 数据准备 下面我们有一份温度数据,tab 分割: 2008 32.02008 21.02008 31.52008 17.02013 34.02015 32.

【硬刚Hive】Hive面试题(8)Hive调优全方位指南(三)

3、Hive架构层面 3.1 启用本地抓取(默认开启) Hive 的某些 SQL 语句需要转换成 MapReduce 的操作,某些 SQL 语句就不需要转换成 MapReduce 操作,但是同学们需要注意,理论上来说,所有的 SQL 语句都需要转换成 MapReduce 操作,只不过Hive 在转换 SQL 语句的过程中会做部分优化,使某些简单的操作不再需要转换成 MapReduce,例如

【硬刚Hive】Hive面试题(7)Hive调优全方位指南(二)

2、HQL层面优化 2.1 执行计划 explain select * from movies; 2.1 列、行、分区裁剪 列裁剪就是在查询时只读取需要的列 行裁剪就是在查询时只读取需要的行,也就是提前过滤 分区剪裁就是在查询的时候只读取需要的分区。 set hive.optimize.cp = true; 列裁剪,取数只取查询中需要用到的列,默认是trueset hive

【硬刚Hive】Hive面试题(6)Hive调优全方位指南(一)

正文目录 1、表层面 1.1 利用分区表优化 1.2 利用分桶表优化 1.3 选择合适的文件存储格式 1.4 选择合适的压缩格式 2、HQL层面优化 2.1 执行计划 2.1 列、行、分区裁剪 2.2 谓词下推 2.3 合并小文件 2.4 合理设置MapTask并行度 2.5 合理设置ReduceTask并行度 2.6 Join优化 2.7 CBO优化 2.8

【硬刚Hive】Hive面试题(5)UDF,UDTF(二)UDTF

1.udtf介绍及编写 1.1.介绍 HIVE中udtf可以将一行转成一行多列,也可以将一行转成多行多列,使用频率较高。本篇文章通过实际案例剖析udtf的编写及使用方法和原理。 测试数据 drop table if exists test;create table test(ind int,col string,col1 string) ;insert into test values

【硬刚Hive】Hive面试题(4)UDF,UDTF(一)UDF

1 UDF的定义 UDF(User-Defined Functions)即是用户定义的hive函数。hive自带的函数并不能完全满足业务需求,这时就需要我们自定义函数了 2 UDF的分类 UDF:one to one,进来一个出去一个,row mapping。是row级别操作,如:upper、substr函数UDAF:many to one,进来多个出去一个,row mapping。是

【硬刚Hive】Hive面试题(3):如何用sqoop将hive中分区表的分区字段导入到MySQL中

问题分析:  1.hive中分区表其底层就是HDFS中的多个目录下的单个文件,hive导出数据本质是将HDFS中的文件导出 2.hive中的分区表,因为分区字段(静态分区)不在文件中,所以在sqoop导出的时候,无法将分区字段进行直接导出 思路:在hive中创建一个临时表,将分区表复制过去后分区字段转换为普通字段,然后再用sqoop将tmp表导出即实现需求 步凑如下: 1.创建目标表(

【硬刚Hive】Hive基础(12):Hive语法(6) DDL(3) hive动态分区

往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低。因为hive是批处理系统,所以hive提供了一个动态分区功能,其可以基于查询参数的位置去推断分区的名称,从而建立分区。 1.创建一个单一字段分区表 1 hive>2 create table dpartition(id int ,name string )

【硬刚Hive】Hive基础(11):元数据(二)分析Hive表和分区的统计信息(Statistics)

类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。 表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等; 1 新表的统计信息 对于一个新创建的表,默认情况下,如果通过INSERT OVERWRITE的方式插入数据,那么Hive会自动将该表或分区的统计信息更新到元数据。

【硬刚Hive】Hive基础(10):元数据(一)Hive的元数据表结构详解

1 概述 我们知道Apache Hive 是构建在Apache Hadoop之上的数据仓库。有助于对大型的数据集进行读、写和管理。这也是官网介绍的第一句话,虽然简短但是却能提炼出很多东西,大家可以去细细品味下。该篇博客不做过多讲述。本文我们介绍Hive的原数据表,他默认是存储再derby中的,但是我们一般会修改会mysql。作者使用的也是mysql进行的管理。 2 Hive元数据表结构

【硬刚Hive】Hive面试题(2):Hive 执行过程实例分析

一、Hive 执行过程概述 1、概述 (1) Hive 将 HQL 转换成一组操作符(Operator),比如 GroupByOperator, JoinOperator 等 (2)操作符 Operator 是 Hive 的最小处理单元 (3)每个操作符代表一个 HDFS 操作或者 MapReduce 作业 (4)Hive 通过 ExecMapper 和 ExecReducer 执行

Hive中order by,sort by,distribute by,cluster by的区别

一:order by order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章:Hive Order by操作。 二:sort by sort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort