Positive-Influence-Data

[Psycopg2] Postgresql 파이썬으로 접근 본문

Library

[Psycopg2] Postgresql 파이썬으로 접근

DS쟁이 2025. 3. 26. 14:23

업무를 하다 보면 데이터를 핸들링해야 하고 이를 시각화 및 ML/DL을 해야 할 때가 있다. 특히 실시간으로 쌓이는 데이터를 다뤄야 할 때는 고정된 CSV의 데이터보다 DB에 접근해서 처리해야 하는 경우가 많다.

 

물론 요즘에 클라우드 기반인 회사 및 프로덕트가 많아서 클라우드 위에서 뭔가를 하는 경우가 많지만 필자의 회사는 서버 위에서 작업을 하고 있다. 그래서 실시간으로 데이터를 전처리 해야 하고 이를 ML/DL 작업을 하기 위해서 DB 접근이 필수적이다. 

파이썬으로 DB를 붙여서 데이터를 핸들링하자

 

필자의 회사는 Postgre를 사용 중이다. 파이썬 라이브러리 중에 Psycopg2라는 라이브러리가 있다.

이것을 활용해서 PostgreDB에 접근하고 파이썬 위에서 데이터를 핸들링해 보겠다.

 

□ Psycopg2 설치

pip install psycopg2

 

pip install을 활용하여 psycopg2를 설치할 수 있다. 

 

 

 Psycopg2 사용법

import psycopg2

# 데이터베이스 연결
conn = psycopg2.connect(
    dbname="your_db",
    user="your_user",
    password="your_password",
    host="localhost",
    port="5432"
)

# 커서 생성
cur = conn.cursor()

# SQL 실행
cur.execute("SELECT * FROM your_table;")

# 결과 출력
rows = cur.fetchall()
for row in rows:
    print(row)

# 커서 및 연결 종료
cur.close()
conn.close()

 

기본적으로 데이터베이스를 psycopg2랑 연결해서 사용하게 되는데 execute를 활용해서 SQL문을 작성하면 된다.

 

보통 데이터 사이언스, 데이터 분석을 하는 사람들은 조회기능을 가장 많이 사용할 것이다.
조회를 위의 코드를 활용하면 업무에 사용하는데 충분할 거 같다.

 

  

 

Tip

 

필자가 사용해보았을때 ML/DL모델링, 대규모 데이터 핸들링, 통계분석 및 시각화를 해야 하는 경우가 아니라면 SQL로 데이터 전처리는 해서 파이썬에 올리는 것을 추천한다.

 

DB에서 전처리하는 것이 더 빠르기도하고 Raw 데이터를 가져와서 Pandas로 전처리하게 되면 리소스, 시간이 더 잡아먹는 것을 확인했다.

 

필자의 경우도 Pandas로 전처리 하는것이 편해서 그렇게 했었는데 데이터의 규모가 커지면 데이터를 가져오데 시간을 많이 할애하게 되어서 요즘에는 SQL문으로 전처리를 하고 가져오는 편이다.

 

 

자세한 건 공식문서를 보자.

 

Psycopg – PostgreSQL database adapter for Python — Psycopg 2.9.10 documentation

 

www.psycopg.org

 

'Library' 카테고리의 다른 글

[Report Lab] Python PDF 생성  (0) 2025.02.20
Comments