Dat*_*ast 4 python bulkinsert vertica
我正在使用 python 将数据(约 800 万行)从 oracle 传输到 vertica。我写了一个 python 脚本,它在 2 小时内传输数据,但我正在寻找提高传输速度的方法。
我正在使用的过程:
dataframe.to_sql方法,但该方法仅限于几个数据库有没有人使用更好的方法(批量插入或任何其他方法?)使用 python 将数据插入 vertica?
这是代码片段:
df = pandas.read_sql_query(sql,conn)
conn_vertica = pyodbc.connect("DSN=dsnname")
cursor = conn_vertica.cursor()
for i,row in df.iterrows():
cursor.execute("insert into <tablename> values(?,?,?,?,?,?,?,?,?)",row.values[0],row.values[1],row.values[2],row.values[3],row.values[4],row.values[5],row.values[6],row.values[7],row.values[8])
cursor.close()
conn_vertica.commit()
conn_vertica.close()
Run Code Online (Sandbox Code Playgroud)
来自vertica-python代码 https://github.com/uber/vertica-python/blob/master/vertica_python/vertica/cursor.py
with open("/tmp/file.csv", "rb") as fs:
cursor.copy("COPY table(field1,field2) FROM STDIN DELIMITER ',' ENCLOSED BY '\"'", fs, buffer_size=65536)