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

如何使用C#通过REST API获取Azure Databricks的Catalog列表?

问题解答

核心限制说明

  • 未启用Unity Catalog(UC)的情况下,Databricks的Catalog体系和UC启用后完全不同:SHOW CATALOGS在非UC环境下仅返回spark_catalog,因为此时hive_metastore是spark_catalog下的默认命名空间,而非独立Catalog;samples是Databricks预加载的示例数据集,不属于标准Catalog查询的返回范畴。
  • 即便升级到高级账户但未启用UC,依然无法通过SQL语句直接获取所谓的"多Catalog列表"——UC是高级计划专属的核心功能,没有UC的话,原生Spark仅支持spark_catalog这一个顶层Catalog。

通过REST API获取目标资产的可行方案

  • 获取hive_metastore相关数据:它本质是spark_catalog下的数据库集合,调用REST API的/api/2.0/sql/statements接口,执行SQL语句 SHOW DATABASES IN spark_catalog,返回结果就是hive_metastore中的所有数据库。
  • 获取samples数据集信息:
    • 方式一:调用Workspace API的/api/2.0/workspace/list接口,遍历路径/databricks-datasets,获取所有示例数据集的结构信息。
    • 方式二:通过/api/2.0/sql/statements接口执行SQL SHOW DATABASES LIKE 'samples.*',直接列出samples下的所有数据库。
  • 彻底解决Catalog列表问题的唯一途径:启用Unity Catalog。启用UC后,hive_metastore会成为独立Catalog,samples也会被纳入UC的Catalog体系,此时SHOW CATALOGS就能返回完整的Catalog列表,同时information_schema也可正常使用。

额外注意事项

调用REST API时需配置正确的认证(如Azure AD令牌或Databricks个人访问令牌),确保账户拥有对应资源的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:42:17