티스토리 뷰

오늘은 .csv 형식으로 추출해둔 데이터를 PostgreSQL DB에 올려보는 과정을 써보고자 한다. 

DBeaver 설치나 ElephantSQL 가입 등등은 어려울 게 없는데, 과정을 따라가다 보니 무슨 칸에 뭘 입력해야 되는지 은근히 헷갈려서 내가 잊어버리지 않기를 바라며 작성하는 포스팅이다. 

모든 과정은 무료 가입자 기준.

준비물: elephantSQL 계정, DBeaver, 파이썬 구동 환경(구글코랩 등)

 

먼저 ElephantSQL 홈페이지로 접속해서 프리 PostgreSQL DB를 하나 받고,

Details 메뉴를 눌러보면 내가 방금 받은 DB에 대한 데이터를 볼 수 있다.


위 스크린샷을 참고해 Server에 있는 긴 주소를 DBeaver의 Host에,

User and default database에 있는 id를 username/database에 그대로 입력해주자. 

Password는 그대로. post 같은 나머지 설정은 건드리지 않은 상태에서도 문제없이 연결 가능했다.

(나처럼 어디에 뭘 넣어야 되는지 당황하는 분이 없길 바라며 씀^^;)


적재할 데이터는 이미 .csv 파일로 추출해 둔 상황. 이제 파이썬으로 옮겨가서 업로드하기만 하면 된다.

나는 .csv 데이터를 만지던 도중이라 구글코랩에서 작업했다.

import pandas as pd
!pip install sqlalchemy
!pip install psycopg2-binary==2.8.6 

from sqlalchemy import create_engine
engine = create_engine('your_url') 
df.to_sql('tablename', engine)

#psycopg2-binary는 버전을 맞춰줘야 에러가 안 나더라.

#your_url은 details에서 password 아래에 있었던 긴 url을 넣으면 된다.

#tablename은 마음에 드는 아무 이름이나 넣으시면 됨. 덮어쓰기는 적용이 안 된다.

코드를 실행하고 나면 데이터가 제대로 잘 들어갔는지 확인해봐야 할 것이다.

다시 elephantSQL 페이지를 열어서 browser 메뉴를 눌러보면 쿼리문을 작성할 수 있는 폼이 보인다. 

우리는 적재된 전체 데이터를 보고 싶은 거니까 select * from tablename 이라고 입력하면 된다.

내가 넣은 데이터가 잘 뜨는 것을 볼 수 있었다.

참고로 말하자면 지금 작업하고 있는 것은 전국에 있는 실내·실외 인공암벽장 데이터이다.

최종적인 목표는 새 암벽장이 생길 때마다 웹 데이터를 긁어와서 자동으로 수집해 API를 만드는 거지만, 일단은 데이터베이스의 기본적인 틀을 구축해두려고 한다. 

토이 프로젝트를 완성하면 여기에도 링크를 추가하겠다. 


최초 작성 2022.04.13, 수정 2022.06.03