我知道如何使用 psycopg2、sqlalchemy、dask 在远程服务器中读取 PostgreSQL 表,但我对读取表的处理时间不满意,并开始研究更快的替代方案,我发现 asyncpg 比所有方法快 7 倍,但 asyncpg 的文档非常差与上面提到的库相比,那里有很多例子。
我的问题是:如何有效地读取 PostgreSQL 表?
我试过如下:
import asyncio
import asyncpg
import pandas as pd
from sshtunnel import SSHTunnelForwarder #Allow connection with SSH like PuttY connection
from sshtunnel import SSHTunnelForwarder, create_logger #Allow to follow the processes running
SSHTunnelForwarder(('IP_detail', Port_number),
ssh_private_key=r'path_to_the_ssh_key_in_my_computer',
ssh_username="username",
#ssh_password="password",
remote_bind_address=('localhost', port_number),
local_bind_address=('localhost', port_number),
logger=create_logger(loglevel=1) #Makes processes being ran displayed
)
conn = await asyncpg.connect(user='username', password='password',
database='database_name', host='127.0.0.1', port='port')
values = await conn.fetch('''SELECT * FROM table_name''')
values=pd.DataFrame(values)
values
使用上面的代码,我得到 PostgreSQL 表中每列的所有行值,但不显示列名,它显示列编号而不是它们的专有名称。如何纠正这个?