domingo, 15 de febrero de 2009

Firebird vs mySQL

Lo primero que me planteé fue poder manejar los datos con una base de datos 'de verdad' y mis dos primeras opciones fueron sin ninguna duda para estos dos sistemas.
Firebird porque lo conozco desde que comenzó el proyecto a partir de la liberación de Interbase, me siento cómodo por su facilidad de instalación, de mantenimiento, por su robustez y fiabilidad, porque es rápida y conozco bastante el lenguaje de procedimientos que utiliza.
MySQL por su implantación universal, casi todos los sistemas open source relacionados con el bi, data cleasing y similares lo contemplan como la base de datos por defecto.
El primer problema con el que me encontré fue la imposibilidad de instalar nada en el PC donde trabajo, tenía que conseguir que funcionase sin instalación. Buscando encontré dos primeras soluciones: por la parte de firebird pensé en el servidor embebido como solución, pero pronto aparecieron los problemas: los ejecutables tienen que estar en la misma carpeta que la dll del servidor, o metía todos los ejecutables en la misma carpeta (que desorden) o copiaba la dll en mil y una carpetas; y lo más grave solo permite una conexión a la base de datos, imposible lanzar un proceso sobre una tabla y a la vez estar escribiendo un procedimiento, o cualquier otra combinación de tareas. Además no fui capaz de hacerlo funcionar con aplicaciones en java, vamos un desastre y deseché esta solución.
Para mySQL la solución fue Mowes , no me costó demasiado encontrar lo que buscaba, un servidor mySQL, un Apache con PHP y algunas utilidades en este entorno. Las primeras pruebas prometían, veloz, fácil conexión con todas las herramientas que estaba probando. Parecía que había encontrado lo que estaba buscando. Los problemas aparecieron con las primeras cargas completas, con más siete millones y medio de registros, las cosas empezaron a cambiar. Sin índices, las cargas eran rápidas, pero las consultas y procesos se eternizaban... con índices, eran las cargas las que se eternizaban, si cargaba sin índices y luego intentaba indexar, era aquí donde se eternizaba...¿mala configuración? ¿desconocimiento? Mala cosa, mi gozo en un pozo. Tenía que seguir buscando. Empecé a probar distintas soluciones: derby, H2, Hypersonic, pero ninguna cumplía con todo lo que yo quería.
A veces la solución la tenemos delante de las narices y la encontramos por casualidad, un día, navegando sin mucho rumbo, acabé en la zona de descarga de Firebird y me encontré con algo en lo que nunca me había fijado, firebird comprimido en zip para instalación manual... sin instaladores, solo copiando los ficheros en mi pen y arrancando el servidor desde allí con un simple "fbserver -a", ¿como no se me había ocurrido antes?

Mi pen y mi trabajo

El problema de trabajar en un organismo público sin pertenecer a el, rodeado de administrativos sin serlo, con un perfil técnico pero sin pertenecer al departamento de informática, es que permanentemente te encuentras en tierra de nadie, te piden (o incluso exigen) resultados pero como grandes herramientas te ofrecen el access y el excel. Y si propones alguna alternativa tienes que justificarlo por activa y por pasiva ante cuarenta carguillos intermedios, conseguir tropocientas firmas y vistosbuenos, y que los de informática tengan ganas de montarlo. Todo son problemas, si es una solución propietaria, seguro que es muy cara, si es libre, aparecerán dudas sobre la continuidad del soporte. Y tu sigues en medio, con ganas de hacer tu trabajo, pero sin ninguna de tener que enfrentarte con todo esto para poder hacerlo, y acabas tirando por el camino de enmedio, yo me lo guiso, yo me lo como.
Así es como tirando de pen y de aplicaciones libres y portables me he acabado montando una colección de herramientas relacionadas con las bases de datos, el bussines inteligence, el data cleasing y otras hierbas. Mi intención es compartirlas con el mundo, poco a poco.