db 통신 라이브러리 사용에 궁금한 부분이 있습니다.
104
작성한 질문수 7
안녕하세요 강사님! 강의 잘 보고 있습니다! 다름이 아니라 개인적으로 공부를 하면서 db와의 통신 부분에서 궁금한 부분이 생겨서 질문드립니다!
에어플로우를 공부하면서 mysql 컨테이너도 함께 띄워서 db와의 통신을 공부하고 있고, 현재 db에 접속해서 저장된 데이터를 불러오고, 새로운 데이터를 insert하는 실습을 하고 있습니다.
몇몇 소스 코드를 보면 데이터를 불러오기 위해서 db와 연결하거나, db의 데이터를 조회할 때는 psycopg2나 pymysql과 같은 라이브러리를 사용하고, 수집 후 전처리된 데이터를 저장 할 때는 SQLAlchemy를 사용하는 코드들을 많이 봤는데, 이렇게 작업에 따라서 다른 라이브러리를 사용하는 이유를 알 수 있을까요??
제가 알기로는 psycopg2나 pymysql, SQLAlchemy 모두 데이터 조회, 저장 기능을 전부 사용가능한걸로 아는데 어떤 이유에서 작업별로 다른 라이브러리를 사용하는지 궁금합니다!
답변 1
2
안녕하세요 이한희님!
먼저 강의를 잘 듣고 추가적인 실습환경도 만들어서 하신다니 잘 하고 계신 듯 합니다!
질문주신 라이브러리 같은 경우 테이블 형식의 데이터를 다루는 경우 파이썬에서는 pandas 라이브러리를 많이 사용하는데, pandas 그 자체를 받아서 DB에 넣을 수 있는 라이브러리는 SQLAlchemy만 가능하빈다.
psycopg2나 pymysql같은 경우 pandas 데이터프레임 그 자체를 파라미터로 받아서 넣을 수는 없어요. (row 하나씩 분해해서 데이터를 만든 후 insert 하는 방법을 사용해야 함)
저 같은 경우 pandas 데이터프레임을 쉽게 넣고, 조회하고자 할 경우 주로 SQLAlchemy를 사용하고 그 외에는 대체로 psycopg2 같은 라이브러리를 사용하곤 합니다.
참고로 psycopg2, pymysql 같은 경우 각각 postgres, mysql 전용 라이브러리이고, 해당 데이터베이스에 대해서는 SQLAlchemy 보다는 많은 기능을 지원하는 걸로 알아요.
그래서 postgres나 mysql 전용으로 좀 더 전문적으로 다루고자 할 경우 psycopg2, pymysql
DB 범용적으로 좀 더 쉽게 사용하고자 할 경우 SQLAlchemy 를 사용한다고 보심 될 것 같습니다.
pykrx 회원제 전환으로 인한 실습 불가
0
114
2
수료증 발급
0
84
3
에러 발생 관련 질문드립니다.
0
83
2
vscode 작업화면에 오류가 발생하지 않습니다.
0
69
2
plugins 폴더 생성
0
75
2
WSL에서 git push 가 안되요 ㅠ
0
114
2
chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.
0
66
2
github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ
0
732
2
설치중인데 venv를 꼭 써야할까요?
0
126
2
설치 버전 관련 질문입니다.
0
68
1
우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?
0
62
1
DAG 만들기 중 airflow 패키지 로드 에러
0
106
2
3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!
0
95
3
task_id 사용법이 뭔가 바뀐 것 같습니다.
0
76
3
email operator 오류 관련
0
66
2
plugins 폴더 관련
0
100
2
bash operator 관련 문의입니다
0
78
3
스케쥴러 - DAG 파싱 부하 줄이는 과정 질문
0
79
2
Dags refresh 주기 관련 질문
0
125
2
wsl 관련 질문입니다.!
0
74
2
macOS에서 docker 설치
0
94
2
템플릿 변수에 대한 오류
0
61
2
custom_image 디렉토리 문의드립니다.
0
54
2
ETL 인터뷰 관련 문의
0
103
2





