如何在大查询中查找具有特定列名的所有表和 datasets/databases
How to find all tables and datasets/databases which have a specific column name in big query
我想在 Big Query 中的所有 datasets/databases 的所有表中查找特定的列名。
在 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%'
但是上面的查询将搜索限制为只有一个dataset/database(在这个例子中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%'
我想在 Big Query 中的所有 datasets/databases 的所有表中查找特定的列名。
在 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%'
但是上面的查询将搜索限制为只有一个dataset/database(在这个例子中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%'