Apache Hive--DDL--创建表--分桶表总结&分桶表好处| 学习笔记

简介: 快速学习 Apache Hive--DDL--创建表--分桶表总结&分桶表好处

开发者学堂课程【大数据 Hive 教程精讲Apache Hive--DDL--创建表--分桶表总结&分桶表好处】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/90/detail/1372


Apache Hive--DDL--创建表--分桶表总结&分桶表好处

 

CLUSTERED BY INTO num_buckets BUCKETS

对于每一个表(table)或者分,Hive 可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。

Hive也是针对某一列进行桶的组织。Hive 采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。

把表(或者分区)组织成桶(Bucket)有两个理由:

(1) 、获得更高的查询处理效率。桶为表加上了额外的结构,Hive 在处理有些查询时能利用这个结构。

具体而言,连接两个在(包含连接列的)相同列上划分了桶的表,可以使用 Map 端连接(Map-side join)高效的实现。比如 JOIN 操作。对于 JOIN 操作两个表有一个相同的列,如果对这两个表都进行了桶操作。那么将保存相同列值的桶进行JOIN操作就可以,可以大大较少 JOIN 的数据量。

(2)使取样(sampling)更高效。在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便。

 

1hive 建立一张表跟已经存在的结构化的数据文件产生映射关系

映射成功之后,就可以通过写 sql 来分析这结构化的数据避免了写 mr 程序的麻烦

2、数据库---/user/hive/warehouse下的一个文件夹对应

---》数据库文件夹下面的子文件夹/user/hive/warehouse/itcast

.db/t_t1

表的数据位置目前不能随便存放一定要在指定的数据库表的文件夹下面

建立表的时候可能还需要指定分隔符否则有可能映射不成功

3、建表的时候一定要根据结构化数据文件的分隔符类型指定分隔符

建表的字段个数和字段类型要跟结构化数据中的个数类型一致

分隔符一般使用内置的来指定 ROW FORMAT DELIMITED 分割字段﹐还是分割集合等等

4、分区表字段不能够在表中已经存在

分区字段是一个虚拟的字段不存放任何数据

分区字段的数据来自于装载分区表数据的时候指定的

分区表的字段﹐在hdfs上的效果就是在建立表的文件夹下面又创建了子文件

这样的目的把数据的划分更加细致减少了查询时候全表扫描的成本只需要按照指定的分区扫描数据并显示结果即可

5、分桶表创建之前需要开启分桶功能

分桶表(分簇表)创建的时候分桶字段必须是表中已经存储的字段也就是说你要按照表中那个字段进行分开

针对分桶表的数据导入: load data方式不能够导成分桶表的数据没有

 

分桶表的数据采用 insert+select 插入的数据来自于查询结果(查询时候执行了mr程序)对应 mr 当中的 partitioner

默认分桶规则按照你指定的分桶字段 clustered by 哈希值&分桶的个数 set mapreduce.job.reduces=?

分桶表也是把表所映射的结构话数据文件分成更细致的部分︰但是更多的是用在join查询提高效率之上只需要把 iion 的字段在各自表当中讲行分桶操作即可.

6.png

7.png

相关文章
|
2月前
|
SQL 分布式计算 Hadoop
Apache Hive 帮助文档
Apache Hive 帮助文档
110 9
|
7月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
|
7月前
|
消息中间件 存储 Apache
Apache Paimon 表模式最佳实践
Apache Paimon 表模式最佳实践
2111 57
|
7月前
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
112 0
|
7月前
|
存储 Apache 索引
一文彻底弄懂Apache Hudi不同表类型
一文彻底弄懂Apache Hudi不同表类型
173 1
|
7月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记
|
7月前
|
SQL 分布式计算 Apache
Apache Hudi重磅RFC解读之存量表高效迁移机制
Apache Hudi重磅RFC解读之存量表高效迁移机制
74 0
|
7月前
|
SQL 分布式计算 Java
Apache Hudi与Hive集成手册
Apache Hudi与Hive集成手册
406 0
|
7月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
220 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
7月前
|
SQL 分布式计算 MaxCompute
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
105 3

推荐镜像

更多