【问题标题】:Looking for a way to list the size of all tables in BigQuery Google Cloud Platform [duplicate]寻找一种方法来列出 BigQuery Google Cloud Platform 中所有表的大小 [重复]
【发布时间】:2019-06-18 21:32:23
【问题描述】:

我正在处理 GCP 中的一堆表格,我希望找到一种方法来列出所有表格的大小(有很多)。我试过了。

https://cloud.google.com/storage/docs/gsutil/commands/du

这显示了一个对象的大小,这对于非常少量的表来说很好。我希望找到一种遍历所有对象的方法,并且我在这里处理了很多表。我很想找到一个可以让 Python 完成这项工作的解决方案,但如果它只是一个纯 SQL 解决方案,那也没关系。从'information_schema.tables' 获取元数据的东西会很棒。如果您已经完成了这个练习,请分享一些示例代码。谢谢!

【问题讨论】:

  • 哦,好的,我知道它是如何工作的。您从 BQ 生成一个 .json 文件,将其保存在本地,然后像这样引用它:client = bigquery.Client.from_service_account_json('C:/your_path_here.123456789.json')

标签: python python-3.x google-cloud-platform google-bigquery google-cloud-datastore


【解决方案1】:

此查询可以提取实际表的元数据。 如果我没记错的话,我认为这不适用于视图,仅适用于物理表。这也限制了您一次只能查询一个数据集。

#standardSQL
SELECT
  project_id,
  dataset_id,
  table_id,
  DATE_FROM_UNIX_DATE(SAFE_CAST(CEIL(creation_time/60/60/24/1000) AS INT64)) created_date,
  DATE_FROM_UNIX_DATE(SAFE_CAST(CEIL(last_modified_time/60/60/24/1000) AS INT64)) modified_date,
  TRUNC(row_count/1000000,2) row_count_in_millions,
  TRUNC(size_bytes/1073741824,2) size_gb,
  type
FROM dataset.__TABLES__

【讨论】:

  • 不幸的是,这只适用于一个数据集。如果要列出所有数据集中的所有表怎么办? ;-)
  • 这是我在回答中提到的一个问题。我不知道纯粹在浏览器 SQL 控制台中查询所有数据集的方法,但您可以使用 google-big-query python 包编写 for 循环。
猜你喜欢
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多