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)

测试连接不报错,那么恭喜你!否则回头检查哪个步骤手抖输入错误,如果还不行,自检人品。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下的Shell编程之Helloworld.sh看过来

1.编写HelloWorld.sh vim HelloWorld.sh 2.按下i进行编辑 里面的代码如下: #!bin/sh echo "hello world!" 然后Esc退出编辑模式 然后:wq保存并退出vim 小白看参考: 小白vim指令学习 3.运行HelloWorld.sh(方式有两种) a.sh HelloWorld.sh …

python数据录入和分析_hive+python数据分析入门

本文作者系 leanote 的核心开发者, 多谢关注leanote. leanote官网, leanote github为什么要使用hivepython来分析数据举个例子,当年没有数据库的时候, 人们通过编程来操作文件系统, 这相当于我们编写mapreduce来分析数据.后来有了数据库, 没人再操作文件系统了(除非有其它需求)…

Linux下删除非空文件目录

删除目录大家第一反应应该和我一样都是rmdir 但今天有一个目录里因为配置有好多文件直接烦死,不能rmdir直接删除,要是使用这个指令还要先用cd指令转换到该目录下一个个删除,实在是有点麻烦,最后终于还是找到了正确的打开方式。 …

python不同版本共存_多版本Python共存的配置方法

同一台PC中,如果同时安装Python2和Python3环境,会在执行python命令时出现错误,操作系统会找到默认的配置进行执行。怎么样才能让python2和python3一起工作又互相不影响呢。但是由于工作需要,我们的个人PC上可能需要多个python版本…

jdk1.8配置(自我速成)

1.JAVA_HOME 变量名字:JAVA_HOME 变量值:找到自己安装jdk的目录即可,有的教程路径到了bin,但其实到不到都可以。 2.CLASSPATH 变量名:CLASSPATH 变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 注意这里那个英文的点点不要少了…

Java 8 中的 Streams API 详解

Java 8 中的 Streams API 详解转载于:https://www.cnblogs.com/LionheartCGJ/p/8488825.html

Eclipse export导出war包报错(Module name is invalid.)

出于设计模式的作业过程中遇到的问题,老师要求代码文件最后大家要导出war包,前两次还好好的,今天突然报错 这里来说一下原因,也就是web项目可以导出war包,而java项目是不可以的,下面的操作其实本质上就是给…

车载电脑中控软件_数字图书馆智能化系统集成-ipad中控软件

随着社会发展进入数字化时代,智慧展厅一词,也渐渐的让我们熟悉,在打造智慧展厅的同时,“中控系统软件”功不可没,中控系统软件的可能大家对这个产品也不是特别了解,但接下来,鼎深小编所要介绍的…

Tool:Visual Studio

ylbtech-Tool:Visual StudioMicrosoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环…

const的用法以及与define使用的区别

const使用于C语言中,用于定义常变量,即用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。 因此有的时候也称定义的为只读变量。 虽然 const 定义的是只读变量,就相当于是定义一…

[Poi2011]Tree Rotations线段树合并

整理一下线段树合并的思路,大体是给每个树上节点分配一个根编号建一棵log长的权值线段树,一开始树上只有这个树节点的节点权merge两个树节点的时候,对于当前合并的值域(例如两棵线段树的表示1到n/2的节点),…

word activex部件不能创建对象_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步...

工作证是我们工作中很常见的东西,不过由于每个人的名字、部门、照片都不同,很多小伙伴都不知道怎么批量制作,总是傻傻地一张一张制作,这样特别浪费时间,今天小编就来跟大家分享如何批量制作!一、准备工作1、…

【Hadoop系列】HDFS

Hadoop的前世今生 什么是大数据 各行各业都会产生大量的数据,比如社交网站的意见观点,电商平台人们浏览网页停留的时间,交通运输每天产生的数据等等。这些数据大多不是结构化的,一般来说都是半结构化或者非结构化的 在以前&#x…

phpstudy使用(80端口被system占用,无法关闭和删除)

在使用phpstudy的时候直接一键启动,显示提示80端口已被占用,在尝试关闭和删除后显示被system占用,无法关闭。 这里我首先试着去用任务管理器彻底关闭删除这个进程,后来发现提示,如果删除可能会影响系统正常运行&#…

kingbase自带的驱动在哪_德国制造到底强在哪?从工博会上伺服驱动的创新上能看出真相!...

随着2014年协作机器人在中国兴起,UR、新松、达明、遨博、大族激光等企业积极布局协作机器人市场。2014-2019年,我国协作机器人销量复合增速一度超过了50%,2019年我国协作机器人产量超过8000台。但目前协作机器人和AGV的核心零部件高端市场&am…

phpstudy(自己电脑主机做服务器,手机网站界面打不开)

可能有多种原因, 1.手机电脑并没有连接同一个局域网。 2.我这里是因为修改了80端口,在登录时忘记修改登录的网址。 因为80端口被占用,于是我修改了phpstudy的端口为8080,在上传成功后,使用手机输入电脑的Ip地址死活打…

3结构介绍_豹驰(BOACH)声学材料吸隔声方法介绍—(下)材料隔声特性曲线

基于前两个章节(《豹驰声学材料吸/隔测试方法基础介绍—(上)》&《豹驰声学材料吸/隔声测试方法介绍—(中)》的声学材料吸隔声测试方法介绍,可以了解材料的检测手段及如何有效的采用测试获取数字化模型搭建的输入,支持吸隔声材料制品的设计开发&#…

jQuery基本语法

一、jQuery基础1.为什么要用jquery? 写起来简单,省事,开发效率高,兼容性好2、什么是jQuery? jQuery是一个兼容多浏览器的JavaScript库(类似python里面的模块)3、如何使用jQuery? 1、导…

1-1圆柱体的表面积(算法竞赛入门经典)

源码: #include<iostream> #include<bits/stdc.h> using namespace std; int main() {double r,h;const double piacos(-1.0);double s,s1,s2;cin>>r>>h;s12*pi*r*r;s22*pi*r*h;ss1s2;printf("Area%.3f\n",s);return 0; }收获: 1.const定义…

如何去掉文章里的非关键词c++_B2B/B2C网站:文章标题如何写才能促进搜索排名...

为网站增加高质量内容目的之一是网站在搜索引擎上获得良好曝光机会。创作内容时首先引起我们困惑的是&#xff1a;“这篇文章的标题如何写才能更好&#xff1f;”的确&#xff0c;一个好的文章标题对排名的帮助巨大。尽管没有数据来说明一个好标题对排名的影响程度。但随着时间…