2016-12-13 3 views
0

솔루션을 얻는 데는 두 가지 방법이있을 수 있습니다.원격 VPS 데이터베이스에 데이터 쓰기

타사 응용 프로그램을 사용하여 매일 데이터를 pandas 데이터 프레임으로 다운로드 한 다음 로컬 postgres 데이터베이스에 기록합니다. 데이터 프레임은 크지 만 데이터베이스가 로컬이므로 간단히 df.to_sql을 사용하면 몇 초 만에 완료됩니다.

문제는 이제 데이터베이스를 원격 Linux 서버 (VPS)로 옮겼습니다. to_sql도 이제 1 시간 이상 걸립니다. chunksize에 대한 다양한 값을 시도했지만 그다지 도움이되지 않습니다.

단순히 원격 서버에 타사 응용 프로그램을 설치할 수는 있지만 서버 OS는 GUI를 사용하지 않는 경우 문제가되지 않습니다. GUI가 필요한 경우에도 서버에서 타사 응용 프로그램을 실행할 수 있습니까? (참고 : Windows 응용 프로그램이므로 와인을 로컬 리눅스 컴퓨터에서 실행하고 아마 서버에서도 그렇게해야 할 것입니다).

VPS에서 GUI가 필요한 해당 응용 프로그램을 실행할 방법이 없다면이 데이터 프레임을 로컬 컴퓨터의 VPS에 1 시간 이상 걸리지 않는 방식으로 쓰려면 어떻게해야합니까? 나는 더 작은 조각으로 데이터 프레임을 작성하거나 이것에 더 적합한 to_sql 이외의 다른 것을 사용하는 몇 가지 방법이 있기를 바라고 있습니다.

정말로 clunky하고 세련되지 않은 솔루션은 csv 파일에 데이터 프레임을 작성하고 ftp를 사용하여 서버에 업로드 한 다음 서버에서 별도의 파이썬 스크립트를 실행하여 데이터를 db에 저장하는 것입니다. 나는 그것이 효과가있을 것이라고 생각하지만 확실히 이상적이지는 않습니다.

답변

0

수많은 가능한 솔루션을 조사 후 :

  • 는 제 3 자 응용 프로그램에 액세스 할 수 있도록 서버에 내 로컬 컴퓨터에서 포트를 전달하는 터널을 만들기. 수동으로 서버
  • 및 다른 여러에서 실행할 수있는 제 3 자 응용 프로그램에 대한 고정 표시기 컨테이너를 생성하는 대신 pandas to_sql
  • psycopg2를 사용하여 서버에 내 로컬 컴퓨터에서 데이터를 삽입 할 내 모든 파이썬 코드를 수정
  • 막 다른 길이나 이상적인 솔루션보다 덜 복잡하다

결국 해결책은 와인을 사용하여 서버에 타사 앱을 설치하는 것이었지만 -X 플래그를 사용하여 ssh로 간단히 설치했다. 따라서 서버에서 실행되는 동안 로컬 시스템의 GUI에 액세스 할 수 있습니다.