Python

[Jupyter] ipython-sql - 노트북에서 SQL 사용하기

비번변경 2024. 4. 15. 16:53

개요

기존에 JupyterLab에서 jupyterlab-sql이라는 확장 프로그램을 사용해서 데이터베이스 작업을 수행했었다.

하지만 jupyterlab-sql이 유지보수가 되지 않고 있어 더 이상 최신 버전의 JupyterLab에서 사용할 수 없게 되었다…….

마땅히 대체할 확장 프로그램이 없어 노트북 환경에서 SQL을 다룰 때 일반적으로 사용하는 ipython-sql을 사용하는 방법을 정리한다.

 

 

ipython-sql

ipython-sql은 SQLAlchemy를 사용해 데이터베이스에 연결한 뒤 IPython 또는 IPython Notebook에서 SQL 명령을 실행할 수 있게 해 준다.

%sql 또는 %%sql 명령어로 사용할 수 있다.

 

참고로 ipython-sql은 jupySQL로 옮겨졌다고 한다. 해당 내용을 이 글을 마저 다 작성한 뒤에 발견했으므로😂…… 이 글에서는 그냥 ipython-sql에 대해서 다룬다. 라이브러리 설치 부분을 제외한 사용법에서의 차이점은 없다.

 

 

설치

pip 등으로 ipython-sql을 설치한다.

pip install ipython-sql

노트북에서 설치를 수행하고 싶다면 명령어 앞에 !을 붙여 실행한다.

! pip install ipython-sql

 

 

확장 프로그램 로드

설치한 확장 프로그램을 로드한다.

%load_ext sql

 

 

데이터베이스 연결

ipython-sql을 사용할 때는 sql을 매직 명령어로 사용한다.

데이터베이스에 연결할 때는 %sql 명령어 뒤에 연결할 데이터베이스 접속 정보를 기재하여 실행한다. 

%sql dialect+driver://username:password@host:port/database

# 예시
%sql mysql://USER:PASSWD@mysql.pcc.svc.cluster.local:3306/DB_NAME
%sql mysql+pymysql://USER:PASSWD@mysql.pcc.svc.cluster.local:3306/DB_NAME

참고로 데이터베이스 엔진에 따라 접속에 사용할 드라이버도 별도로 설치해야 한다. 이 글에서는 pymysql을 사용했다.

 

 

쿼리 실행

쿼리를 실행할 때도 sql 매직 명령어를 사용하면 된다.

%sql SHOW databases

 

 

참고 문서

https://pypi.org/project/ipython-sql/

SQL 쿼리를 주피터 노트북에서 사용하기 위한 매직커맨드

 

 

728x90