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

如何在Databricks中无需JDBC直接连接AWS RDS并查询数据?

问题描述

我尝试在Databricks中以AWS RDS实例作为源数据库执行查询,目前已在Databricks Python Notebook中通过JDBC实现该操作,代码如下:

# 先配置JDBC URL并获取用户名/密码,出于安全考虑这部分内容不便展示
query = 'SELECT * FROM transactions'

spark_df = spark.read.format('jdbc')\
    .option("url", jdbc_url) \
    .option("query", query) \
    .option("user", USER) \
    .option("password", PASSWORD)\
    .load()

我想知道是否无需使用JDBC代码就能直接查询该RDS数据库?比如像Mode Analytics、Redash、Superset这类平台,只需在管理界面配置主机/端口/用户名/密码等连接信息,就能在SQL编辑器中编写纯SQL直接查询RDS,无需为每次查询配置JDBC连接,体验就像在RDS实例上使用PGAdmin一样。

因此我想了解Databricks是否支持类似功能,即提供SQL编辑器直接选择RDS表进行查询。我知道Databricks有SQL数据仓库功能,但了解到它需要创建新实例并迁移数据,请问是否可以直接指向现有RDS实例,而非在Databricks UI中创建仓库并迁移数据?目前我查询到的资料都指向在Databricks创建新仓库,没有找到将现有RDS添加为仓库的相关文档。

解答

1. Databricks支持直接用SQL编辑器查询RDS的方式

Databricks可以通过配置外部数据连接实现你要的功能,无需每次编写JDBC代码:

  • 进入Databricks工作区,打开「数据」页面,选择「添加数据」→「连接到数据源」
  • 选择对应RDS的数据库类型(如PostgreSQL、MySQL),填入RDS的主机地址、端口、数据库名、用户名、密码等信息,保存连接
  • 配置完成后,在Databricks SQL编辑器中,可直接选择已配置的外部连接,编写纯SQL查询RDS中的表,体验和你提到的BI工具一致

2. 关于Databricks SQL仓库的澄清

Databricks SQL仓库是用来运行SQL查询的计算资源,不是存储数据的仓库,因此不需要迁移RDS数据。你只需创建SQL仓库(即计算实例),再通过外部数据连接关联RDS,就能让SQL仓库直接查询RDS中的数据,完全不用把数据导入Databricks。之前查到的「创建仓库」是指创建计算资源,而非存储数据的仓库——你可以用这个计算仓库直接访问外部RDS数据,无需迁移。

3. 额外优化建议

  • 可以将RDS的用户名/密码存储在Databricks的「密钥保管库(Secrets)」中,避免明文配置,提升安全性
  • 若需频繁查询RDS,可创建外部表,将RDS的表映射到Databricks的元数据中,之后在SQL编辑器里直接像本地表一样查询,无需每次指定连接

内容的提问来源于stack exchange,提问作者Eugenio.Gastelum96

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:33:15