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