[英]How to find all tables and datasets/databases which have a specific column name in big query
我想在 Big Query 的所有数据集/数据库的所有表中找到特定的列名。
在 Teradata 中,可以通过运行以下命令来完成:
SELECT
DatabaseName,
TableName,
ColumnName
FROM
DBC.Columns
WHERE
ColumnName LIKE '%sender_country%'
AND DatabaseName NOT LIKE '%test%'
AND tablename LIKE '%sender%'
同样的事情如何在 Big Query 中完成?
我知道我们可以通过运行以下命令在特定数据集中查找不同的列:
SELECT
ddl
FROM
project-name.my_database_name.INFORMATION_SCHEMA.TABLES
WHERE
table_name like '%sender%'
AND ddl LIKE '%sender_country%'
但上述查询将搜索限制为仅一个数据集/数据库(在本例中为my_database_name
)。
如何在所有数据集上扩展搜索?
我发现解决方案是用region-us
替换数据集名称。
以下适用于跨表和数据集查找
SELECT
ddl
FROM
`project-name`.`region-us`.INFORMATION_SCHEMA.TABLES
WHERE
table_name like '%sender%'
AND ddl LIKE '%sender_country%'
以下适用于视图:
SELECT
ddl
FROM
`project-name`.`region-us`.INFORMATION_SCHEMA.VIEWS
WHERE
table_name like '%sender%'
AND ddl LIKE '%sender_country%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.