주피터 노트북에서 SQL 커리를 사용하면서 불편했던 점이 한 가지 있었습니다. SELECT
문을 사용해 데이터를 조회하더라도 결과를 바로 볼 수 없고 결과를 출력하는 코드를 별도로 작성해줘야 한다는 것이었습니다.
이러한 불편함을 해소할 수 있는 방법이 있는데 매직 커맨드 %load_ext sql
를 사용하는 것입니다. 이 매직 커맨드는 SQL 쿼리를 간결하게 작성하고 실행 결과를 직관적으로 표시할 수 있게 해줍니다.
이 글에서는 %load_ext sql
매직 커맨드를 주피터 노트북에서 사용하기 위해 제가 찾아본 것들을 정리하도록 하겠습니다. 먼저 필요한 패키지들과 설치 방법을 살펴보고, 데이터베이스 연결을 위한 환경 설정 방법을 설명할 것입니다. 마지막으로, 실제 사용 예시를 통해 이 매직 커맨드의 사용 방법과 그 이점을 보여드리겠습니다.
주피터 노트북에서 %load_ext sql
매직 커맨드를 사용하기 위해서는 몇 가지 필수 패키지가 필요합니다.
ipython-sql: 이 패키지는 SQL 매직 커맨드를 주피터 노트북에 통합합니다. %load_ext sql
매직 커맨드를 활성화하는 데 필수적입니다.
설치 명령어:
!pip install ipython-sql
SQLAlchemy: SQLAlchemy는 Python에서 SQL 데이터베이스를 다루기 위한 라이브러리입니다. 이 라이브러리를 통해 다양한 유형의 데이터베이스와 연결할 수 있습니다.
다만 주의할 점은 1.4 이하 버전으로 설치하는 것이 좋습니다. 최신 버전의 경우, 매직 커맨드 사용과정에서 문제가 발생할 수 있습니다. 저는 db연결과정에서 어려움을 겪었고, sqlalchemy 재설치를 통해 문제를 해결할 수 있었습니다.
설치 명령어:
!pip install "sqlalchemy<1.4"
데이터베이스 드라이버: 사용하는 데이터베이스에 따라 적절한 드라이버를 설치해야 합니다. 예를 들어, MySQL을 사용한다면 pymysql
이 필요합니다.
설치 명령어:
!pip install pymysql
설치한 패키지를 사용하여 주피터 노트북에서 %load_ext sql
매직 커맨드를 활성화하고 데이터베이스와 연결하는 방법은 다음과 같습니다:
매직 커맨드 활성화:
%load_ext sql
데이터베이스 연결:
dialect+driver://username:password@host:port/database
%sql mysql+pymysql://아이디:패스워드@localhost:3306/데이터베이스?charset=utf8mb4
환경 설정이 완료되면, 주피터 노트북에서 %load_ext sql
매직 커맨드를 사용하여 SQL 쿼리를 실행할 수 있습니다.
SQL 쿼리 실행:
%sql SHOW databases;
%sql
매직 커맨드를 사용하면 결과가 바로 주피터 노트북의 셀에 표시됩니다.