Python psycopg2 - 处理大数据

时间:2016-07-07 19:50:05

标签: python postgresql docker psycopg2

我正在尝试使用docker上的python / psycopg2将大数据(15 B)从一个数据库(postgresql)传输到其他数据库。我的docker有4 GB内存,内存不足。

我做错了什么?

cursor = conn.cursor()
cursor.execute('select * from schema.table')
for row in cursor:
   tp = tuple(map(lambda x: x.encode('utf-8'), row)
   cursor.execute('Insert into table2 values {}'.format(tp))
   conn.commit()

1 个答案:

答案 0 :(得分:1)

使用copy_to and copy_from

f = open('t.txt', 'wb')
conn = psycopg2.connect(database='source_db') 
cursor = conn.cursor() 
cursor.copy_to(f, 'source_table')
conn.close()
f.close()

f = open('t.txt', 'r')
conn = psycopg2.connect(database='target_db') 
cursor = conn.cursor() 
cursor.copy_from(f, 'target_table')
conn.close()
f.close()