使用fetchmany从pyodbc异步提取大数据

时间:2018-08-01 16:24:45

标签: python-asyncio pyodbc

我正在尝试从pyodbc中提取大型数据集。我下面的代码可以正常工作,但是它是串行的,因此速度很慢。我想使其能够异步启动多个IO调用。我看到许多使用asyncio的示例-但找不到我可以使用fetchmany的任何东西。我感谢任何建议!我尝试使用asyncio进行池化,但是无法使其正常工作。

conn = pyodbc.connect('DSN=Denodo Interfaces')
cursor = conn.cursor()  
strng = strng.replace('myWellName', well_name)
cursor.execute(strng)

cols = [column[0] for column in cursor.description]
mylist=[]

while True:
    rows = cursor.fetchmany(10000)
    if not rows:
        break
    df = pd.DataFrame([tuple(t) for t in rows], columns = cols)
    mylist.append(df)

df = pd.concat(mylist, axis=0).reset_index(drop=True)

0 个答案:

没有答案