hive数据库分桶表格的基本操作 分桶表 对比前面的分区表,分桶表是对数据进行更加细粒度的划分。分桶表将整个数据内容按照某列属性值的哈希值进行区分,使用该哈希值除以桶的个数得到取余数,余数决定了该条记录会被分在哪个桶中。余数相同的记录会分在一个桶里。需要注意的是,在物理结构上,一个桶对应一个文件,而分区表只是一个目录,至于目录下有多少数据是不确定的。 应用场景:数据抽样 在处理大规模数据集时,尤其载数据挖掘的阶段,可以用一份数据验证一下,代码是否可以运行成功,进行局部测试,也可以抽样进行一些代表性统计分析。 分桶抽样语句:select * from 分桶表 tablesample (bucket x out of y [on 列名]) 语句中的y,必须是表格分桶数量的倍数或者因子。 2.map-side join 可以获得更高的查询处理效率。桶为表加上了额外的结构,(利用原有字段进行分桶),Hive 在处理有些查询时能利用这个结构。具体而言,连接两个在(包含连接列的)相同列上划分了桶的表,可以使用 Map 端连接 (Map-side join)高效的实现。比如join操作。对于join操作两个表有一个相同列,如果对这两个表都进行了桶操作,那么保存相同列值的桶进行join操作就可以,大大减少了join的数据量(只有当两张表分桶的数量呈倍数关系时才有效)。 创建分桶表的基本语法: create external table 表名 ( 列名 数据类型 ) clustered by (分桶字段) into x buckets row format delimited fields terminated by ‘列分隔符’ collection items terminated by ‘素分隔符’ map keys terminated by ‘键值对分隔符’; 我们来看看分桶表的创建过程和添加数据分桶的方法: 1.使用 load data 的方式进行分桶表格数据的导入: 先在hive里面准备一个分桶表格:


2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/60443.html
