Python turbodbc使用numpy批处理查询MSSQL

2024-04-25 23:46:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用turbodbc包查询Microsoft SQL Server数据库。因为速度原因离开pyodbc。。。你知道吗

这个奇妙的小包裹的文档可以在这里找到: https://turbodbc.readthedocs.io/en/latest/pages/advanced_usage.html#advanced-usage

有一个选项允许批量获取numpy结果集。你知道吗

这是给出的示例:

cursor.execute("SELECT A, B FROM my_table")
batches = cursor.fetchnumpybatches()
for batch in batches:
    print(batch)

输出是OrderedDcit,如下所示:

OrderedDict([('A', masked_array(data = [42 --],
                                mask = [False True],
                                fill_value = 999999)),
             ('B', masked_array(data = [3.14 2.71],
                                mask = [False False],
                                fill_value = 1e+20))])

我想用这个方法把数据加载到熊猫中。提供了一个read_buffer_size参数,这使得这个方法非常适合我,因为我必须查询大量的数据。你知道吗

我已经可以不用iterable使用fetchallnumpy从numpy变成pandas了。你知道吗

我的方法是:

conn = turbodbc.connect(connection_string = connstring)
cursor = conn.cursor()
cursor.execute("SELECT * from table")
table = cursor.fetchallnumpy()
df = pd.DataFrame(table,columns=table.keys())
cursor.close()
conn.close()

但是我真的很想用fetchnumpybatches来实现这个


Tags: 方法numpyfalseexecutebatchtableusagebatches