Hive_基础
来源:互联网 发布:淘宝代运营tmyunying 编辑:程序博客网 时间:2024/06/05 09:53
Hive是什么
Hive是一个构建在Hadoop上的数据仓库框架,提供了一系列用于ETL的工具
Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行
Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据。
设计目的:
让精通SQL(但Java编程相对较弱)的分析师能够以类SQL的方式查询存放在HDFS的大规模数据集
Hive相当于hadoop的客户端工具,部署时不一定放在集群节点中Hive基本架构
Hive数据类型
① 基本数据类型
tinyint/smallint/int/bigintfloat/double/decimalbinarybooleanstring/char/varchardate/timestamp
② 复杂数据类型
Array/Map/Struct/named struct/union
STRUCT:such as {val1, val2, val3, …}.By default, STRUCT field names will be col1,col2, and so on. You can access the value using structs_name.column_name, for example,fruit.col1=1.
NAMED STRUCT: such as (name1, val1, name2,val2, and so on). You can access the value using structs_name.column_name, for example, fruit.apple=”gala”.
UNION:{2:[“apple”,”orange”]}
Hive数据存储
① Hive的数据存储基于Hadoop HDFS
② Hive没有专门的数据存储格式
③存储结构主要包括:数据库、文件、表、视图
④ Hive默认可以直接加载文本文件(TextFile),还支持sequence file
⑤ 创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据
Hive数据模型
① 管理表(内部表)
所有的 Table 数据(不包括 External Table)都保存在warehouse这个目录中。删除表时,元数据与数据都会被删除② 外部表
包含External 的表,删除外部表只删除metastore的元数据,不删除hdfs中的表数据。可以创建 Partition,它和 内部表 在元数据的组织上是相同的,而实际数据的存储则有较大的差异。③ 分区表
通过分类把不同类型的数据放到不同的目录下。分类的标准就是分区字段,可以一个,也可以多个。分区表的意义在于优化查询。查询时尽量利用分区字段。如果不使用分区字段,就会全部扫描。④ 桶表
对数据进行哈希取值,然后放到不同文件中存储。数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。物理上,每个桶就是表(或分区)目录里的一个文件,一个作业产生的桶(输出文件)和reduce任务个数相同。⑤ 视图
使用视图可以降低查询的复杂度Hive与普通关系型数据库
- Hive_基础
- hive_优化
- Hive_命令
- hive_查询分组排序
- Hive_应用设计
- Hive_表操作
- Hive_配置参数
- hive_调优笔记一EXPLAIN解析
- #hive_正则表达式#JAVA的正则表达式案例详解
- hive_正则表达式|JAVA的正则表达式案例详解<转>
- #hive_正则表达式#JAVA的正则表达式案例详解
- #hive_正则表达式#JAVA的正则表达式案例详解
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 第一次尝试用python来编程实现“helloworld”,顺利成功,过程中遇到几个小问题
- JVM必知必会(六)【jvm常用工具-visualvm】
- CentOS6下源码编译的php7安装redis扩展
- 算法练习(25):Maximum Length of Repeated Subarray
- jquery:将table表变为可编辑状态,记录修改,新增或者删除的行。传入后台controller中
- Hive_基础
- 【剑指offer】数组中次数超过一半的数
- 牛顿法
- 数据结构--循环列队
- linux vi/vim
- 京东金融x银联晒“打黑成绩单”:一年内避免用户损失上亿元,未来共筑AI风控
- js取整、取余的方法
- 数据结构实验: 树形结构及其应用(C语言)
- node.js中的fs模块