想要找到我们整个项目的BigQuery存储大小,我有脚本遍历所有表并总结它们的大小,工作但很慢,是否有一个bq命令我可以轻松地做到这一点?
答案 0 :(得分:5)
有一个名为__TABLES__
和__TABLES_SUMMARY__
您可以运行如下查询:
SELECT sum(size_bytes) FROM <dataset>.__TABLES__
该查询的__TABLES__
部分可能看起来不熟悉。 __TABLES_SUMMARY__
是一个元表,包含有关数据集中表的信息。您可以自己使用此元表。例如,查询SELECT * FROM publicdata:samples.__TABLES_SUMMARY__
将返回有关publicdata:samples
数据集中表格的元数据。您也可以SELECT * FROM publicdata:samples.__TABLES__
可用字段:
__TABLES_SUMMARY__
元表的字段(TABLE_QUERY
查询中都可用)包括:
table_id
:表格的名称。creation_time
:表格创建后的时间,自1970年1月1日UTC以来的毫秒数。这与表中的creation_time
字段相同。type
:无论是视图(2)还是常规表(1)。 TABLE_QUERY()
中的以下字段不,因为它们是__TABLES__
的成员,但不是__TABLES_SUMMARY__
的成员。他们留在这里是为了历史,并部分记录__TABLES__
metatable:
last_modified_time
:自1970年1月1日UTC以来的毫秒,表格已更新(元数据或表格内容)。请注意,如果您使用tabledata.insertAll()
将记录流式传输到您的表格,则可能会过时几分钟。row_count
:表格中的行数。size_bytes
:表格的总大小(以字节为单位)。