天天看點

python處理teradata資料庫_Python腳本連接配接Teradata資料庫

Connect Teradata from

python

Base

on Linux Ubuntu with python2.7

參考網絡搜尋結果,具體出處不記得了,結合自身實踐總結。以下操作為Linux環境,其他環境請自行調整。(中英文結合是因為這個總結最初也是受惠于歪果仁的分享)

1, Install python package

#依賴兩個包

apt-get install python-pyodbc

apt-get install odbcinst

2, Download teradata dirver for

linux  #需要下載下傳和安裝Teradata用戶端驅動

http://downloads.teradata.com/download/files/7455/188352/0/tdodbc__linux_indep.15.00.00.03-1.tar.gz

3, Install the teradata client and

driver by root on linux

install alien on server if not

installed

apt-get install alien

Unzip and install the drivers:

alien

tdicu-15.00.00.00-1.noarch.rpm

dpkg -i

tdicu_15.00.00.00-2_all.deb

alien

tdodbc-15.00.00.03-1.noarch.rpm

dpkg -i

tdodbc_15.00.00.03-2_all.deb

alien

TeraGSS_linux_x64-15.00.00.07-1.noarch.rpm

dpkg -i

teragss-linux-x64_15.00.00.07-2_all.deb

4, Add the teradata files to

ldconfig, by creating a new file,

/etc/ld.so.conf.d/Zteradata.conf with the contents:

/opt/teradata/client/15.00/odbc_64/lib

/opt/teradata/client/15.00/tdicu/lib64

/opt/teradata/teragss/linux-x8664/15.00.00.07/lib

5,Refresh the cache to include

these new lib directories:

ldconfig -v

6, Redirect default drivers to

teardata files. #在預設路徑下建立軟連結指向teradata驅動檔案

cd /usr/lib/x86_64-linux-gnu

mv libodbc.so.1.0.0

Xlibodbc.so.1.0.0

ln -s

/opt/teradata/client/15.00/odbc_64/lib/libodbc.so

libodbc.so.1.0.0

mv libodbcinst.so.1.0.0

Xlibodbcinst.so.1.0.0

ln -s

/opt/teradata/client/15.00/odbc_64/lib/libodbcinst.so

libodbcinst.so.1.0.0

7, config for teragss

#配置teradata用戶端元件

mkdir /usr/teragss/site

cp -R

/opt/teradata/teragss/linux-x8664/15.00.00.07/etc/*

/usr/teragss/site

mkdir /usr/teragss/linux-x8664

mkdir

/usr/teragss/linux-x8664/client

cd

/usr/teragss/linux-x8664/client

ln -s

/opt/teradata/teragss/linux-x8664/15.00.00.07/lib lib

cd

/opt/teradata/teragss/linux-x8664/15.00.00.07/bin

./run_tdgssconfig

8, modify odbc config file for

oracle user #将預設的兩個配置檔案複制到目前使用者主目錄下,并修改配置路徑

cp

/opt/teradata/client/15.00/odbc_64/odbc.ini ~/.odbc.ini

cp

/opt/teradata/client/15.00/odbc_64/odbcinst.ini

~/.odbcinst.ini

Edit them to replace all

“TDODBC_INSTALL_DIR” with “/opt/teradata/client/15.00/odbc_64” and

replace “TDODBC_LIB_DIR” with “lib”

9,Add the data source to the ODBC

configuration file ~/.odbc.ini #在配置檔案中增加data source資訊

[ODBC Data Sources]

test_teradata=tdata.so

#其中test_teradata為自定義資料源名稱

[test_teradata]

Driver=/opt/teradata/client/15.00/odbc_64/lib/tdata.so

Description=

DBCName=  #

此處為你要連接配接的teradata伺服器名

LastUser=

Username= # 此處為連接配接的使用者名

Password= # 此處為密碼

Database=

DefaultDatabase=

#此處為預設連接配接伺服器上的資料庫

10, Edit user profile, add below

into ~/.profile to set environment #設定使用者的環境變量

ODBCINI=$HOME/.odbc.ini

LD_LIBRARY_PATH=/opt/teradata/teragss/linux-x8664/15.00.00.07/lib:$LD_LIBRARY_PATH

export ODBCINI LD_LIBRARY_PATH

======================== 低調分割線

===========================

以上配置完成。

以下為python腳本中兩種方式連接配接示例:

import pyodbc

pyodbc.pooling = False

# 1,直接連接配接 connect directly,here

{Teradata} is keyword, not variable。

conn=pyodbc.connect('DRIVER={Teradata};DBCNAME=db_server_name;UID=;PWD=;QUIETMODE=YES;',

ANSI=True, autocommit=True)

# 2,引用配置的資料源 connect

by data source name

conn=pyodbc.connect('DSN=test_teradata;QUIETMODE=YES;',

ANSI=True, autocommit=True)

測試連接配接不報錯,那麼恭喜你!否則回頭檢查哪個步驟手抖輸入錯誤,如果還不行,自檢人品。。。