[Python-es] SQLAlchemy y bases de datos NoSQL

lasizoillo lasizoillo en gmail.com
Lun Nov 29 16:29:32 CET 2010


El día 29 de noviembre de 2010 13:25, Jose Caballero
<jcaballero.hep en gmail.com> escribió:
> Hola,
>
> después de hacer una búsqueda algo rápida en google me he encontrado con
> informaciones contradictorias. Más respuestas basadas en opiniones
> personales que otra cosa.
>
> Así que pregunto aquí.

No participo en el core de desarrollo aparte de que últimamente no
sigo mucho este desarrollo. Así que lo mismo van a ser opiniones
personales también.

>
> ¿Alguien sabe si en un futuro cercano SQLAlchemy podrá funcionar como ORM
> para bases de datos NoSQL como Google BigTable? ¿O quizás ya es posible?
> ¿Alguien tiene experiencia personal y desea compartir su opinión?
>

Para empezar, ahora no es posible:
http://www.sqlalchemy.org/docs/dialects/index.html

Otros orms como el de django tienen backends para bases de datos nosql:
http://www.allbuttonspressed.com/

Pero esto el caso de django es peculiar. El orm aparte de darte acceso
a los sistemas de persistencia se integra con el sistema de
formularios, administrador, ... Usar django sin eso hace perder
sentido al hecho de usar django. A mi personalmente me gusta más
SQLAlchemy que el orm de django, pero no le veo sentido a usar django
sin su orm y en conjunto mola bastante.

SQLAlchemy (notese el SQL en mayúsculas) no tiene acoplado medio
framework web, así que no le veo mucho sentido a hacer las extrañas
cosas que se hacen en las adaptaciones NoSQL al orm de django. No creo
que se implemente algo NoSQL jamás.

Lo que tampoco entiendo es que alguien pueda tener motivación en
correr un NoSQL a través de SQLAlchemy. ¿Es por algún tema de
compatibilidad? Con SQLAlchemy puedes hacer particionado vertical y
horizontal (dentro de unos límites), muchas bases de datos permiten
replicación y las posibles ganancias de velocidad de una NoSQL se
irian al traste al pasar por la complejidad de un orm.

Saludos:

Javi


Más información sobre la lista de distribución Python-es