Dive into hoge

データ分析関連の備忘録

redshiftからデータ読み込んでpandasのデータフレームに入れる

まずはRedshiftに接続する。

import psycopg2
import redshift_sqlalchemy
from sqlalchemy import create_engine

engine = create_engine('{dialect}+{driver}://{user}:{pwd}@{url}:{port}/{db}'.format(
    dialect = 'redshift',
    driver = 'psycopg2',
    user='ユーザー名',
    pwd ='パスワード',
    url='Redshiftのクラスター画面のエンドポイント',
    port=ポート番号(エンドポイントの最後についてるかも),
    db='Redshiftのクラスター画面のデータベース名'
))

Redshift接続先設定がわからない場合は下記参照。
f:id:exotic_manifold:20171222183459p:plain

接続したらデータフレームにいれる。
ちなみにメモリに乗り切らない量だとエラーになるので、limitでいけそうなレコード数を少しずつ試していく。
(chunksizeという引数もあるけど結局メモリに乗り切らないとアウトだからこれでいいかなと思っている)

import pandas as pd
data = pd.read_sql_query('SELECT * FROM redshiftテーブル名 limit 100;', engine)


<下記は参考>
www.blendo.co

qiita.com