因为是在Ubuntu下,所以安装python、pip、pymysql等都极其方便,sudo apt-get install pymysql,
但是在安装cx_Oracle(连接oracle的模块)出现许多问题,查阅相关资料,发现这边文章能够帮我解决,希望大家少走点弯路。http://www.tbdazhe.com/archives/602
1.安装python
2.安装pip、pymysql、cx_oracle
3.import module
主要这次我想通过python脚本,定时把数据从oracle库导入mysql库
__author__ = 'young' # coding=UTF-8 import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' import cx_Oracle # 导入pymysql的包 import pymysql def synctask(): '''Hello cx_Oracle示例: 1)打印数据库版本信息. 2)查询表数据.''' conn = cx_Oracle.connect("username/password@ip:1522/health") cur = conn.cursor() # 获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库 conn_mysql = pymysql.connect(host='ip', user='smart', passwd='smart', db='smart', port=3306, charset='utf8') cur_mysql = conn_mysql.cursor() # 获取一个游标 try: cur_mysql.execute("insert into user(name) values('123')") print "Oracle Version:%s" % conn.version print "Table test rows:" sql = 'SELECT * FROM t_user where pat_id < 2000 order by pat_id' cur.execute(sql) for row in cur: print row[1].decode('utf-8') data = row[1].decode('utf-8') finally: conn_mysql.commit() conn.commit() conn_mysql.close() cur_mysql.close() cur.close() conn.close() synctask()
ubuntu下kettle的配置
1. 把pdi-ce-5.2.0.0-209.zip包到指定目录,unzip解压到sudo unzip pdi-ce-5.2.0.0-209.zip /home/2. 授予权限,data-integration目录下shell脚本
chmod +x *.sh3.把oracle、mysql的jar包上传到data-integration/lib目录下 4.在data-integration 目录,键入“./kitchen.sh”回车,如果有帮助信息则表示kettle 环境部署成功 5.把在windows下搭建的kjb、ktr放入到制定目录,如
sudo mv sync_mysql.ktr sync_mysql.kjb /home/kettlejob/6.需记得把kjb中使用ktr转换任务的路径配置成linux的目录 7.在data-integration 目录,执行一个kettle作业
sh kitchen.sh -file:/home/kettlejob/sync_mysql.kjb -level:Detailed结论: 使用kettle比起我自己用python写脚本速度快得不止一倍,我表示还是kettle使用比较有效果。