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

ADF迁移:能否通过远程Azure Integration Runtime利用JDBC源创建数据集?

解决Azure Data Factory中利用现有JDBC驱动连接专有数据库的方案

以下是几种无需额外购买ODBC驱动、直接复用现有JDBC驱动的可行方案:

方案一:通过自定义活动(Custom Activity)调用Java代码

自托管Integration Runtime(IR)支持运行自定义可执行文件,你可以编写Java程序直接调用已安装的JDBC驱动,完成数据拉取:

  • 确保自托管IR所在服务器已配置Java运行环境,且JDBC驱动jar包已添加到Java类路径中
  • 编写Java程序实现JDBC连接、数据读取,并将数据输出到ADF兼容的存储(如Azure Blob Storage、本地文件系统)
  • 在ADF中创建自定义活动,指定Java程序的运行命令(如java -cp .:/path/to/driver.jar JdbcDataExtractor),并配置输入输出数据集关联存储位置

示例Java代码片段:

import java.sql.*;
import java.io.FileWriter;

public class JdbcDataExtractor {
    public static void main(String[] args) {
        // 替换为实际数据库的JDBC连接参数
        String jdbcUrl = "jdbc:progress://db-host:port/db-name";
        String dbUser = "your-username";
        String dbPwd = "your-password";
        String outputFilePath = args[0]; // 从ADF自定义活动参数传入输出路径

        try (Connection conn = DriverManager.getConnection(jdbcUrl, dbUser, dbPwd);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM target-table");
             FileWriter writer = new FileWriter(outputFilePath)) {

            // 将查询结果写入CSV文件(可根据需求调整格式)
            while (rs.next()) {
                writer.write(String.format("%s,%d,%s\n", 
                    rs.getString("col1"), rs.getInt("col2"), rs.getString("col3")));
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1); // 告知ADF活动执行失败
        }
    }
}

方案二:用Azure Function作为JDBC数据访问中间层

在自托管IR所在的网络环境内部署Java版Azure Function,让Function直接调用本地JDBC驱动访问数据库:

  • Function中编写JDBC数据读取逻辑,暴露HTTP接口返回数据(或直接写入Azure存储)
  • ADF通过HTTP链接服务调用该Function,获取数据后导入目标数据集
  • 此方案的优势是可复用现有JDBC驱动,且Function可独立维护数据处理逻辑,无需修改ADF的核心配置

方案三:尝试ADF通用JDBC链接服务

检查ADF链接服务列表中的Generic JDBC选项:

  • 若存在该选项,配置时需填写JDBC连接URL、驱动类名,并将JDBC驱动jar包放置在自托管IR的指定目录(通常为C:\Program Files\Microsoft Integration Runtime\5.0\Shared\drivers\jdbc,根据IR版本调整)
  • 注意:部分专有JDBC驱动可能因兼容性问题无法通过此方式加载,需先在IR服务器上测试驱动的可用性

关键注意事项

  • 确保自托管IR服务器有足够权限访问目标数据库服务器,以及读取JDBC驱动文件
  • 所有方案需先在IR服务器上手动验证JDBC连接和数据读取逻辑,再集成到ADF中,避免排查问题时混淆环境因素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:40:37