【问题标题】:How to find all tables and datasets/databases which have a specific column name in big query如何在大查询中查找具有特定列名的所有表和数据集/数据库
【发布时间】:2021-12-13 18:23:49
【问题描述】:

我想在 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)。

如何将搜索扩展到所有数据集?

【问题讨论】:

标签: sql google-bigquery teradata


【解决方案1】:

我发现解决方案是将数据集名称替换为 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%' 

【讨论】:

    猜你喜欢
    • 2015-04-03
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多