有没有办法在大查询中获取数据集列表以及表和视图?



我有一个很长的数据集列表,每个数据集中都有许多表和视图。我想要所有数据集的名称列表,每个数据集中包含的表和视图。我还想知道每个表或视图名称是表还是视图?

最好将结果作为数据帧/csv获取,我可以将其放回Big Query中。

得到这样的东西:

数据集名称 |表名称/视图名称 |表或视图

足球 | german_team |桌子

足球 | british_team |视图

实现这一点的方法是什么?

由于您使用python查询BigQuery,因此可以通过2个步骤实现目标:

  1. 查询information_schema列出所有数据集(文档(
SELECT
schema_name
FROM
INFORMATION_SCHEMA.SCHEMATA
  1. 对于每个数据集,表单查询如下(文档(:
SELECT
table_schema AS dataset_name,
table_name,
table_type   -- "view" or "table"
FROM
<dataset_name>.INFORMATION_SCHEMA.TABLES

这是我最终使用的,只是为了添加第三个选项(虽然类似于选项 2(。

SELECT project_id, dataset_id, table_id,
DATE(TIMESTAMP_MILLIS(creation_time)) AS creation_date,
DATE(TIMESTAMP_MILLIS(last_modified_time)) AS last_modified_date,
row_count,
size_bytes,
CASE
WHEN type = 1 THEN 'table'
WHEN type = 2 THEN 'view'
WHEN type = 3 THEN 'external'
ELSE '?'
END AS type,
TIMESTAMP_MILLIS(creation_time) AS creation_time,
TIMESTAMP_MILLIS(last_modified_time) AS last_modified_time
FROM `<project_id>.<dataset_name>.__TABLES__`

最新更新