psycopg2란?
PostgreSQL 전용 Python과 연결을 지원하는 라이브러리
다중 스레드와 대량 데이터 처리 지원
psycopg2 주요 기능
- 트랜잭션 관리 commit(), rollback()
- SQL 실행 execute(), executemany()를 사용해 쿼리 실행하고 데이터 삽입 조회
- 결과 처리 fetchone(), fetchall()로 쿼리 결과 가져옴
pip install psycopg2
conn (connection 객체)
conn은 psycopg2.connet() 호출로 반환된 객체
connection 생성해서 PostgreSQL 데이터베이스 연결후 관련 메소드 사용해서 SQL 실행
import psycopg2
# conn 객체 생성 (PostgreSQL과 연결)
conn = psycopg2.connect(
dbname="dbname",
user="user",
password="password",
host="host",
port=5439
)
- conn.cursor()
- SQL 실행을 위한 커서 객체 반환
- 생성된 커서를 통해 SQL문을 실행하거나 결과를 가져옴
# 커서 생성
cur = conn.cursor()
# SQL 실행
cur.execute("SELECT * FROM example;")
- conn.commit()
- 현재 트랙잭션의 변경 사항을 영구적으로 저장(autocommit=True, 변경사항 즉시 적용)
- autocommit=False 라면, 데이터베이스에 변경 사항 적용시 명시적으로 호출 필요
- conn.rollback()
- 현재 트랜잭션을 롤백하여 변경사항 취소
- autocommit=False일때 사용
- conn.close()
- 데이터베이스 연결 닫기
- 모든 작업이 완료되면 호출하기
- conn.set_session()
- 세션 속성을 설정
- autocommit 여부 등
- conn.isolation_level
- 트랜잭션의 격리 수준 설정
- READ COMMITTED, SERIALIZABLE 등
- conn.poll()
- 연결 상태 반환
- 비동기 작업에서 유용
- conn.info
- 연결에 대한 정보를 담고 있는 객체
'데브코스 데이터엔지니어링' 카테고리의 다른 글
| [SQL] 테이블 레코드 삭제 delete from vs. truncate 차이 (1) | 2024.12.28 |
|---|---|
| [Airflow] Full Refresh ETL 작성시 고려사항 (0) | 2024.12.28 |
| [Airflow] Apache Airflow PythonOperator 사용하기 (1) | 2024.12.27 |
| [Airflow] 도커 airflow 웹서버 포트 에러 (0) | 2024.12.27 |
| [Aiflow] 도커 기반 Aiflow에서 태스크 실행-DAG 코드 기본 구조 (2) | 2024.12.27 |