hive分桶表概念
分区表应用
分桶表是将大表化成小表。
大表和小表之间的连接:是通过两个表相同的列使用map端连接。
将桶中的数据按某列来排序会 提高查询的效率。
分桶适用于取样和join操作,且提高了他们的查询效率。
数据导入注意事项
但是数据的正确导入表中要用户自己来保证。因为talbe中信息只是元数据,不影响实际填充表的命令。
分区分桶与关系型数据库的分库分表不同。
Hive中的分桶,实际就是指的MapReduce中的分区。根据Reduce的数量,分成不同个数的文件。
分桶表是如何导入数据的
分桶就是按照列值通过hash计算后进行了数据分表存储。分桶的列值都相同的话数据只导入到第一个桶中。分桶列的值不同才会导入到所有的桶中。
分桶表的join操作
实际上是进行相同列值经过hash计算后,根据列值进行了数据的分桶存储。
如果两个分桶表是按照相同列值分桶的,那么进行join的时候会只查询该列值所在的桶,也就是两个分桶表中桶和桶(小表和小表)的join 。
閱讀更多 熱忱先生 的文章