JDBC desde CPython

Chema Cortés py en ch3m4.org
Mie Abr 19 02:59:13 CEST 2006


Estoy configurando un cluster de servidores linux como repositorio 
centralizado de datos recopilados de SGBDs de diversa índole (oracle, 
informix, mysql, caché,...), con varias versiones diferentes de cada uno. Los 
módulos python de acceso no funcionan bien del todo para según qué versiones, 
exigiendo, algunos de ellos, la instalación de la parte cliente para obtener 
las diferentes librerías de acceso, algo que dificulta la mantenibilidad.

La opción de usar ODBC la he descartado en linux ya que no parece que funcione 
bien, ni tampoco que exista drivers odbc para todos los SGBDs que necesito 
(aunque tampoco me ha dado por indagar mucho).

La única alternativa que me queda es utilizar jdbc, tecnología java que ya 
estoy usando a través de servidores tomcat en estos servidores. Mi duda está 
en la forma de conectar python y jdbc.

Estas son mis alternativas (en orden de plausibilidad) :

1) usar jython : es lo más directo y sencillo, pero no estoy seguro de querer 
pasar toda la programación de python a jython. Puede que añada más adelante 
alguna aplicación web de explotación de datos hecha en turbogears o zope, por 
lo que debo descartar una aplicación 100% jython. Podría emplear jython 
sólamente como lenguaje de scripts para traer los datos e introducirlos en 
algún servidor único (oracle o postgresql) al que accedería el resto de 
aplicaciones. Me falta montar algún mecanismo para pasar información entre 
python y jython (al estilo xmlrpc).

2) usar pyjdbc: a través de este cliente/servidor un cliente hecho en python 
puede utilizar los driver JDBC. No tengo ninguna referencia sobre qué tal 
funciona este sistema. Veo que usa ICE, un conector de objetos tipo CORBA 
totalmente desconocido para mí. Necesitaría más información sobre su 
rendimiento.

3) usar lua (otro de esos lenguajes "imprescindibles"): trabajar con luasql es 
bastante similar a como se trabaja con la db-api de python, con el añadido de 
que puede conectar usando drivers JDBC. Lua se puede empotrar fácilmente en 
cualquier aplicación de python, siendo casi despreciable la sobrecarga que 
añade (incluso es probable que mejore el rendimiento).


Supongo que empezaré probando con jython, dejando el resto de alternativas 
para más adelante. 

¿Alguna recomendación sobre el tema?




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