Hemos trabajado duro para desarrollar un modelo de base de datos de nuestro problema, y ahora es el momento de comenzar a codificar. Nuestros proyectos anteriores han utilizado consultas hechas a mano construidas por manipulación de cadenas.Python: interactuar con el almacén de datos complejo
¿Existe alguna práctica mejor/estándar para la interfaz entre python y un diseño de base de datos complejo?
me he evaluado brevemente SQLAlchemy, SQLObject, y Django-ORM, pero (yo pueda fácilmente estar perdiendo algo) que parecen estar sintonizados para la pequeña de tipo web (OLTP) las transacciones, donde estoy haciendo alto volumen analítica (OLAP) transacciones.
Algunos de mis necesidades, que pueden ser algo diferente de lo habitual:
- de carga de grandes cantidades de datos relativamente rápidamente
- actualizar/insertar pequeñas cantidades de datos de forma rápida y fácil
- manejar un gran número de filas fácilmente (300 entradas por minuto durante 5 años)
- permiten modificaciones en el esquema, para requisitos futuros
Escribir estas consultas es fácil, pero escribir el código para alinear todos los datos es tedioso, especialmente a medida que el esquema evoluciona. Esto parece algo en lo que una computadora puede ser buena?
Agregaré esto como un comentario, pero normalmente los ORM se usan para OLTP, y tratar de calzarlos para mapear un almacén de datos suele ser más problemático de lo que vale. – nos
Aunque los ORM se pueden usar para OLTP, también pueden simplificar ciertos tipos de procesamiento de depósito de datos. La mayoría de las consultas de DW ** deberían ** ser simples 'seleccionar operaciones de suma/conteo y de agrupamiento por'. Tener estos generados por una herramienta ORM puede ser un gran ahorro de tiempo. –
¿Los usuarios finales van a generar consultas? ¿Qué interfaz está proporcionando y qué niveles de libertad? – shmichael