2016-08-13 3 views
0

Я использую Mac Yosemite. Я установил пакеты postgresql, psycopg2 и simplejson, используя conda, чтобы установить «имя пакета». После установки я импортировал эти пакеты. Я пытался создать файл в формате JSON с моей Амазонкой учетных красных смещенийКак подключить ноутбук 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()) 

Но это бросает ошибку. Это были инструкции, приведенные на веб-сайте. Я пробовал искать другие сайты, но ни один сайт не дает хорошего объяснения.

Пожалуйста, дайте мне знать, как я могу подключить Jupyter к красному смещению амазонки.

+0

Вы открыли группу безопасности на кластере, чтобы соединение с вашего 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]:

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

В [2]:

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;