如何在大查询中查找具有特定列名的所有表和 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%'