이번 포스팅은 SQLAlchemy-HANA 튜토리얼입니다. SQLAlcemy는 Python ORM(Object Relational Mapping) Toolkit입니다. ORM은 Python의 Object와 데이터베이스의 테이블을 연결하는 기술을 의미하며, 파이썬에는 다양한 ORM Toolkit이 존재합니다. 이 포스팅에서는 ORM Toolkit 중 하나인 SQLAlchemy, 그리고 데이터베이스는 SAP 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
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를 볼 수 있다.