hive表分桶设计

作者: OverLight | 来源:发表于2019-10-25 14:57 被阅读0次

分桶字段选择

进行分桶之前需要对表的数据分布情况进行大致的分析,一般遵循的原则为,选择离散度高的字段进行分桶。可以通过收集的数据特征,如Distinct Value来做参考,值越大的可以优先作为考虑对象。分桶字段选择时,注意尽量使记录分布均匀,以避免数据倾斜。

建议分桶字段:关系型数据库中的主键、邮件ID、客户ID、UUID等。

分桶个数选择

一般可以通过数据量维度计算分桶个数。

根据数据量计算分桶数:

分桶数=文本格式大小(M)/500M

另外,在考虑分桶个数的时候,同时要考虑是否已经分过区。对于已经分过区的表,要按照单区的大小进行桶数的估计,而不是依照原始表。

比如存在数据的表的分区每个分区约60000万条记录,TXT格式8000MB,orc表大概有5倍压缩比,计算方式大概思路:

分桶数=MAX(60000万/1000万, 8000M/500M) = 60

为了使数据分布更加均匀,我们一般建议选择质数作为分桶数。所以该表的最佳分桶数为59或61。


常用的分桶字段多为原数据库的主健,或者如身份证号码,手机号等字段。如果不能 确定分桶字段,可以在分桶操作之前,建议用下面的语句查看每列的字段值数量分布情 况。尽量选择分布最离散的一列为分桶字段。

/*其中 column_name是holodesk_table_name的一列任意字段*/
SELECT column_name, COUNT( * ) FROM holodesk_table_name GROUP BY column_name ORDER BY COUNT; 

相关文章

  • Hive 1.2.1 分区和分捅

    1. 借鉴 Hive学习笔记——Hive中的分桶Hive分区和分桶(0925)HIVE表索引,分区和分桶的区别 2...

  • hive表分桶设计

    分桶字段选择 进行分桶之前需要对表的数据分布情况进行大致的分析,一般遵循的原则为,选择离散度高的字段进行分桶。可以...

  • 案例详解__HIVE中内部表、外部表、分区表和分桶表

    目录一、Hive建表语法二、内部表外部表三、分区表四、分桶表 Hive在建表时可指定内部表、外部表、分区表和分桶表...

  • Hive分桶表

    测试数据 创建分桶表 设置变量,设置分桶为true, 设置reduce数量是分桶的数量个数 加载数据 检查刚刚加载...

  • Hive 分桶

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

  • HIVE 设计优化3 分桶表

    分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区。对于一张表或者分区,Hive ...

  • Hive分桶

    Hive分桶 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储。 对于hive中每一个表、分区都可以进一...

  • 【Hive】优化

    分区表的设计和优化 普通表结构问题 使用分区表可以优化上述查询问题 分桶表的设计和优化 Join问题 分桶表设计 ...

  • hive桶表

    hive桶表 1 桶表的概念 在hive中,数据库、表、分区都是对应到hdfs上的路径,当往表中上传数据的时候,数...

  • FAILED: SemanticException Please

    导入本地文件数据到hive中创建的分桶表时报错: 解决办法: 导入一个新建的中间表,字段和分桶表一致,然后导入数据...

网友评论

    本文标题:hive表分桶设计

    本文链接:https://www.haomeiwen.com/subject/keisvctx.html