Python:保存Postgres中的数据集以供最后加载

Python:保存Postgres中的数据集以供最后加载,python,postgresql,Python,Postgresql,我将使用PostgreSQL server中存储的具有只读访问权限的非常大的时空数据集。目标是将这些数据集加载到Python环境中,进行所有处理并创建某种学习模型 每次我想工作的时候,用python从postgres加载这些数据集不是一个好主意 我想知道是否有一种方法可以让Postgres将这些数据集以.pkl或.hdf等格式转储到磁盘,以支持将来更快的加载。我真的不认为\COPY to csv是一个选项。如果您使用PostgreSQL,那么COPY或\COPY是您唯一的选项。你还没有说为什么这

我将使用PostgreSQL server中存储的具有只读访问权限的非常大的时空数据集。目标是将这些数据集加载到Python环境中,进行所有处理并创建某种学习模型

每次我想工作的时候,用python从postgres加载这些数据集不是一个好主意


我想知道是否有一种方法可以让Postgres将这些数据集以.pkl或.hdf等格式转储到磁盘,以支持将来更快的加载。我真的不认为\COPY to csv是一个选项。

如果您使用PostgreSQL,那么COPY或\COPY是您唯一的选项。你还没有说为什么这是不可行的

我假设数据库正在更改,并且您希望将最近的数据拉入Python程序。如果数据库是静态的,那么您可能

使用COPY或\ COPY一次 将结果读入Python 将数据保存为另一种格式 使用h5py的hdf 使用 解决此问题的另一种方法是使用数据库连接器从Python中提取数据。特定于MySQL,但应使用PostgreSQL数据连接器。下面是适用于PostgreSQL的代码:

import psycopg2
import numpy

conn = psycopg2.connect(host='localhost', user='bob', passwd='mypasswd', db='bigdb')
curs = conn.cursor() 
numrows = curs.execute("SELECT id, rating FROM video")

#dtype='i4,i4' means two columns, both 4 byte (32 bit) integers
# you will have to adapt to your data type and data structure
A = numpy.fromiter(curs.fetchall(), count=numrows, dtype=('i4,i4'))