Migración de datos Cobol a BD MySQL
Explicación técnica
Para esta migración ficheros Cobol->ODBC usamos herramientas de terceros (como InstantSQL de Liant), que se encargan de la comunicación interna entre Cobol y ODBC. También hemos tenido que hacer un pequeño retoque en el conector ODBC de MySql.
Para migrar no será necesario reconstruir la lógica del código existente, pues simplemente reemplazamos todas las sentencias I/O de Cobol, es decir START (por cualquier KEY), READ (NEXT, PREVIOUS), WRITE, REWRITE y DELETE, por llamadas SQL a través de nuestras rutinas. La estructura del código original, la lógica, permanecerá por tanto inalterada.
Por experiencia propia, el rendimiento se verá afectado de forma apreciable en tablas a partir de cien
mil
registros.
Es difícil imitar en SQL el sistema de posicionado de puntero de Cobol con el comando START y la
posterior
lectura con READ NEXT/PREVIOUS, y que lo haga usando datos ‘frescos’, no un recordset en caché. Pero lo
hemos logrado.
Para ello creamos dos bloques de código Cobol para cada fichero. Uno se agrega al código original con
COPY y
el otro se llama desde éste con CALL.
Las tablas de la BD serán réplicas de los ficheros indexados con la misma estructura, tipos de datos, la primary key y los índices.
También tenemos en cuenta los ficheros con nombre variable, por ejemplo si el nombre de un fichero se incrementa cada año tipo 'Entradas+año'. En este caso cada nueva tabla se creará sobre la marchaa con ese nuevo nombre clonando la estructura desde una tabla base, parecido a cómo lo haría Cobol con OPEN OUTPUT conservando el mismo FILE-DESCRIPTION.
Si dudamos de la integridad de esta migración, podremos conservar la sincronización entre BD y ficheros, con lo que todo cambio hecho en la BD se replicará en los ficheros originales.
Todo este proceso contribuye, también, a que en el futuro podamos crear procesos Cobol más eficientes
aprovechando la fexibilidad de las consultas SQL (con ordenación de registros, filtros, vistas (VIEWs),
etc),
esquivando así las limitaciones del uso de ficheros tradicional.
Conservamos la estructura Cobol pero la dotamos con eficientes consultas SQL.