2017-02-15 46 views
2

我想计算表格大小,而不需要在HIVE中查询。如何在没有查询的情况下估算HIVE中的表格大小?

我该如何在HIVE中做到这一点? (我没有任何权限,而在数据库中选择,所以我不能用表演性质等)

(例如)

  • 数据行:100

  • COLUMNNAME(类型):用户名(字符串),userNumber(INT),用户代码(BIGINT),userAge(INT)

    • 的userName的最大长度:36

我计算了这样的表大小。

  • 我觉得这样的字符串是8个字节,int是4字节,BIGINT是8个字节 (我不认为有关记录头大小和列标题大小)

    • 100 *((8 * 36)+ 4 + 8 + 4)
    • 总计TOTALSIZE:30,400字节

你能给我一些建议吗?

回答

2
hdfs dfs -du -s {table locatoin} 

(可选-h)

例如

hdfs dfs -du -s /user/hive/warehouse/mytable 
110265307244 /user/hive/warehouse/mytable 

hdfs dfs -du -s -h /user/hive/warehouse/mytable 
102.7 G /user/hive/warehouse/mytable 
+0

谢谢你回答这个问题。但我没有任何关于HIVE的访问许可。所以我必须估计我的表格大小而不用查询。 – Bethlee

+1

你需要访问HDFS –

+0

我真的想获得许可,但我不能。 – Bethlee

1

如果你有蜂巢或HDFS用不上这是不是真的有可能。

Hive可能使用不同的压缩机制,也可能影响HDFS上原始数据的大小。如果它以纯文本形式存储,您可能会使用它,但我不会说这是做到这一点的最佳方式。

+0

谢谢你回答这个问题。 – Bethlee

相关问题