티스토리 뷰
DBeaver로 PostgreSQL 연결하고 .csv 데이터 업로드하기(feat.ElephantSQL, python)
eℓlie 2022. 6. 3. 22:49오늘은 .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
'공부 > Data Science' 카테고리의 다른 글
데이터 사이언티스트/데이터 분석가 커리어를 위해서 무엇부터 준비해야 할까? & 필수 기술! (0) | 2022.06.10 |
---|---|
구글 코랩에서 셀레니움을 사용하려는데 잘 되지 않아요 (0) | 2022.06.06 |
Object Detection: YOLO(1) (0) | 2022.02.10 |
28회 ADsP: 국가공인 데이터분석 준전문가에 합격했다! (0) | 2021.04.09 |
R Computing DAY 2: 데이터의 입력과 저장 (0) | 2021.04.01 |
- Total
- Today
- Yesterday
- data annotation
- 데이터과학
- 깃허브
- 이자포스터디
- 빅데이터분석기사
- ADsP
- 개발자포트폴리오
- 코테공부
- 커리어코칭
- Notion2Tistory
- 인공지능
- googlecolab
- 데이터준전문가합격후기
- 빅데이터
- 자격증
- 이력서
- github
- ADsP합격후기
- ai부트캠프
- 자버
- Kaggle
- 코드스테이츠
- 빅분기합격
- 취업준비
- 데이터준전문가
- todayIlearned
- Til
- 빅분기
- 데이터분석
- 빅분기후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |