Python Multiprocessing data выбирает и вставляет Psycopg2 - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь выбрать огромные данные и вставить их в другую таблицу, следовательно, используя многопроцессорный модуль python, который я пробовал с многопроцессорной обработкой, но не вижу результатов

import psycopg2, multiprocessing, time
from multiprocessing import pool
def pg_run(thetable):
conn = psycopg2.connect(database = 
"XXX",user="XXX",password="XXX",port="XXX")
conn.autocommit = True
cur = conn.cursor()
thesql = """INSERT  INTO public."table_A" (col1,col2,col3,col4,col5) 
SELECT col1,col2,col3,col4,col5 
FROM public."tableB" 
inner join public."tableC" VFCR on VFCRH.col= VFCR.col
inner join public."tableD" RSXSCX6 on VFCRH.col= RSXSCX6.col
or (VFCRH.col= RSXSCX6.col or VFCRH.col= RSXSCX6.col) limit 10
"""
cur.execute(thesql)
if __name__ == '__main__':
   t1 = time.time()
   p = multiprocessing.Pool(4)
   thetable1 = '1'
   thetable2 = '2'
   thetable3 = '3'
   thetable4 = '4'
 myresult = p.map(pg_run,[thetable1,thetable2,thetable3,thetable4])

thesql = """SELECT col1,col2,col3,col4,col5 
FROM public."tableB"
INTO public.tableB2
FROM public."tableB"
"""
conn = psycopg2.connect(database = "XXX",user="XXX",password="XXX",port="XXX")
conn.autocommit = True
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS tableB2")
cur.execute(thesql)
print (time.time() - t1)

Данные должны быть вставлены в целевую таблицумного поститься

...