找出每个字段在Google Big Query中占用的空间量

时间:2016-08-22 12:10:33

标签: google-bigquery google-cloud-storage

我想优化Big Query和google存储表的空间。有没有办法轻松找出表中每个字段的累积空间?在我的情况下,这并不简单,因为我有一个复杂的层次结构,有许多重复的记录。

2 个答案:

答案 0 :(得分:2)

您可以在Web UI中执行此操作,只需在查询下方输入(而不是运行)更改为您感兴趣的字段

SELECT <column_name>
FROM YourTable

并查看包含各自大小的验证消息

enter image description here

重要 - 您不需要运行它 - 只需检查bytesProcessed的验证消息,这将是相应列的大小

验证是免费的,并调用所谓的干运行

如果您需要为许多表或包含多列的表格执行此类“列分析” - 您可以使用Tables.get API使用首选语言对其进行编码,以获取table schema;然后循环遍历所有字段并构建相应的SELECT语句,最后Dry Run它(在每个列的循环内)并得到totalBytesProcessed,正如您所知道的那样是相应列的大小

答案 1 :(得分:1)

我不认为这是在任何元数据中暴露的。 但是,您可以根据自己的需要轻松获得良好的近似值。提供了行数,因此对于某些数据类型,您可以直接计算大小: https://cloud.google.com/bigquery/pricing

对于字符串等类型,您可以通过查询来获取平均长度。前1000个字段,并将其用于存储计算。