我如何找到谷歌bigquery数据集大小,而不是表大小

sad*_*mac 12 google-bigquery

我可以在BigQuery中看到表格的元数据细节,但是对于项目估计,我希望看到整个数据集的元数据.

SELECT * From 'dataset'._TABLES_SUMMARY_WHERE size_bytes>0 isn't working for me.  
Run Code Online (Sandbox Code Playgroud)

Mik*_*ant 16

SELECT SUM(size_bytes) AS bytes 
FROM [yourdataset.__TABLES__]
Run Code Online (Sandbox Code Playgroud)

  • 它对我有用_没有_方括号,但不是_有_ (3认同)
  • @Russ960 - 答案是在 2015 年给出的,适用于旧版 SQL!那时,BigQuery 还不支持标准 SQL。现在有了!!!因此,如果您使用标准 SQL,请使用反引号而不是方括号! (2认同)

Luí*_*hin 12

以前的答案是正确的,但我想扩展答案。

在 BigQuery StandardSQL 上,您可以按数据集查询大小,如下所示:

SELECT
  dataset_id,
  count(*) AS tables,
  SUM(row_count) AS total_rows,
  SUM(size_bytes) AS size_bytes
FROM ( 
  SELECT * FROM `dataset1.__TABLES__` UNION ALL
  SELECT * FROM `dataset2.__TABLES__` UNION ALL
  ...
)
GROUP BY 1
ORDER BY size_bytes DESC
Run Code Online (Sandbox Code Playgroud)

不幸的是,我还没有找到列出项目所有数据集的所有表的方法。相反,我使用bq命令行来生成所有SELECT ... UNION ALL语句:

bq ls --format=json | jq -r '.[] | select(.location == "EU") | .id' | sed 's/:/./' | sed 's/\(.*\)/SELECT * FROM `\1.__TABLES__` UNION ALL/'
Run Code Online (Sandbox Code Playgroud)


小智 5

另一种方便的方法是使用监控功能来可视化数据集的大小。

监控配置示例