首页 > 开发 > 综合 > 正文

初学Hive数据仓库

2024-07-21 02:52:36
字体:
来源:转载
供稿:网友

初学Hive数据仓库

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

数据仓库结构 - 数据源:业务数据系统、文档资料、其他数据 - 数据存储及管理:抽取、转换、装载 - 数据仓库引擎:服务器 - 前端展示:数据查询、数据报表、数据分析、各类应用

数据仓库中的数据模型:星型模型、雪花模型

Hive简介 - Hive是建立在Hadoop HDFS上的数据仓库基础架构; - Hive可以用来进行数据提取转换加载(ETL); - Hive定义了简单的类似SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据。 - Hive允许熟悉MaPReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作; - Hive是SQL解析引擎,它将SQL语句转移成M/R Job,然后在Hadoop执行。Hive的表其实就是HDFS的目录/文件。

Hive的体系结构 - Hive的元数据:Hive将元数据存储在数据库中(metastore),支持MySQL、derby等数据库。 - Hive中的元数据包括表的名字、表的列和分区及其属性,表的属性(是否为外部等),表的数据所在目录等。 - Hadoop:用HDFS进行存储,利用MapReduce进行计算; - 元数据存储(MetaStore):通常是存储在关系数据库如mysql、derby中。

Hive的SQL执行过程 - 解析器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(Plan)的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。

hadoop的安装:单机环境、伪分布环境、集群环境。

Hive的安装模式 - 嵌入模式、本地模式、远程模式。 - 嵌入模式:元数据信息被存储在Hive自带的Derby数据库中;只允许创建一个连接;多用于Demo。 - 本地模式:元数据信息被存储在MySQL数据库中;MySQL数据库与Hive运行在同一台物理机器上;多用于开发和测试。 - 远程模式:Hive的元信息存储在Mysql数据库中,而Hive和Mysql数据库运行不在同一台物理机器上;多用于实际的生产运行环境。

Hive的管理 - **Hive的启动方式:**CLI(命令行)方式;Web界面方式;远程服务启动方式。 - CLI(命令行方式):直接输入#/bin/hive的执行程序;或者输入#hive –service cli - 常用的CLI命令: 1)清屏:Ctrl + L或者!clear 2)查看数据仓库中的表:show tables 3)查看数据仓库中内置的函数:show functions 4)查看表结构:desc 表名 5)查看HDFS上的文件:dfs -ls 目录 6)执行操作系统的命令:!命令 7)执行HQL语句:select *** from *** 8)执行HQL语句脚本:source *.sql

Hive的数据类型 - Hive - 数据仓库 - 数据库 : 创建表 - 列 - 类型 - 基本数据类型 1)tinyint/smallint/int/bigint:整数类型 2)float/double:浮点数类型 3)boolean:布尔类型 4)string:字符串类型 - 复杂数据类型 1)Array:数组类型,由一系列相同数据类型的元素组成 2)Map:集合类型,包含key-value键值对,可以通过可以来访问元素 3)Struct:结构类型,可以包含不同数据类型的元素。这些元素可以通过“点语法”的方式来得到所需要的元素 - 时间类型 1)Date:从Hive0.12.0开始支持 2)Timestamp:从Hive0.8.0开始支持

Hive的数据存储 - 基于HDFS进行存储

Hive的数据模型 - * 内部表(Table)*:与数据库中的Table在概念上是类似;每一个Table在Hive中都有一个相应的目录存储数据;所有的Table数据(不包括External Table)都保存在这个目录中;删除表时,元数据与数据都会被删除。 - 分区表(Partition):Partition对应于数据库的Partition列的密集索引;在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中 - 外部表(External Table):指向已经在HDFS中存在的数据,可以创建Partition;它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异;外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。但删除一个外部表时,仅删除该链接。 - 桶表(Bucket Table):是对数据进行哈希取值,然后放到不同文件中存储。 - 视图(View):是一种虚表,是一个逻辑概念,可以跨越多张表;视图建立在已有表的基础上,视图赖以建立的这些表称为基表;视图可以简化复杂的查询。

参考文献:http://www.imooc.com/learn/387学习总结


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表