これはなに?
2020年11月にRedshiftのPythonドライバがOSSになったので使ってみた。
Redshiftから取得したデータをPandasのDataframeを使って分析することが多いので、取得してきたデータをDFに格納までしてみました。
やったこと
- amazon-redshift-python-driver のインストール(pip)
- RedshiftにSQLを発行し、データとカラムを取得
- 取得したデータとカラムをPandasのDataframeに格納、出力
手順
1. amazon-redshift-python-driverのインストール
基本的には、pipを使ってレポジトリからインストールできます。
pip install redshift_connector
↑が実行できない場合は、ドライバをローカルに落としてpipでインストールしてください。
git clone https://github.com/aws/amazon-redshift-python-driver.git cd redshift_connector pip install .
2. サンプルスクリプト
ドライバをインストールすれば、Pythonスクリプトでimportできるようになります。
information_schema.columnsからカラム情報を取得してくると2次元になってDFにしたときにカラムが崩れるので、itertools.chain.from_iterableを使って1次元に平坦化しています。
Redshiftへのコネクション(redshift_connector.connect)で最低限必要な項目は以下です。
項目 | 説明 |
---|---|
host_name | RedshiftのDNS名 |
db_name | DB名 |
db_user_name | DBユーザー名 |
db_user_password | DBユーザー パスワード |
その他、パラメータを指定したい場合は以下を参照してください。
GitHub - aws/amazon-redshift-python-driver: Redshift Python Connector. It supports Python Database API Specification v2.0.
動作確認
サンプルスクリプトを実行してみた結果です。pg_user テーブルをクエリしてその情報をDFに格納、出力できました。