HIVE概念
1) 数据仓库的基本概念:
数据库: 存储数据的仓库 一般都是面向于业务系统 主要用于对接业务系统 用于捕获数据 一般要求交互式极强 一般存储业务数据 都要经常进行数据CURD
数据仓库: 存储数据的仓库 一般面向于主题(面向于分析) 主要是用于数据分析 一般对交互式没有太大要求 一般是用于存储过去以及既定发生过数据, 一般进行数据的查询
数据仓库主要目的, 是对过去的数据进行分析, 从而对未来发展提供决策支持
2) 数据仓库的特征:
1.主题性 : 面向于分析的主题, 分析的需要是什么, 主题就是什么
2.集成性 : 数据可以来源于各个数据源
3.稳定性(非易失性) : 数据一旦进入数据仓库中, 一般就不允许在进行修改了, 存储的过去 既定发生过的数据
4.时变性 : 随着时间的推移, 原有数据以及无法满足对未来分析, 需要追加新的产生的数据, 以及原定分析方案, 也无法满足分析要求
3) 数据库 和 数据仓库的区别:
数据库(OLTP): 联机事务处理
数据仓库(OLAP):联机分析处理
区别如下:
数据库是面向事务(业务系统)的设计,数据仓库是面向主题设计的。
数据库一般存储业务数据,数据仓库存储的一般是历史数据
数据库设计是尽量避免冗余,数据仓库在设计是有意引入冗余
数据库是为捕获数据而设计,数据仓库是为分析数据而设计。
注意:
数据仓库的出现, 绝对不是为了替代数据库
4) hive 对数据库中表的操作
创建表的语法:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...)
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
相关的语法说明:
EXTERNAL(external) : 如果在创建表的时候, 添加了此关键词, 表示构建一张外部表, 如果不添加构建就是一张内部表(管理表)
PARTITIONED BY (partitioned by): 如果添加了此关键词, 表示当前表是一张分区表
CLUSTERED BY (clustered by) : 一旦添加了此关键词 表示当前是这一张分桶表
SORTED BY(sorted by) : 是否对分桶表中某个字段进行排序操作
into N buckets(into N buckets) : 表示 分多少个桶
ROW FORMAT(row format) : 用于定义表中数据的字段与字段之间分隔符号
STORED AS(stored as) : 数据存储格式 , 常用的格式: textfile(普通文本) ORC sequencefile parquet
LOCATION(location) : 指定数据从哪个目录进行加载, 表对哪个位置数据进行映射