ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hive分布式数据仓库(大数据)

2022-07-28 09:02:39  阅读:220  来源: 互联网

标签:join 数据仓库 Hive DDL table 数据 分布式


  数据仓库 数据仓库和数据库的区别 数据仓库的系统结构 Hive概述和体系结构 Hive简介 Hive应用场景 Hive体系结构 华为Hive架构 Hive与传统数据仓库比较(1) Hive与传统数据仓库比较(2) Hive优点 Hive缺点 Hive数据存储模型 Hive分区和分桶 Hive基本操作 Hive数据基本操作(1) Hive数据基本操作(2) Hive SQL介绍 DDL操作(1) DDL操作(2) DDL操作(3) DML操作 DQL操作(1) DQL操作(2) DQL操作(3) Hive支持的函数 Hive数据压缩与文件存储格式 数据仓库
  • 数据仓库是一个面向主题的(Subject Oriented),集成的(Integrated),相对稳定的(Non-Volatile)以及反映历史变化的(Time Variant)数据集合,用于支持管理决策。
  • 面向主题:数据仓库会围绕一些主题来组织和构建。
  • 集成:指构建数据仓库通常会将多个异构的数据源。
  • 相对稳定:数据仓库大多会分开存储数据,数据仓库不需要进行事务处理,数据恢复和并发控制等。
  • 反映历史变化:数据仓库是从历史的角度提供信息的。
  数据仓库和数据库的区别
  • 数据库的操作
  1. 联机事务处理(OLTP)
  2. OLTP面向一般的客户,关注企业的当前数据,主要用于存储和管理日常运营的数据。
  3. OLTP的访问模式由短的原子事务组成,同时需要考虑事务管理,并发控制和故障恢复。
 
  • 数据仓库的操作
  1. 联机分析处理(OLAP)
  2. OLAP面向的是管理决策人员,提供数据分析的功能。
  3. 数据仓库与OLAP的关系是互补的。

 

 

  数据仓库的系统结构
  • 数据源
  • 数据存储和管理
  • 数据服务
  • 数据应用

 

 

  Hive概述和体系结构 Hive简介
  • Hive是基于Hadoop的数据仓库软件,可以查询和管理pb级别的分布式数据。
  • Hive特性:
  1. 灵活方便的ETL(extract/transform/load)
  2. 支持Tez,spark等多种计算引擎
  3. 可直接访问HDFS文件以及HBase
  4. 易用易编程
  Hive应用场景

 

 

  Hive体系结构
  • Hive命令行界面(Command-Line Lnterface,CLI)
  • THrift提供Hive远程访问,支持JDBC和ODBC
  • 元数据服务
  • Hive默认的执行引擎是MapReduce
  • Hive Web界面

 

 

  华为Hive架构
  • 引入了WebHCat组件。
  • WebHCat对外提供REST接口,使用户可以通过超文本传输安全协议(Hyper Text Transfer Protocol Secure, HTTPS)使用元数据访问,数据定义语言(Data Defination Language,DDL)查询等服务。

 

 

  Hive与传统数据仓库比较(1)

 

 

Hive与传统数据仓库比较(2)

 

 

  Hive优点

 

 

  Hive缺点

 

 

  Hive数据存储模型

 

 

  Hive分区和分桶
  • 分区:数据表可以按照某给字段的值划分分区。
  1. 每个分区是一个目录。
  2. 分区数量不固定。
  3. 分区下可再有分区或者桶。
  • 桶:数据可以根据桶的方式将不同数据放入不同的桶中。
  1. 每个桶是一个文件。
  2. 建表时指定桶个数,桶内可排序。
  3. 数据按照某个字段的值Hash后放入某个桶中。
  Hive基本操作 Hive数据基本操作(1)

 

 

  Hive数据基本操作(2)

 

 

  Hive SQL介绍
  • DDL-数据定义的语言
  1. 建表,修改修,删表,分区,数据类型
  • DML-数据管理语言
  1. 数据导入,数据导出
  • DQL-数据查询语言
  1. 简单查询
  2. 父子查询Group by,Order by,Join等
  DDL操作(1)
  • 创建数据库
  1. create database|schema [if not exists] <database name>
  • 删除数据库
  1. drop (database|schema)[if exists] database_name [restrict|cascade]
  DDL操作(2)
  • 创建表
create [temporary] [external] table [if not exists] [db_name.] table_name [(col_name data_type [comment col_comment] ,...)] [comment table_comment] [row format row_format] [stored as file_format] like table_name1 [location hdfs_path]
  • 描述表
describe [tablename]   DDL操作(3)
  • 浏览表
show tables
  • 修改表
alter table [firest_table] rename to [second_table]
  • 增加删除列
alter table table_name add|replace columns (col_name data_type [comment col_comment])   DML操作
  • 向表里加载数据
load data [local] inpath 'filepath' [overwrite] info table tablename [paetition (partcol1=val1,partcol2=val2)]
  • 导出数据到
export table tablename to '/department'   DQL操作(1)
  • select基本语句
select [all | distinct] select_expr,select_expr,.... from table_reference [where where_condition] [group by col_list[having condition]] [cluster by col_list| [distribute by col_list]] [sort by| order by col_list] [limit number]   DQL操作(2)
  • JOIN基本语句
table_reference join table_factor [join_condition] | table_reference {left|right|full} [outer] join table_reference join_condition | table_reference left semi join table_reference join_condition | table_reference cross join table_reference [join_condition] (as of Hive 0.10)   DQL操作(3)
  • Map端JOIN
  1. 大的表通过mapper的时候将小标映射到内存中,这样join操作可以被转换伟只有一个任务,无法启动reduce
  2. 提高join效率
  3. hive>select /*+mapjoin(samlltable)*/ .key,value
>from smalltable >join bigtable >on smalltable.key = bigtable.key   Hive支持的函数
  • Hive内置函数
  1. 数学函数:如round(),floor(),abs(),rand()等
  2. 日期函数:如to_date(),mouth(),day()等
  3. 字符串函数:如trim(),length(),substr()等
  • UDF (user - defined funcation)
  Hive数据压缩与文件存储格式
  • Hive数据压缩
  1. gzip
  2. bzip2
  3. lzo
  4. snappy
 
  • Hive文件存储格式
  1. textfile
  2. sequencefile
  3. rcfile
  4. orcfile
  5. parquet

标签:join,数据仓库,Hive,DDL,table,数据,分布式
来源: https://www.cnblogs.com/06080410z/p/16527257.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有