SQLAlchemy-HANA 시작하기

SQLAlchemy로 HANA 데이터베이스 사용하기.

Posted by Yeongseon Choe on March 15, 2020 · 2 mins read

SQLAlchemy-HANA 시작하기

들어가며

이번 포스팅은 SQLAlchemy-HANA 튜토리얼입니다. SQLAlcemy는 Python ORM(Object Relational Mapping) Toolkit입니다. ORM은 Python의 Object와 데이터베이스의 테이블을 연결하는 기술을 의미하며, 파이썬에는 다양한 ORM Toolkit이 존재합니다. 이 포스팅에서는 ORM Toolkit 중 하나인 SQLAlchemy, 그리고 데이터베이스는 SAP HANA를 사용하는 SQLAlchemy-HANA의 설치법, 그리고 간단한 사용 방법에 대해서 이야기 하겠습니다.

예상독자

  • SQLAlchemy를 사용해 보신 분
  • SQLAlchemy-HANA를 사용해 보고 싶은 분

SQLAlchemy-HANA 설치

파이썬 패키지 sqlalchemy-hana 설치

$ (venv) pip install sqlalchemy-hana


파이썬 패키지 hdbcli 설치

$ (venv) pip install hdbcli


설치가 완료되면 pip freeze 를 통해 패키지가 잘 설치 되어 있는지 확인해보자.

$ (venv) pip freeze
hdbcli==2.4.182
pkg-resources==0.0.0
SQLAlchemy==1.3.15
sqlalchemy-hana==0.4.0


HANA Database 접속

SQLAlchemy를 사용해 HANA에 접속하기 위해서는 먼저 Engine을 생성해야 한다.

create_engine(Database Urls)을 통해서 Engine object를 생성한다.

여기에서 Database Urls는 username, password, hostname, database name 등을 포함한다.

from sqlalchemy import create_engine
engine = create_engine(“hana+hdbcli://username:password@host:port”, echo=True)


다음 파이썬 코드는 HANA database에 connection을 테스트 한 것이다.

# sqlalchmey-hana-connection.py
from sqlalchemy import create_engine

engine = create_engine("hana+hdbcli://SYSTEM:HXEHana1@127.0.0.1:39017", echo=True)
connection = engine.connect()                                                          rs = connection.execute("SELECT 'Hello Python World' FROM DUMMY")                                                                                                             

for row in rs:                                                                             	print(row)


위 코드를 실행하면 다음과 같은 결과를 볼 수 있다.

$ (venv) python sqlalchemy-hana-connection.py
2020-03-15 22:18:45,215 INFO sqlalchemy.engine.base.Engine SELECT 'Hello Python World'
FROM DUMMY
2020-03-15 22:18:45,215 INFO sqlalchemy.engine.base.Engine ()
('Hello Python World',)
Note: echo=True을 주면 위와 같이 statement log를 볼 수 있다.

마치며

이번 포스팅에서는 간단히 SQLAlchemy-hana 설치법과 데이터베이스에 접속하는 방법을 살펴보았다.

참고자료