蜂巢:分级表健全检查

时间:2014-01-06 04:18:47

标签: hadoop hive

如何检查分段表格的分区是否正确分区?只检查分区中的文件数等于表的桶数似乎不够。如何检查每个桶中的所有行是否只属于该桶。谢谢。

3 个答案:

答案 0 :(得分:0)

我希望以下会有所帮助

DESCRIBE EXTENDED page_view PARTITION (ds='2008-08-08');

我从这里得到它

https://cwiki.apache.org/confluence/display/Hive/Tutorial

答案 1 :(得分:0)

我不确定它是否会起作用,但我认为如果表格是a列中的cluseretd,b是n个桶,那么hash(a,b)%n就是桶号(你可以在hdfs的文件名中看到它)。

如果您不确定,可以随时插入oevrwrite选择自己的分区并将hive.force.bucketing设置为true。

答案 2 :(得分:0)

如果存储桶在colA上进行了分区,则可以验证每个存储桶的计数。 假设我们在colA中存储了多年,因此每个存储桶只有特定年份的行。我们可以通过运行验证这一点,看看所有存储桶是否只有一年的行。

SELECT count(*) FROM bucketed_table where year=X;

我们也可以通过使用where子句运行查询来验证计数。 01JAN2016 06JAN2016 15FEB2016 01JAN2016 02JAN2016

table_1.Where(y => (y.OrderNo == "1234"));
table_2.Where(y => (y.OrderNo == "1234")).Select(y => y.Version).Distinct();

这再次不是检查你的hvie水桶正确性的可靠方法,但是如果你对数据的了解很好,你可以使用这个策略验证你的桌子。

相关问题