将Postgres的数据流式传输到Python中

时间:2014-02-24 20:11:47

标签: python postgresql

我正在寻找有关从Postgres表到Python逐步传输数据的有效方法的建议。我正在实现在线学习算法的过程中,我想从数据库表中读取批量的训练样例到要处理的内存中。关于最大化吞吐量的好方法的任何想法?谢谢你的建议。

2 个答案:

答案 0 :(得分:6)

如果您使用的是psycopg2,那么您将需要使用命名游标,否则它会尝试立即将整个查询数据读入内存。

cursor = conn.cursor("some_unique_name")
cursor.execute("SELECT aid FROM pgbench_accounts")
for record in cursor:
    something(record)

这将以2000的批量(默认值itersize)从服务器获取记录,然后一次将它们分组到循环中。

答案 1 :(得分:1)

您可能需要查看Postgres LISTEN / NOTIFY功能https://www.postgresql.org/docs/9.1/static/sql-notify.html