将数据写入远程 VPS 数据库
Writing data to remote VPS database
我有一个问题,可能有两种可能的方法来获得解决方案,我对任何一种都持开放态度。
我每天使用第 3 方应用程序将数据下载到 pandas 数据帧中,然后将其写入本地 postgres 数据库。数据帧很大,但由于数据库是本地的,我只需使用 df.to_sql
即可在几秒钟内完成。
问题是现在我已将数据库移动到远程 linux 服务器 (VPS)。同样的 to_sql
现在需要一个多小时。我已经为 chunksize
尝试了各种值,但这并没有多大帮助。
如果我可以简单地在该远程服务器上安装第 3 方应用程序,但服务器 OS 不使用 GUI,这将不是问题。有没有办法 运行 服务器上的第 3 方应用程序,即使它需要 GUI? (注意:这是一个 Windows 应用程序,所以我在本地 linux 机器上使用 wine 运行 它,并且可能也需要在服务器上执行此操作)。
如果无法 运行 在 VPS 上需要 GUI 的应用程序,那么我应该如何从本地计算机将这些数据帧写入 VPS以一种不超过一个小时的方式?我希望有一些方法可以将数据帧分成更小的部分或使用 to_sql
以外的其他更适合此的方法。
一个非常笨拙、不优雅的解决方案是将数据帧写入 csv 文件,使用 ftp 将它们上传到服务器,然后 运行 服务器上的单独 python 脚本将数据保存到数据库。我想这会起作用,但肯定不理想。
在调查了无数可能的解决方案之后:
- 正在创建隧道以将端口从我的本地计算机转发到服务器,以便它可以访问第 3 方应用程序。
- 修改我所有的 python 代码以使用
psycopg2
而不是 pandas to_sql
手动将数据从我的本地计算机插入服务器
- 正在为服务器上 运行 的第 3 方应用程序创建 docker 容器
- 和其他几个死胡同或令人费解的不太理想的解决方案
最后,解决方案是简单地使用 wine 在服务器上安装第 3 方应用程序,然后使用 -X 标志通过 ssh 进入它。因此,当它在服务器上 运行ning 时,我可以在本地计算机上访问 gui。
我有一个问题,可能有两种可能的方法来获得解决方案,我对任何一种都持开放态度。
我每天使用第 3 方应用程序将数据下载到 pandas 数据帧中,然后将其写入本地 postgres 数据库。数据帧很大,但由于数据库是本地的,我只需使用 df.to_sql
即可在几秒钟内完成。
问题是现在我已将数据库移动到远程 linux 服务器 (VPS)。同样的 to_sql
现在需要一个多小时。我已经为 chunksize
尝试了各种值,但这并没有多大帮助。
如果我可以简单地在该远程服务器上安装第 3 方应用程序,但服务器 OS 不使用 GUI,这将不是问题。有没有办法 运行 服务器上的第 3 方应用程序,即使它需要 GUI? (注意:这是一个 Windows 应用程序,所以我在本地 linux 机器上使用 wine 运行 它,并且可能也需要在服务器上执行此操作)。
如果无法 运行 在 VPS 上需要 GUI 的应用程序,那么我应该如何从本地计算机将这些数据帧写入 VPS以一种不超过一个小时的方式?我希望有一些方法可以将数据帧分成更小的部分或使用 to_sql
以外的其他更适合此的方法。
一个非常笨拙、不优雅的解决方案是将数据帧写入 csv 文件,使用 ftp 将它们上传到服务器,然后 运行 服务器上的单独 python 脚本将数据保存到数据库。我想这会起作用,但肯定不理想。
在调查了无数可能的解决方案之后:
- 正在创建隧道以将端口从我的本地计算机转发到服务器,以便它可以访问第 3 方应用程序。
- 修改我所有的 python 代码以使用
psycopg2
而不是pandas to_sql
手动将数据从我的本地计算机插入服务器
- 正在为服务器上 运行 的第 3 方应用程序创建 docker 容器
- 和其他几个死胡同或令人费解的不太理想的解决方案
最后,解决方案是简单地使用 wine 在服务器上安装第 3 方应用程序,然后使用 -X 标志通过 ssh 进入它。因此,当它在服务器上 运行ning 时,我可以在本地计算机上访问 gui。