2017-03-08 5 views
0

現在、リモートImpalaサーバにimpalaクエリを実行できるPythonコードを設定しようとしています。リモートで実行されたPythonコードを使用してインパラクエリを実行します。

私のローカルWindowsでは、セットアップされたODBCドライバを使用しており、TableauのImpalaでデータを取得するために正常に使用できます。 使用するHadoop環境はKerberosです。 ODBC管理者を使用して正常に接続テストを行うには、SASLと信頼できる.pem証明書が必要です。

すでに複数のライブラリを使用して接続しようとしましたが、接続プロパティの設定方法や必要な設定がわかりません。

私はthis guideに従ってみました。私の接続文字列で

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

が、私はいつもで終わる:

は私が設定することにより、pyodbcを試した私は、これは可能性があります私は、証明書を設定する方法を確認していない

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ユーザからKerberos化されたImpalaサーバへのクエリの実行方法について、誰かが気にすることはできますか?どのパラメータを設定する必要があり、どの値を期待していますか?コード例は高く評価されています。 thrift-saslをインストールできないようですが、どのライブラリが使用されているか気にしません。必要な追加情報をお尋ねください。質問を更新します。

答えて

1

明らかに私は以前に設定されたODBCドライバ/接続から利益を得ることができました。 ODBC Administratorツールで見つかった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() 
関連する問題