Hive是基于Hadoop之上的数据仓库,本质上也就是一个数据库,是构建在hadoop HDFS上的一个数据仓库

Hadoop和Hive是基于Linux操作系统创建的

数据仓库:即数据库,用一个仓库来保存数据。数据仓库是一个面向主题的、集成的、不可更新的、随时间不变化的数据集合,它用于支持企业或组织的决策分析处理。

  • 面向主题:用户使用数据仓库时关注的数据种类,例如商品信息
  • 集成:把分散型的数据集成起来满足一定的要求后存储于数据仓库中
  • 不可更新:主要提供数据查询,不做数据更新,且随时间推移不会发生变化

数据仓库的结构和建立过程:

  • 数据源:业务数据系统、文档资料、其他数据
  • 数据存储及管理:ETL。抽取(Extract)、转换(Transform)、装载(Load)
  • 抽取:把数据源的数据按照一定的方式读取出来
  • 转换:不同数据源的数据格式可能不同,需要按照一定的格式进行转换
  • 装载:将满足格式的数据装到数据仓库中
  • 数据仓库引擎:建立数据仓库后,利用数据仓库引擎向外提供服务。不同的服务器提供不同的服务
  • 前端展示:数据查询、数据报表、数据分析、各类应用

与其他传统基础的数据库【Oracle、Mysql】不同,

Hive是建立在Hadoop HDFS上的数据仓库基础架构,数据存储在HDFS上。

Hive可以用来进行数据提取转化加载(ETL)

Hive定义了简单的类似SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据

允许熟悉MapReduce开发者的开发自定义的mapper和reducer,来处理内建的mapper和reducer,无法完成复杂的分析工作

Hive是SQL解析引擎,将SQL语言转移成M/R job,之后在Hadoop执行

Hive的表其实就是HDFS的目录/文件,Hive表存在HDFS的目录上,Hive数据存在HDFS文件中。

 

Hive的管理:

  • CLI(命令行)方式
直接输入#<HIVE_HOME>/bin/hive的执行程序 退出用quit
     输入#hive --service cli 退出用exit
     清屏:Ctrl + L或者 ! clear;
     查看数据仓库中的表信息:show tables
     注释: -- + 注释内容
     查看表结构: desc + 表名
【以递归方式查看目录及子目录文件 dfs -lsr + 目录】
     执行操作系统的命令:! + 命令 例如 ! pwd 查看当前目录
【Hive将命令转为MapReduce作业,之后在Hadooop上执行。Select * from +表 查询所有信息没有必要转化为MapReduce】
      执行sql文件:source + 目录
     调节为静默模式,不产生MapReduce的调试信息,直接输出最终结果:hive -S
【hive -S -e ‘语句’为静默模式】
【执行Hive命令需要注意语句最后要加分号’;’】
• Web界面方式
     端口号9999
     启动方式:#hive --service hwi
     通过浏览器来访问:http://<IP地址>:9999/hwi/
【注意需要下载src源代码文件后编译运行产生web界面方式打成war包后更改path文件;注意需要把jdk的jar包拷贝到hive的bin下】
• 远程服务启动方式
     端口号10000
【若以JDBC或ODBC的程序登录到hive中操作数据时,必须选用远程服务启动方式,启动Thrift Server】

Hive的数据类型:

Hive -- 数据仓库,本质数据库。可以创建表,列等

基本数据类型——

  • 整数类型:tinyint/smallint/int/bigint
  • 浮点数类型:float/double
  • 布尔类型:boolean
  • 字符串类型:string/varchar/char【varchar表示字符串长度最大为20,char表示长度固定20,及时实际长度没有20也会按照20计算】

复杂数据类型——

  • Array:数组类型,由一系列相同数据类型的元素组成的集合                                                                 

grade为多门科目的成绩用数组

  • Map:集合类型,包含key-value键值对,可通过key来访问元素


多门科目中的一门成绩

Hadoop集群的数据仓库 hadoop中的数据仓库叫什么_数据仓库


多门科目同时表示

  • Struct:结构类型,可包含不同数据类型的元素,这些元素可通过“点语法”的 方式来得到所需要的 元素


多种信息在struct中

Hadoop集群的数据仓库 hadoop中的数据仓库叫什么_hive_02

时间类型——

  • Date

     查看当前系统时间戳的偏移量:select unix_timestamp()

  • Timestamp

【Date和Timastamp转换用cast函数】

Hive数据存储:

  • 基于HDFS文件系统
  • 无专门的数据存储格式(文件后缀无所谓)
  • 存储结构主要有:数据库、文件、表、视图
  • 可直接加载文本文件(.txt文件)
  • 创建表时,指定Hive数据的列分隔符与行分隔符