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

2024-04-29 01:04:40 发布

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

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

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

我想知道是否有一种方法可以让Postgres将这些数据集以某种格式(例如.pkl.hdf)转储到磁盘,以支持将来更快的加载。我真的不认为\COPYcsv是一种选择


Tags: 数据方法模型权限目标环境格式postgres
1条回答
网友
1楼 · 发布于 2024-04-29 01:04:40

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

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

  • 使用COPY或\ COPY一次
  • 将结果读入Python
  • 将数据保存为其他格式

解决此问题的另一种方法是使用数据库连接器从Python中提取数据This solution是特定于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'))

相关问题 更多 >