2014-07-17 14 views
5

Ho bisogno di lavorare su alcuni dati che sono memorizzati in un server Amazon Redshift. Dato che conosco molto bene Django, sto pensando di usarlo a livello di applicazione.Redshift DB backend per Django

Ma non riesco a capire come connettersi a Redshift e recuperare i dati. Ho solo esperienza con la connessione ai server MySQL locali e lavoro.

Quindi questo sembra essere la mia unica opzione:

https://github.com/binarydud/django-redshift: un database back-end Redshift per Django. Ma non sono sicuro della sua stabilità e odio dover incorrere in seri problemi dopo, quindi sono un po 'scettico su questo.

Un'altra opzione potrebbe essere (correggetemi se sbaglio), che io uso questo: https://github.com/lionheart/django-pyodbc/

Dal Redshift supporta connessioni ODBC, questo dovrebbe funzionare bene? Il Django ORM funzionerà normalmente? Qualche problema che puoi prevedere?

Mi piacerebbe avere un'idea della mia situazione da qualcuno più esperto di Django. Molte grazie!

risposta

10

l'interfaccia di Redshift è costruito per capire PostgreSQL 8.0.2: http://docs.aws.amazon.com/redshift/latest/dg/c_redshift-and-postgres-sql.html

Così, per la lettura dei dati da PostgreSQL di Redshift Django, un progetto in corso su cui sto lavorando solo usa il Django 'psycopg2' back-end. Questo è dalle impostazioni:

DATABASES = { 
    'default': { 
     'NAME': '[cluster name]', 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'USER': '[your user]', 
     'PASSWORD': '[your pw]', 
     'HOST': '[path to your cluster].redshift.amazonaws.com', 
     'PORT': 5439, 
    }, 
} 

Maggiori informazioni sulla connessione è qui - http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-in-code.html - ma è solo per Java e .NET in questo momento.

L'ORM dovrebbe funzionare normalmente per la maggior parte delle query, anche se non saranno ottimizzate per Redshift, quindi tieni d'occhio quante query stai emettendo, perché le query lente inviate inutilmente molte volte in una singola vista non sono buono.

+0

Io uso PyGreSQL e il suo stato buono finora .. ecco un esempio dell'uso def getConnection(): con = pg.connect ("nome_database", "host", int (porto), "opt", " tty "," user "," password ") conteggio di ritorno –

Problemi correlati