You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks SQL中查询所有名称相同或相似的表

Databricks表名模糊查询方案说明

1. SQL原生查询方案

Databricks 从Runtime 11.3 LTS版本开始,已原生支持标准INFORMATION_SCHEMA元数据表,仅需环境启用Unity Catalog管理元数据,你提到的查询语句可以直接运行:

select * from information_schema.tables where lower(table_name) like 'org%';

如果需要跨Catalog查询,只需在information_schema前指定对应Catalog名称即可,示例:

select * from main.information_schema.tables where lower(table_name) like 'org%';

2. 低版本/未启用Unity Catalog时的替代方案

2.1 单库查询的SQL折衷实现

可结合SHOW TABLES与临时视图实现过滤:

-- 将当前库所有表信息写入临时视图
CREATE OR REPLACE TEMP VIEW current_db_tables AS SHOW TABLES;
-- 对临时视图执行模糊匹配
SELECT * FROM current_db_tables WHERE lower(tableName) LIKE 'org%';

2.2 全实例跨库查询的脚本实现

如果需要遍历所有库查找匹配表,可以用Notebook的Python脚本实现:

# 获取实例下所有数据库
databases = spark.sql("SHOW DATABASES").collect()
match_tables = []

for db in databases:
    db_name = db["databaseName"]
    # 查询当前库下符合名称规则的表
    matched = spark.sql(f"SHOW TABLES IN {db_name}")\
        .filter("lower(tableName) LIKE 'org%'")\
        .collect()
    for table in matched:
        match_tables.append({
            "database": db_name,
            "table_name": table["tableName"],
            "is_temporary": table["isTemporary"]
        })

# 输出结果
spark.createDataFrame(match_tables).show()

3. 元数据表功能更新说明

INFORMATION_SCHEMA目前已是Databricks Unity Catalog的正式可用功能,不存在“规划中未上线”的情况。官方也推荐使用INFORMATION_SCHEMA替代原有SHOW TABLES类命令,满足复杂元数据过滤、统计类需求。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:06:00