使用SQLAlchemy

时间:2016-06-28 21:08:53

标签: python postgresql sqlalchemy

我有一个查询,我想使用multiprocessing.Pool模块并行提交。

我的问题是我如何提交查询以及corr。将变量绑定到pool.map

因此,如果查询类似于:

SELECT a.col1, a.col2, t.col1 FROM table a, 
 (VALUES(:x1,:x2),(:y1,:y2),(:z1,:z2)) 
 AS t(col1,col2) WHERE a.col2=col2 AND a.col1 % t.col1 

我用每个查询来判断绑定变量:

{x1 : 'AA', x2:'XX',y1:'BB', y2:'YY',z1:'CC',z2:'ZZ'}

如何在此调用pool.map(..)? 我问这个是因为pool.map()只支持单参数工作函数

现在,如果我不使用绑定变量,我会像这样调用它:

def execSQL():
    #init db_user, db_host, sql_qry here
    ...
    conn = psycopg2.connect("dbname=%s host=%s user=%s password=%s" % (db_name, db_host, db_user, db_pwd))
    curs = conn.cursor()
    curs.execute(sql_qry)
    records = curs.fetchall()
    return records 

def run():
    sql_queries = [...] # some list of queries to be run in parallel
    pool = Pool(processes=4)
    results=pool.map(execSQL, sql_queries)

0 个答案:

没有答案