Pythonを使ってRedshiftのデータを加工、分析、表示するコードを書いています。
DBから取得したデータをpandasのDataFrameに入れていろいろと触る方針です。
PythonからRedshiftに接続する方法を調べていて、psycopg2を使って接続、SQLを実行する方法は確立したのですが、SQLAlchemyをかませてcreate_engineしてから接続する方法を紹介しているところが非常に多く、混乱しています。
psycopg2を使って直接接続すれば
python
import pandas as pd import psycopg2 as pg2 con= pg2.connect(host=server,database=db,port=dbport,user=username,password=userpass) as con: df=pd.read_sql(query,con) con.close()
のようなコードで済むところを、
python
from sqlalchemy create_engine import pandas as pd import numpy as np import psycopg2 as pg2 db_conf='postgresql+psycopg2://{user}:{passwd}@{host}:{port}/{dbname}'.format( user=username,passwd=userpass,host=server,port=dbport,dbname=db) engine=create_engine(db_conf) con=engine.connect() data=pd.read_sql(q,engine) con.close() engine.dispose()
上記のように一度SQLAlchemyでエンジンを作ってデータを取る方法を紹介しているのですが、変数も増えるしコードも長くなるしいいことがないように思えてなりません。
わざわざコードを冗長にしているからには相応の理由があると思うのですが、pythonスクリプトからSQLAlchemyを一度はさんでSQLに接続するメリット、使わなかった場合のデメリットとはなんでしょうか?
まだ回答がついていません
会員登録して回答してみよう