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

Azure Databricks连接Oracle数据库的实操步骤及问题解决方案问询

Azure Databricks 对接 Oracle Database 实操解决方案

1. 所需Jar包及官方获取渠道

  • 适配Oracle 12c及以上版本、Azure Databricks所有主流运行时版本的驱动为ojdbc8.jar,如果对接的是Oracle 11g及更低版本,可选择ojdbc6.jar
  • 注意:仅上传ojdbc8.jar大概率会出现连接异常,必须配套上传同版本的orai18n.jar处理多字节字符集兼容问题,这是最常见的连接失败诱因
  • 官方获取渠道:在Oracle官方网站的数据库软件下载分区,找到对应版本的JDBC驱动下载页即可获取,注册Oracle账号即可免费下载,无需额外付费

2. 完整连接操作步骤及示例代码

2.1 集群配置步骤

  • 进入目标Databricks集群的「库」管理页面,上传下载好的ojdbc8.jar和orai18n.jar两个文件
  • 重启集群,等待两个Jar包的状态更新为「已安装」后再进行后续操作

2.2 读取数据示例代码(Python)

# 填写Oracle连接参数
jdbc_host = "Oracle数据库主机地址"
jdbc_port = "1521" # 按需修改为实际端口
jdbc_service_name = "Oracle服务名"
jdbc_username = "数据库账号"
jdbc_password = "数据库密码"
target_table = "目标表名,格式为SCHEMA_NAME.TABLE_NAME"

# 构造JDBC连接URL,使用服务名的写法
jdbc_url = f"jdbc:oracle:thin:@{jdbc_host}:{jdbc_port}/{jdbc_service_name}"
# 若使用SID而非服务名,替换为下面的写法
# jdbc_url = f"jdbc:oracle:thin:@{jdbc_host}:{jdbc_port}:{jdbc_sid}"

# 读取Oracle表数据
df = spark.read.format("jdbc") \
  .option("url", jdbc_url) \
  .option("dbtable", target_table) \
  .option("user", jdbc_username) \
  .option("password", jdbc_password) \
  .option("driver", "oracle.jdbc.driver.OracleDriver") \
  .load()

# 验证读取结果
df.show(5)
  • 若上述步骤依然连接失败,优先排查Databricks集群所在虚拟网络的安全组、Oracle侧的防火墙是否放通了1521端口的访问权限,排除网络拦截问题

3. 更优的对接方案

  • 小批量单次查询场景:直接用上述JDBC直连方案即可,无需引入额外组件,操作成本最低
  • 大数据量同步/高频查询场景:推荐先通过Oracle CDC工具将全量+增量数据同步到Azure Data Lake Storage中,再通过Databricks直接读取湖内数据,该方案查询性能比JDBC直连高3~10倍,同时不会对生产Oracle数据库造成额外的查询压力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:15:04