gpt4 book ai didi

python-2.7 - 使用 ODBC 使用远程执行的 Python 代码运行 impala 查询

转载 作者:可可西里 更新时间:2023-11-01 16:29:19 25 4
gpt4 key购买 nike

我目前正在尝试设置能够对远程 Impala 服务器执行 Impala 查询的 Python 代码。

在我的本地 Windows 上,我使用的是 ODBC 驱动程序,该驱动程序已设置并可成功用于在 Tableau 中通过 Impala 检索数据。我们使用的 Hadoop 环境是 Kerberised。要使用 ODBC 管理员进行成功的连接测试,我们需要 SASL 和受信任的 .pem 证书。

我已经尝试使用多个库进行连接,但我不确定如何设置连接属性以及我需要哪些属性。

我尝试关注 this guide开始。

我通过设置对 pyodbc 进行了实验:

Driver,Host,Port,Database,AuthMech=3,UseSASL=1,UID,PWD,SSL=1

在我的连接字符串中,但我总是以:

结尾

pyodbc.Error: ('HY000', '[HY000] [Cloudera][ImpalaODBC] (100) Error from the Impala Thrift API: No more data to read. (100) (SQLDriverConnect); [HY000] [Cloudera][ImpalaODBC] (100) Error from the Impala Thrift API: No more data to read. (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()

关于python-2.7 - 使用 ODBC 使用远程执行的 Python 代码运行 impala 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42676360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com