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