如何查询 BigQuery 视图和表的依赖关系?

Posted

技术标签:

【中文标题】如何查询 BigQuery 视图和表的依赖关系?【英文标题】:How to query BigQuery view and table dependencies? 【发布时间】:2020-10-07 05:53:26 【问题描述】:

在 BigQuery 上构建多个 SQL 视图作为报告后,我发现自己需要识别视图和表的依赖关系。

如何查询:“列出所有依赖于视图/表T的视图?”

【问题讨论】:

【参考方案1】:

您可以运行以下查询来列出所有视图,这可以在单个数据集的基础上完成。当然,如果您有一组数据集,您可以为每个数据集创建一个 UNION ALL 查询来组合结果。

SELECT *
FROM dataset_name.INFORMATION_SCHEMA.VIEWS
WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.table_name')

替换上述查询中的dataset_nametable_name

架构表中的view_definition 包含创建视图的实际 SQL 代码。因此,我们实际上只是在该字段中搜索表名,如果您正在寻找视图中正在使用的视图,同样会起作用。

【讨论】:

【参考方案2】:

发现 Query Stash 的回答很有帮助,但有一点对我有帮助:如果您不想单独搜索每个数据集,可以通过将 dataset_name 替换为区域来搜索项目中的所有内容。

SELECT *
FROM region-region_name.INFORMATION_SCHEMA.VIEWS
WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.table_name')

【讨论】:

以上是关于如何查询 BigQuery 视图和表的依赖关系?的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery如何在List操作期间过滤表和视图

BigQuery:使用标准 SQL 查询多个数据集和表

在 bigquery 上查询项目中的所有数据集和表?

视图和表的区别和联系

如何使用 3 个表在 SQL 查询中获得完整结果,其中 1 个表保持 2 个表的关系?

TSQL和SQL区别?