繁体   English   中英

如何在大查询中查找具有特定列名的所有表和数据集/数据库

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM