我在设置 PyODBC 时遇到了很大的困难,以至于我确信在我的情况下这是不可能的。我的情况是:
f'mssql+pyodbc://{username}:{password}@{host}:{port}/{database}?driver=ODBC+Driver+17+for+SQL+Server'
。如果我将 pyodbc
切换为 pymssql
,并将驱动程序部件切换为 ?charset=ut8
,那么它就可以正常工作。我尝试了无数种 ODBC 驱动程序规范排列,并且尝试使用
pyodbc.drivers()
(返回 ['PostgreSQL', 'MySQL']
)进行调试,这让我得出结论:AWS Glue 根本不允许查看我的 EC2 实例 PyODBC 驱动程序。错误如
无法打开 lib 'driver=ODBC Driver 17 for SQL Server':找不到文件 (0) (SQLDriverConnect)”
很常见,但其他的出现取决于您输入字符串的方式。
我不是来这里询问如何解决这个问题的。我已经放弃了,并将我的标准定得低得多。相反,我问的是:上面列出的任何情况是否会导致无法通过 ODBC 连接? 指向已成功连接的非常相似案例的链接也将被接受。
AWS Glue Python Shell 作业不支持开箱即用的 ODBC 驱动程序。您需要使用 JDBC 或其他支持的方法。或者,您可以尝试将 AWS Glue ETL 作业与 Spark 结合使用,它对 JDBC 连接有更好的支持。