找出 space 每个字段在 Google Big Query 中占用的数量

Find out the amount of space each field takes in Google Big Query

我想优化我的大查询 space 和 google 存储 table。有没有办法很容易地找出 table 中每个字段获得的累积 space?这对我来说并不简单,因为我有一个包含许多重复记录的复杂层次结构。

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

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

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

SELECT <column_name>
FROM YourTable

并查看由相应大小组成的验证消息

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

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

如果您需要对许多 table 或具有许多列的 table 执行此类“列分析”- 您可以使用 Tables.get API to get table schema ; then loop thru all fields and build respective SELECT statement and finally Dry Run it (within the loop for each column) and get totalBytesProcessed 使用您喜欢的语言对其进行编码,如你已经知道是各自列的大小