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

Ubuntu环境下替代SQLLDR向Azure SQL Server导入数据的方案咨询

适配需求的实现方案

可行性确认

完全可以使用Azure SQL配套的BCP工具实现你的需求,该工具是和Oracle SQLLDR定位一致的命令行批量数据导入工具,原生支持Ubuntu系统,无需依赖ADF,直接嵌入原有bash脚本即可完成改造,是最简易的实现方案。
默认情况下BCP导入就是追加写入目标表的效果,正好匹配你加载附加数据的需求。

Ubuntu系统安装BCP步骤

以下步骤适配Ubuntu 20.04/22.04 LTS版本:

  • 导入Microsoft软件源公钥
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  • 注册对应版本的SQL Server软件源(以下为22.04版本示例,20.04版本将命令中的22.04替换为20.04即可)
    sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list)"
  • 安装工具包及依赖
    sudo apt update && sudo apt install -y mssql-tools unixodbc-dev
  • 配置环境变量方便全局调用
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc && source ~/.bashrc
  • 验证安装是否成功
    执行bcp -v正常输出版本信息即为安装完成

BCP导入CSV命令示例

基础导入命令如下,参数可根据你的实际CSV格式调整:

bcp [数据库名].[schema名].[目标表名] in /本地路径/待导入数据.csv -S [Azure SQL服务地址,1433] -U [登录账号] -P [登录密码] -c -t ',' -r '\n' -F 2

参数说明:

  • -c:使用字符格式导入,无需额外编写格式文件,适配绝大多数CSV场景
  • -t ',':指定字段分隔符为逗号,若你的CSV使用其他分隔符可替换对应值
  • -r '\n':指定行分隔符为换行符,若CSV是Windows系统生成的可替换为\r\n
  • -F 2:从第2行开始导入,用于跳过CSV的表头行,无表头可删除该参数
  • 可添加-b 1000参数设置每1000条数据提交一次,大幅提升大批量数据导入的性能

原有Bash脚本改造注意事项

  • 直接将原有调用SQLLDR的逻辑替换为上述BCP命令即可,整体执行逻辑无需大幅调整
  • 不要在脚本中硬编码数据库账号密码,建议通过环境变量或者加密配置文件读取传入
  • BCP命令执行成功返回码为0,失败返回非0值,可在脚本中增加返回值判断逻辑,实现导入结果的校验和异常处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:27:03