파이썬 sqlalchemy, postgresql, pandas

Jay
2 min readApr 20, 2020

--

Sqlite3의 단점

sqlite3의 장점은 바로 가벼우면서도 많은 기본들이 내장되어 지원되므로 별도의 설치가 필요없이 파이썬만 있으면 바로 사용가능하지만, 가장 치명적인 약점 중 하나는 db가 파일 시스템이기에 동시성제어가 매우 취약하다.

동시성제어는 예를 들어 방대한 양의 데이터를 인터넷에서 여러 쓰레드를 이용하여 다운받고 저장하는 경우, 여러개의 쓰레드가 데이터베이스에 동시다발적인 접근을 하게된다. 이때 sqlite3는 데이터를 삽입하거나 읽는 중에 다른 프로세스(쓰레드)가 접근하는것을 방지하는 Lock을 걸게된다. 이는 동시다발적인 데이터베이스 접근 및 처리가 어려워지게 된다.

따라서, 이러한 동시성제어를 가능하게 하기 위하여 sqlite3가아니라 postgresql을 다운받아서 해보기로했다.

Postgresql의 설치

여기서 다운받고 설치한 뒤, 서버 및 데이터베이스를 생성한다.

파이썬에선 sqlalchemy로 postgresql접근

pip install sqlachemy

일단 psycopg2 라이브러리도 있지만, 생각보다 pandas와 호환이 좋지 못하다. 따라서 sqlalchemy를 사용

파이썬에서 sqlalchemy로 postgresql 쓰기/읽기

--

--

Jay
Jay

Written by Jay

Brain Neural Network : Where neuroscience meets machine learning

No responses yet