jueves, 18 de febrero de 2010

Usando Pipes para Cargar Data en DB2 Linux

Mover información o data desde una base de datos fuente en DB2 para Linux puede ser un reto, particularmente cuando la base de datos fuente es muy grande y no tienes espacio suficiente disponible para mantener los archivos de datos intermedios.

Con Linux puedes crear una tubería (pipe) con los comandos mkfifo o mknod. Dos procesos separados pueden acceder al pipe creado. El comando mkfifo crea un archivo FIFO. Puedes usar ese archivo FIFO para mover la información desde una aplicación a otra sin guardar la información en un archivo intermedio. De tal forma, ahorras espacio que de otro modo usarías para guardar un archivo temporal. El comando mknod también crea un pipe si especificas la opción p para el tipo.

Lo siguiente son ejemplos de los comandos para realizar los dos pasos de crear un pipe y cargar la data en DB2 en un ambiente Linux.

Paso 1 — Crear un pipe y enviar la información descomprimida al pipe:

$ mkfifo db2pipe
$ gunzip tabledata.gz > db2pipe

Paso 2 — usar el pipe para cargar la data en DB2:

$ db2 connect to sample
$ db2 "LOAD FROM db2pipe OF DEL INSERT INTO mytable"
$ db2 terminate

No hay comentarios: