如何检查分段表格的分区是否正确分区?只检查分区中的文件数等于表的桶数似乎不够。如何检查每个桶中的所有行是否只属于该桶。谢谢。
答案 0 :(得分:0)
我希望以下会有所帮助
DESCRIBE EXTENDED page_view PARTITION (ds='2008-08-08');
我从这里得到它
答案 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水桶正确性的可靠方法,但是如果你对数据的了解很好,你可以使用这个策略验证你的桌子。