gpt4 book ai didi

python - 使用 Python 批量插入 vertica

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:01 25 4
gpt4 key购买 nike

我正在使用 python 将数据(约 800 万行)从 oracle 传输到 vertica。我写了一个 python 脚本,可以在 2 小时内传输数据,但我正在寻找提高传输速度的方法。

我正在使用的过程:

  • 连接到甲骨文
  • 将数据拉入数据框(pandas)
  • 逐行遍历dataframe中的行并插入vertica(cursor.execute),我想使用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()

最佳答案

来自 vertica-python 代码 https://github.com/uber/vertica-python/blob/master/vertica_python/vertica/cursor.py

打开(“/tmp/file.csv”,“rb”)作为文件系统:
cursor.copy("COPY table(field1,field2) FROM STDIN DELIMITER ',' ENCLOSED BY '\"'", fs, buffer_size=65536)

关于python - 使用 Python 批量插入 vertica,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32658926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com