2016-08-13 7 views
0

Mac Yosemite를 사용하고 있습니다. conda install "package name"을 사용하여 postgresql, psycopg2 및 simplejson 패키지를 설치했습니다. 설치 후이 패키지를 가져 왔습니다. 나는Jupyter Ipython 노트북을 Amazon redshift에 연결하는 방법

{ 
    "user_name": "YOUR USER NAME", 
    "password": "YOUR PASSWORD", 
    "host_name": "YOUR HOST NAME", 
    "port_num": "5439", 
    "db_name": "YOUR DATABASE NAME" 
} 

내가

open("Credentials.json") as fh: 
    creds = simplejson.loads(fh.read()) 

사용하지만이 오류를 던지고 내 아마존 적색 편이 자격 증명이있는 JSON 파일을 만들려고. 이것들은 웹 사이트에 주어진 지시 사항입니다. 나는 다른 웹 사이트를 검색해 보았으나 어떤 사이트도 좋은 설명을 제공하지 못했다.

Jupyter를 아마존 레드 쉬프트에 연결할 수있는 방법을 알려주십시오. 여기

+0

는 클러스터에 보안 그룹을 열나요 허용하는 [2]에서

import sqlalchemy import psycopg2 import simplejson %load_ext sql %config SqlMagic.displaylimit = 10 

당신의 IP 주소로부터의 연결? – Guy

+0

* 어떤 오류가 발생합니까? –

답변

1

내가 그것을 할 방법은 다음과 같습니다

----INSERT IN CELL 1----- 
import psycopg2 
redshift_endpoint = "<add your endpoint>" 
redshift_user = "<add your user>" 
redshift_pass = "<add your password>" 
port = <your port> 
dbname = "<your db name>" 

----INSERT IN CELL 2----- 
from sqlalchemy import create_engine 
from sqlalchemy import text 
engine_string = "postgresql+psycopg2://%s:%[email protected]%s:%d/%s" \ 
% (redshift_user, redshift_pass, redshift_endpoint, port, dbname) 
engine = create_engine(engine_string) 

----INSERT IN CELL 3 - THIS EXAMPLE WILL GET ALL TABLES FROM YOUR DATABASE----- 
sql = """ 
select schemaname, tablename from pg_tables order by schemaname, tablename; 
""" 

----LOAD RESULTS AS TUPLES TO A LIST----- 
tables = [] 
output = engine.execute(sql) 
for row in output: 
    tables.append(row) 
tables 

--IF YOU'RE USING PANDAS--- 
raw_data = pd.read_sql_query(text(sql), engine) 
0

여기 RJMetrics에서 좋은 가이드있다 : "Setting up Your Analytics Stack with Jupyter Notebook & AWS Redshift". 그것은 사용 ipython-sql

이것은 위대한 작품과 격자에 결과를 표시합니다.

에서 [1]에서

with open("./my_db.creds") as fh: 
    creds = simplejson.loads(fh.read()) 

connect_to_db = 'postgresql+psycopg2://' + \ 
       creds['user_name'] + ':' + creds['password'] + '@' + \ 
       creds['host_name'] + ':' + creds['port_num'] + '/' + creds['db_name']; 
%sql $connect_to_db 

[3] :

% sql SELECT * FROM my_table LIMIT 25; 
관련 문제