2016-12-13 8 views
0

私は解決策を得るために2つの可能な方法があるかもしれません。リモートVPSデータベースにデータを書き込む

私はサードパーティアプリケーションを使用して毎日データをpandasデータフレームにダウンロードし、それをローカルのpostgresデータベースに書き込みます。データフレームは大きいですが、データベースがローカルなので、私は単にdf.to_sqlを使用して、ほんの数秒で完了します。

問題は、リモートのLinuxサーバー(VPS)にデータベースを移動したことです。 to_sqlも同じように1時間以上かかります。私はchunksizeの様々な値を試しましたが、それはあまり役に立ちません。

サードパーティ製のアプリケーションをリモートサーバーにインストールするだけでも問題はありませんが、サーバーOSはGUIを使用しません。 GUIを必要とするにもかかわらず、サードパーティのアプリケーションをサーバー上で実行する方法はありますか? (注意:それはWindowsアプリケーションなので、ローカルのLinuxマシンでワインを実行するためにワインを使用し、おそらくサーバー上でワインを実行する必要があります)。

VPSでGUIが必要なアプリケーションを実行する方法がない場合、ローカルマシンからこれらのデータフレームをVPSに書き込むにはどうすればよいですか?私は、小さな部分にデータフレームを書き込む方法や、これにもっと適したものを使う方法があると願っています(to_sql)。

データフレームをcsvファイルに書き込み、ftpを使用してサーバーにアップロードし、サーバーに別のpythonスクリプトを実行してデータをdbに保存します。私はそれが動作すると思うが、それは確かに理想的ではない。

答えて

0

無数の可能な解決策を検討した後:

  • それはサードパーティ製のアプリにアクセスできるように、サーバーに自分のローカルマシンからポートを転送するためのトンネルを作成します。手動psycopg2を使用してサーバーに自分のローカルマシンからデータを挿入する代わりにpandas to_sql
  • サーバー
  • や他のいくつかの上で実行することができるサードパーティ製のアプリのためのドッキングウィンドウコンテナを作成するためにすべての私のpythonコードを変更
  • デッドエンドまたは理想的なソリューションよりも畳み込まないでください

最終的には、ワーストを使用してサードパーティ製のアプリケーションをサーバーにインストールするだけでしたが、-Xフラグを使用してsshをインストールするという方法でした。したがって、サーバー上で実行されている間に私のローカルマシン上のGUIにアクセスすることができます。

関連する問題