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

Google bigquery 如何查询BigQuery视图和表依赖关系?,google-bigquery,Google Bigquery,在BigQuery上构建了大量SQL视图作为报告之后,我发现自己需要识别视图和表的依赖关系 如何查询:列出依赖于视图/表T的所有视图?您可以运行以下查询以列出所有视图,这可以在单个数据集的基础上完成。当然,如果您有一组数据集,您可以为每个数据集创建一个UNION ALL查询来组合结果 SELECT * FROM dataset_name.INFORMATION_SCHEMA.VIEWS WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.ta

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


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

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

SELECT *
FROM dataset_name.INFORMATION_SCHEMA.VIEWS
WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.table_name')
替换上述查询中的数据集名称和表名称


模式表中的视图定义包含创建视图的实际SQL代码。因此,我们基本上只是在该字段中搜索表名,如果您正在查找视图中使用的视图,也可以这样做。

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

SELECT *
FROM dataset_name.INFORMATION_SCHEMA.VIEWS
WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.table_name')
替换上述查询中的数据集名称和表名称


模式表中的视图定义包含创建视图的实际SQL代码。因此,我们基本上只是在该字段中搜索表名,如果您正在查找视图中使用的视图,也可以这样做。

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

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

Find Query Stash的答案很有帮助,但有一点补充对我有帮助:如果不想单独搜索每个数据集,可以通过将数据集名称替换为区域来搜索项目中的所有内容

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