【发布时间】:2015-11-15 03:50:15
【问题描述】:
我目前正在通过pandas.io.sql.read_sql() 命令将数据查询到数据框中。我想并行化类似于这些人所倡导的调用:(Embarrassingly parallel database calls with Python (PyData Paris 2015 ))
类似(非常笼统):
pools = [ThreadedConnectionPool(1,20,dsn=d) for d in dsns]
connections = [pool.getconn() for pool in pools]
parallel_connection = ParallelConnection(connections)
pandas_cursor = parallel_connection.cursor()
pandas_cursor.execute(my_query)
这样的事情可能吗?
【问题讨论】:
-
你的SQL数据库类型和驱动是什么,是否支持多线程调用?
-
使用MS sql server,确实支持多线程调用
-
不确定 pyodbc,但自 2013 年以来,pymssql 似乎对多线程来说是线程安全的:pymssql.org/en/latest/changelog.html?highlight=threading
标签: python sql multithreading pandas pyodbc