2014-04-27 46 views
3

嗨我正在嘗試使用Python代碼從Amazon Redshift表中讀取一些數據。無法使用psycopg2從Amazon Redshift讀取數據

我正在使用psycopg2庫。

以下是我使用的代碼:

import psycopg2 
try: 
    conn = psycopg2.connect("dbname='testdb' port='5439' user='user' host='us-west.redshift.amazonaws.com' password='pass'"); 
except: 
    print "I am unable to connect to the database" 
cur = conn.cursor() 
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) 
try: 
    cursor.execute('begin') 
    cur.execute("""SELECT * from employee""") 
    cursor.execute('commit') 
except: 
    print "Unable to select from test database!" 
rows = cur.fetchall() 

但我無法讀取數據,因爲它是無法從測試數據庫中進行選擇。

請指教。

+0

因此,它看起來像你從僱員表中的公共模式選擇。您是否可以確認「用戶」用戶標識可以使用像aginity這樣的查詢工具從該表中進行選擇? –

+0

另外,不要做'BEGIN',psycopg2爲你管理。見http://initd.org/psycopg/docs/usage.html#transactions-control – fog

+0

是的,你是對的!所以我試圖通過它,發現連接字符串有一些訪問問題,並且代碼無需開始和隔離級別。謝謝邁克和霧。 – Dragon

回答

0

我相信你需要把紅移情況下的全名,這是長於「us-west.redshift.amazonaws.com」:

康恩= psycopg2.connect(「數據庫名=‘TESTDB’ port ='5439'user ='user'host ='REDSHIFT_INSTANCE_NAME.redshift.amazonaws.com'password ='pass'「);

例如,主機將類似於「tst.cryibvg33r9d.ap-southeast-1.redshift.amazonaws.com」