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

如何在AWS Glue Python ETL任务中安装pyodbc及ODBC驱动连接SQL Server

在AWS Glue Python ETL任务中配置pyodbc与SQL Server ODBC驱动

AWS Glue默认运行环境不包含pyodbc和SQL Server ODBC驱动,以下是两种可靠的配置方案:

方案一:使用自定义Python库+预装驱动的Glue版本

1. 生成适配Glue环境的pyodbc wheel包

Glue基于Amazon Linux运行,本地生成的pyodbc包无法兼容,需在对应环境编译:

  • 启动一台Amazon Linux 2 EC2实例,安装编译依赖:
    sudo yum install gcc-c++ unixODBC-devel -y
    
  • 生成wheel包:
    pip wheel pyodbc --wheel-dir ./pyodbc_wheels
    
  • 将生成的.whl包上传至你的S3存储桶(例如s3://your-glue-resources/libs/pyodbc/)

2. 确认ODBC驱动状态

Glue 3.0及以上版本已预装Microsoft ODBC Driver 17 for SQL Server,无需额外安装。若使用更低版本,可通过初始化脚本安装:
将以下脚本保存为install-driver.sh并上传至S3,在Glue作业配置中指定为初始化脚本路径:

sudo yum install -y https://packages.microsoft.com/config/rhel/7/prod.repo
sudo yum install -y msodbcsql17 unixODBC-devel
sudo yum clean all

3. 配置Glue作业

  • 在Glue作业配置页的Python库路径中,填入S3上pyodbc wheel包的完整路径
  • 在ETL脚本中正常使用pyodbc:
    import pyodbc
    
    conn_str = (
        "Driver={ODBC Driver 17 for SQL Server};"
        "Server=USXXX00345,67800;"
        "Database=DB02;"
        "UID=Alex;"
        "PWD=Alex123;"
    )
    conn = pyodbc.connect(conn_str)
    # 执行查询、数据处理等操作
    

方案二:使用自定义Docker镜像(Glue 2.0+)

若需要更灵活的环境定制,可构建自定义镜像:

  1. 创建Dockerfile:
    FROM amazon/aws-glue-libs:glue-3.0
    
    # 安装SQL Server ODBC驱动
    RUN yum install -y https://packages.microsoft.com/config/rhel/7/prod.repo && \
        yum install -y msodbcsql17 unixODBC-devel && \
        yum clean all
    
    # 安装pyodbc
    RUN pip install pyodbc
    
  2. 构建镜像并推送到Amazon ECR仓库
  3. 创建Glue作业时选择自定义镜像,指定ECR中的镜像地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:55:21