파이썬

jupyter lab에서 ipython-sql로 DB 접속하기(SQL Server, MySQL, postgreSQL)

박범준2 2021. 8. 25. 18:39
반응형

안녕하세요. 

주피터 노트북 혹은 주피터랩에서 DB에 바로 접속하는 방법입니다.

 

 

보통 파이썬으로 DB에 있는 데이터를 가공하거나 분석할 때, csv 등으로 데이터를 다운로드한 후 파이썬으로 불러서 사용합니다.

ipython-sql 라이브러리를 사용하면, 주피터에서 DB에 바로 접근할 수 있습니다.

주피터에서 DB에 바로 접속

1. 라이브러리를 설치합니다.

pip install ipython-sql

 

2. 데이터베이스용 드라이버 라이브러리를 설치합니다. 접속하려는 DB에 해당하는 라이브러리를 설치하시면 됩니다. 

ex. SQL server의 DB에 접속하려면 pyodbc를 설치하시면 됩니다.

# sql server
pip install pyodbc

# PostgreSQL 
pip install pyscopg2

# MySQL
pip install PyMySQL

 

3. 노트북에서 매직명령어로 익스텐션을 로드합니다.

4. 접속하려는 DB에 해당하는 코드로, DB에 연결합니다.

# SQL Server
%sql mssql+pyodbc://user_name:password@host:port_number/db

# PostgreSQL
%sql postgresql://user_name:password@host:port_number/db
            
# MySQL
%sql mysql://user_name:password@host:port_number/db

SQL Server 접속 예시

그런데, 저는 SQL Server에 접속할 때 아래와 같은 오류가 발생했습니다.

찾아보니, DB이름 뒤에 ?driver=ODBC+Driver+17+for+SQL+Server 를 추가하면 해결할 수 있었습니다.

 

5. 연결이 되었다면 매직명령어와 함께 쿼리를 작성합니다.

쿼리 예시

6. 쿼리 결과를 판다스 데이터프레임으로 사용하려면, <<를 사용하면 됩니다.


주피터 환경에서 DB에 직접 연결하는 방법이었습니다.

 

감사합니다.

 

참고1:
https://medium.com/trendyol-tech/self-service-health-check-reports-for-sql-server-and-postgresql-with-jupyter-notebook-d992d9d3b4d7

참고2:
https://towardsdatascience.com/heres-how-to-run-sql-in-jupyter-notebooks-f26eb90f3259

 

반응형