개요
기존에 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 쿼리를 주피터 노트북에서 사용하기 위한 매직커맨드