找出每个字段在 Google Big Query 中占用的空间量
Posted
技术标签:
【中文标题】找出每个字段在 Google Big Query 中占用的空间量【英文标题】:Find out the amount of space each field takes in Google Big Query 【发布时间】:2016-08-22 12:10:33 【问题描述】:我想优化我的 Big Query 和 google 存储表的空间。有没有办法轻松找出表中每个字段获得的累积空间?就我而言,这并不简单,因为我有一个复杂的层次结构,有很多重复的记录。
【问题讨论】:
查看 bqdu.info 以获得一些想法 【参考方案1】:您可以在 Web UI 中执行此操作,只需在查询下方键入(而不是运行)更改为您感兴趣的字段
SELECT <column_name>
FROM YourTable
并查看包含相应大小的验证消息
重要 - 您不需要运行它 - 只需检查 bytesProcessed 的验证消息,这将是相应列的大小
验证是免费的,并调用所谓的试运行
如果您需要对许多表或具有许多列的表进行此类“列分析” - 您可以使用您喜欢的语言使用 Tables.get API 进行编码以获得 table schema ;然后循环遍历所有字段并构建相应的 SELECT 语句,最后是 Dry Run 它(在每一列的循环内)并得到 totalBytesProcessed ,正如您已经知道的那样,它是相应列的大小
【讨论】:
【参考方案2】:我认为这不会暴露在任何元数据中。 但是,您可以根据需要轻松获得良好的近似值。提供了行数,所以对于某些数据类型,可以直接计算大小: https://cloud.google.com/bigquery/pricing
对于字符串等类型,您可以通过查询例如获取平均长度。前 1000 个字段,并将其用于存储计算。
【讨论】:
以上是关于找出每个字段在 Google Big Query 中占用的空间量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 google Big Query 上添加页面浏览量维度?