我有一张大约有200列的桌子。为了ETL的目的,我需要转储每日事务数据。它是一个MySQL数据库。我在Python中尝试过,既使用pandas数据帧,也使用基本的写入CSV文件方法。我甚至尝试使用shell脚本寻找相同的功能。我看到过这样一个使用sqlplus的oracle数据库。以下是我使用这两种方法的python代码:
使用熊猫:import MySQLdb as mdb
import pandas as pd
host = ""
user = ''
pass_ = ''
db = ''
query = 'SELECT * FROM TABLE1'
conn = mdb.connect(host=host,
user=user, passwd=pass_,
db=db)
df = pd.read_sql(query, con=conn)
df.to_csv('resume_bank.csv', sep=',')
使用基本python文件写入:
^{pr2}$
这个表有大约30万条记录。这两个python代码花费了太多时间。在
另外,这里的编码也有问题。DB resultset有一些拉丁语-1字符,我得到了一些错误,比如:UnicodeEncodeError: 'ascii' codec can't encode character '\x96' in position 1078: ordinal not in range(128).
我需要以Unicode格式保存CSV。你能帮我找到完成这项任务的最佳方法吗。在
基于Unix或基于Python的解决方案对我很有用。此脚本需要每天运行才能转储每日数据。在