Abbiamo lavorato sodo per elaborare un modello di database completo del nostro problema, e ora è il momento di iniziare la codifica. I nostri precedenti progetti hanno utilizzato query realizzate a mano costruite mediante manipolazione di stringhe.Python: interagire con il data warehouse complesso
Esiste la migliore/pratica standard per l'interfaccia tra Python e un layout di database complesso?
Ho valutato brevemente SQLAlchemy, SQLObject e Django-ORM, ma (potrei facilmente mancare qualcosa) sembrano sintonizzati per transazioni di tipo minuscolo web (OLTP), dove sto eseguendo analisi analitiche ad alto volume (OLAP) transazioni.
Alcune delle mie esigenze, che possono essere un po 'diverso dal solito:
- carico di grandi quantità di dati in tempi relativamente brevi
- aggiornamento/inserimento di piccole quantità di dati in modo rapido e semplice
- gestire un gran numero di righe facilmente (300 voci al minuto su 5 anni)
- consentire modifiche allo schema, per esigenze future
Scrivere queste query è facile, ma scrivere il codice per ottenere i dati allineati è noioso, specialmente con lo sviluppo dello schema. Questo sembra qualcosa a cui un computer potrebbe essere bravo?
Aggiungo questo come commento, ma in genere gli ORM vengono utilizzati per OLTP e tentare di eseguire il pattinamento in un magazzino dati è di solito più difficile di quanto valga. – nos
Mentre gli ORM possono essere utilizzati per gli OLTP, possono anche semplificare alcuni tipi di elaborazione del data warehouse. La maggior parte delle query DW ** dovrebbero ** essere semplici operazioni 'seleziona somma/conteggio e raggruppamento '. Avere questi generati da uno strumento ORM può essere un grande risparmio di tempo. –
Le query verranno generate dagli utenti finali? Quale interfaccia stai fornendo e quali livelli di libertà? – shmichael