大数据仓库之 Hive 简单入门

本贴最后更新于 2582 天前,其中的信息可能已经物是人非

什么是 HIVE?

Hive 是基于 Hadoop 的一个数据仓库工具,通过他可以实现将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能,同时将 sql 语句转换为 MapReduce 任务进行运行。它为数据仓库的管理提供了许多功能:数据 ETL (抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。
::[数据仓库]:数据仓库是一个面向主题的,集成的不可更新的,随时间不变化的数据结合,它用于支持企业或组织的决策分析过程。

HIVE 的体系结构  

hive

HIVE 的安装模式

1、内嵌模式:默认是元数据 Metadata 存储在自带的 Derby 数据库【内嵌】.
2、本地模式:通常选择 Mysql.作为元数据存储,和 Hive 在同一机器。
3、远程模式:当 HIVE 数据较多时,选择将元数据库 Mysql 低浓度用一个服务器部署。

HIVE 的数据管理

1、CLI(命令行):终端上执行 HIVE 的 sql 语句进行数据库的操作,管理。通过命令 hivehive --service cli 启动。

  • 基本数据库命令:show ,desc
  • HadoopHDFS 命令:dfs -ls
  • linux 命令:!pwd ,!ls
  • HQL 语句:select * from table;
    只有条件查询的时候才会转换成MapReduce作业,因为select * from会直接返回所有数据。

2、Web 界面:
1. 通过命令 hive --service hwi 启动。
2. 访问:http;//<ip地址>:/9999/hwi/

3、编程接口 JDBC/ThriftServer:
1. 启动远程服务:hive --service hiveservver,只有在启动远程服务之后才能使用 JDBC/Thrift Server
2. 远程编写 JDBC 程序(同连接 Mysql/oracle)进行数据库操作。
3. 使用 Thrift Server 连接,可以直接执行 HQL 语句。

HQL 的执行流程

HIVE 的数据类型

一、基本数据类型

数值类型size示例
TINYINT1-byte
SMALLINT2-byte
INT/INTEGER4-byte
BIGINT8-byte
FlOAT4-byte
DOUBLE8-byte
DOUBLE PRECISIONDOUBLE别名,hive2.2的内容
DECIMAL
NUMERICsame as `DECIMAL`,HIve3.0.0
时间/日期类型size示例
TIMESTAMP
DATE
INTERVAL
字符串类型size示例
STRING
VARCHAR
CHAR
其他类型size示例
BOOLEAN
BINARY

二、复杂数据类型

复杂类型size示例
arrays
maps
structs
union

HIVE 的数据模型

一、HIVE 数据存储:

HIVE中的数据库就是HDFS的/user/hive/warehouse目录,此目录下的每一个目录(跟Hive表同名)代表一个Hive表,最终这些目录里文件file对应的是表中的数据。
HIVE 没有专门的存储格式,我们可以自由指定分隔符,默认的是制表符'\t',这种格式的作用主要是在文件中能表现出来。

二、HIVE 的存储结构:
⬜️ 内部表:

⬜️ 分区表:

⬜️ 外部表:

⬜️ 桶表:

⬜️ 视图:

HIVE 的数据导入

一、LOAD 方式导入

二、Sqoop 数据导入

HIVE 的函数操作

一、内置函数

二、自定义函数

HIVE 数据查询

一、基本查询

二、子查询

三、连接查询

参考资料

。。。待续

  • Hive
    22 引用 • 7 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
rzx
此生最怕深情被辜负,最怕兄弟成陌路。对世界充满善意,同时又充满深深的恨意,我渴望天降甘霖福泽众生,又渴望灭世洪水重创世纪。 广州