Python 2.7 使用ODBC使用远程执行的Python代码运行impala查询
我目前一直在尝试设置Python代码,以便能够对远程impala服务器执行impala查询 在我的本地Windows上,我正在使用一个ODBC驱动程序,该驱动程序已经设置好,可以成功地用于在Tableau中使用Impala检索数据。 我们使用的Hadoop环境是Kerberised的。 要使用ODBC administrator成功进行连接测试,我们需要SASL和可信的.pem证书 我已经尝试使用多个库进行连接,但我不确定如何设置连接属性以及需要哪些属性 我试着跟着开始 我通过设置以下内容来试验Python 2.7 使用ODBC使用远程执行的Python代码运行impala查询,python-2.7,hadoop,odbc,cloudera,impala,Python 2.7,Hadoop,Odbc,Cloudera,Impala,我目前一直在尝试设置Python代码,以便能够对远程impala服务器执行impala查询 在我的本地Windows上,我正在使用一个ODBC驱动程序,该驱动程序已经设置好,可以成功地用于在Tableau中使用Impala检索数据。 我们使用的Hadoop环境是Kerberised的。 要使用ODBC administrator成功进行连接测试,我们需要SASL和可信的.pem证书 我已经尝试使用多个库进行连接,但我不确定如何设置连接属性以及需要哪些属性 我试着跟着开始 我通过设置以下内容来试验
pyodbc
:
驱动程序、主机、端口、数据库、AuthMech=3、UseSASL=1、UID、PWD、SSL=1
在我的连接字符串中,但我总是以:
错误:('HY000','[HY000][Cloudera][ImpalaODBC](100)错误
来自黑斑羚节俭API:没有更多数据可读取。(100)
(SQLDriverConnect);[HY000][Cloudera][ImpalaODBC](100)来自的错误
黑斑羚节俭API:无需读取更多数据。(100)
我不确定应该如何设置证书,这样可能会导致此错误。
我还研究了impyla
,但我也不确定如何在那里设置连接参数
有人能解释一下如何从本地windows用户向kerberised Impala服务器运行查询吗?需要设置哪些参数以及它们期望的值是什么?欢迎使用代码示例。我不在乎使用哪个库,尽管我似乎无法安装
thrift sasl
。请询问任何所需的附加信息,我将更新我的问题。因此,显然我可以从以前配置的ODBC驱动程序/连接中获益。
通过提供我在ODBC管理员工具中找到的DSN,我可以解决我的问题。我最终使用了pyodbc
import pyodbc
cfg = {'username':'...', ...}
connString = '''DSN={3};UID={0};PWD={1};Database={2}'''.format(cfg['username'],cfg['password'],cfg['database'],cfg['dsn'])
pyodbc.autocommit = True
conn = pyodbc.connect(connString, autocommit = True)
cursor = conn.cursor()