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

Databricks SQL Warehouse连接Azure PostgreSQL报错:不支持数据源

解决Databricks SQL Warehouse连接Azure PostgreSQL的数据源不支持问题

核心原因

Databricks SQL Warehouse(尤其是Serverless版本)对跨数据源访问有严格限制:仅支持通过Unity Catalog管理的外部数据源/表进行联邦查询,不允许直接在SQL语句中使用JDBC连接字符串或Spark API读取JDBC数据源。

具体修复步骤

1. 用Unity Catalog配置联邦查询(正确方式)

  • 在Unity Catalog中创建外部数据源:
    • 选择数据源类型为PostgreSQL,配置Azure PostgreSQL的连接信息(主机地址、端口、数据库名称、用户名/密码或Azure AD认证参数)。
    • 确保该数据源的权限已分配给你的SQL Warehouse服务主体或用户。
  • 基于外部数据源创建外部表:
    • 执行类似SQL语句映射Azure PostgreSQL中的表:
      CREATE TABLE my_catalog.my_schema.postgres_table
      USING postgresql
      OPTIONS (
        dbtable '<postgres_schema>.<postgres_table>',
        datasource '<your_unity_catalog_datasource_name>'
      )
      
  • 之后直接查询该外部表即可:
    SELECT * FROM my_catalog.my_schema.postgres_table
    

2. 关于JDBC读取的误区

  • spark.read.jdbc()这类Spark API仅能在交互式集群的Notebook中运行,无法在Databricks SQL Warehouse的查询编辑器中执行。SQL Warehouse是纯SQL执行环境,不支持Spark代码的直接调用,因此会触发数据源不支持的报错。

3. 关于连接验证的澄清

你遇到的「参数错误时的对应提示」大概率是在Notebook环境中测试时出现的,而非SQL Warehouse环境。SQL Warehouse会先拦截不符合数据源规则的查询,不会先去验证数据库连接状态,所以之前的验证逻辑不适用于SQL Warehouse场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:53:17