Documentación del Usuario de Pan

¿Qué es Pan?

Pan es un programa que puede ejecutar transformaciones diseñadas con Spoon y almacenadas como XML ó en el repositorio de base de datos. Generalmente las transformaciones se programan en modo por lotes para ser ejecutadas en intervalos de tiempo regulares.

Instalación

El primer paso es la instalación de la máquina virtual (JRE) de Java de Sun Microsystems, versión 1.5 ó mayor. La misma puede ser descargada gratuitamente desde http://www.java.com/.
Luego de esto simplemente descomprima el archivo zip de PDI (por ejemplo pdi-ce-3.1.0-GA.zip) en el directorio que elija.

En ambientes de tipo Unix (Solaris, GNU/Linux, ...) será necesario asignar permisos de ejecución a los scripts de comandos. Desde dentro del directorio de PDI se puede utilizar el siguiente comando:

chmod +x *.sh

Iniciando Pan

Para inciar Pan en diferentes plataformas se proveen los siguientes scripts:

  • Pan.bat : ejecutar Pan en la plataforma Windows
  • pan.sh : ejecutar Pan en plataformas tipo Unix y OSX

Pan puede ejecutarse en cualquier plataforma que tenga una versión de la máquina virtual de Java 1.5 ó mayor.

Opciones de línea de comandos

Estas son las opciones de línea de comandos que puede utilizar.
NOTAS IMPORTANTES:

  • En el sistema Windows, el uso del guión ("-") en las opciones causa problemas, lo mismo que el signo igual ("="). A causa de ello a partir de la versión 2.2.2 puede utilizarse ese formato ó cualquier combinación de "/,-" y ":,=".
  • Es importante que si hay valores presentes en los valores de las opciones se utilicen comillas simples ó dobles para unirlos. Observe los ejemplos subsiguientes para más información.
/opcion:valor

Debajo se listan las opciones válidas.

Mostrar información de la versión

-version

Esta opción muestra la versión de la librería principal de PDI.
El número de versión de la compilación y la fecha de compilación se muestran también.

Ejecutar archivo XML (.ktr)

-file=nombredearchivo

Esta opción ejecuta la transformación definida en el archivo XML (.ktr) indicado.

Establecer el archivo de log

-log=nombredearchivo

Indica el archivo donde guardar el log (por defecto se utiliza la salida estándar).

Establecer el nivel de log

-level=niveldelog

Esta opción establece el nivel de log para la transformación que se ejecutará.
Estos son los posibles valores:

  • Error: Mostrar sólo errores
  • Nothing: No mostrar salida
  • Minimal: Información mínima
  • Basic: Información básica (seleccionado por defecto)
  • Detailed: Información detallada
  • Debug: Para corrección de errores, salida muy detallada
  • Rowlevel: Información a nivel de registro, puede generar una gran cantidad de datos

Seleccionar un repositorio

-rep="Nombre del Repositorio"

Conectar al repositorio con nombre "Nombre del Repositorio"
También será necesario especificar las opciones --user, --pass y --trans.
(Esta opción tembién puede ser especificada mediante la variable de entorno KETTLE_REPOSITORY)

Establecer el nombre de usuario del repositorio

-user=nombredeusuario

Este es el nombre de usuario con el cual se conectará al repositorio.
(Esta opción tembién puede ser especificada mediante la variable de entorno KETTLE_USER)

Establecer la contraseña del repositorio

-pass=Contraseña

Esta es la contraseña utilizada para conectarse al repositorio.
(Esta opción tembién puede ser especificada mediante la variable de entorno KETTLE_PASSWORD)

Seleccionar la transformación del repositorio a ejecutar

-trans="Nombre de la transformación"

Esta opción permite seleccionar la transformación almacenada en el repositorio que se desea ejecutar

Listar los directorios del repositorio

-listdir=Y

Imprime un listado de todos los subdirectorios del directorio especificado mediante la opción "-dir".

Establecer el directorio del repositorio

-dir=/algun/directorio

Especifica el directorio del repositorio a utilizar. Algunos ejemplos:

  • El directorio raíz: /
  • Un subdirectorio: /produccion/Dimensiones/

Desde la versión 2.2.2, una barra ("/") se utiliza para separar directorios en todas las plataformas.

Listar las transformaciones del repositorio

-listtrans=Y

Imprime una lista de todas las transformaciones alojadas en el directorio del repositorio especificado mediante la opción "-dir".

Listar los repositorios disponibles

-listrep=Y

Imprime una lista de todos los repositorios definidos.

Exportar el repositorio completo

-exprep=nombredearchivo.xml

Esta opción exporta el repositorio completo a un sólo archivo XML.
Para restablecer este archivo a un repositorio, por favor utilice el Explorador de Repositorios en Spoon.
Refiérase a la documentación de Spoon para más información.

No acceder al repositorio

-norep=Y

Esta opción puede utilizarse si, a pesar de haver establecido las variables de entorno KETTLE_REPOSITORY, KETTLE_USER y KETTLE_PASSWORD, se desea evitar el acceso al repositorio (por ejemplo para ejecutar una transformación desde archivo XML).

Ruta

Por favor asegúrese de estar posicionado en el direcotiro de PDI antes de ejecutar los ejemplos listados abajo. Si utiliza estos scripts en un archivo por lotes ó en otro script, simplemente ejecute un cambio de directorio al directorio de instalación:

Si PDI estuviera instalado en Windows en el disco D:

D:

cd \PDI

Si PDI estuviera instalado en el directorio /product de un sistema tipo Unix:

cd /product/PDI/

Ejecutar una transformación desde un archivo

Este ejemplo ejecuta una transformación desde un archivo en plataforma Windows:

pan.bat /file:"D:\Transformaciones\Dimension Clientes.ktr" /level:Basic

Este ejemplo ejecuta una transformación desde un archivo en plataforma tipo Unix:

pan.sh -file="/transformaciones/Dimension Clientes.ktr" -level=Minimal

Ejecutar una transformación desde el repositorio

Este ejemplo ejecuta una transformación desde el repositorio en plataforma Windows (Ingresar en sólo una línea sin retornos)

pan.bat /rep:"Repositorio Produccion"
            /trans:"Actualizar Dimension Clientes"
            /dir:/Dimensiones/
            /user:miusuario
            /pass:mipassword
            /level:Basic

Redirigiendo salida

Si desea que la salida de la ejecución sea almacenada en un archivo de log en lugar de ser impresa por pantalla, puede utilizar redirección
Este ejemplo agrega la salida de Pan a un archivo de log incremental:

pan.sh -file="/transformaciones/trans.ktr" -level=Minimal >> /LOG/trans.log

Este ejemplo envía la salida de Pan a un archivo (que se sobreescribe cada vez):

pan.bat /file:C:\transformaciones\trans.ktr /level:Basic > C:\LOG\trans.log

Códigos de retorno

Pan devuelve un código de error basado en el resultado de la ejecución:

  • 0 : La transformación se ejecutó sin problemas.
  • 1 : Ocurrieron errores durante la ejecución.
  • 2 : Ocurrió un error inesperado durante la carga / ejecución de la transformación.
  • 3 : Imposible preparar e inicializar la transformación.
  • 7 : La transformación no pudo ser cargada desde el archivo XML ó el repositorio.
  • 8 : Error al cargar pasos ó complementos (generalmente error al cargar uno de los complementos)
  • 9 : Impresión del uso de la línea de comandos

Programación

Programar una transformación en Windows

La mejor forma de comenzar es probando el comando primero en línea de comandos. Luego puede utilizarse el Programador de Tareas de Windows para ejecutar el comando.
A partir de Windows 2000 existe una interfaz de usuario para realizar esta tarea, accesible desde el panel de control. Sin embargo también puede utilizarse la línea de comando de esta manera:

at 23:30 /every:Monday,Wednesday,Friday "D:\actualizar_dimensiones.bat"

Para ver una lista de los comandos programados simplemente ejecutar el comando:

at

Programar una transformación en Unix

La mejor forma de comenzar es probando el comando primero en línea de comandos. Luego puede utilizarse cron para ejecutar el comando. Esto puede hacerse ejecutando el siguiente comando:

crontab -e

Luego puede ingresarse el comando a ejecutar y el momento en que debe ejecutarse en una única línea en el archivo de texto que se presenta.
Las primeras opciones son:

  • El minuto de la hora, 0-59
  • La hora del día, 0-23
  • El día del mes, 1-31
  • El mes del año, 1-12
  • El día de la semana, 0-6, 0=Domingo

Puede especificarse un rango inclusivo de números separando dos números con un guión ("-"). Separando números con comas puede seleccionarse más de un valor específico. Si se utiliza un asterisco ("*") en lugar de un número, significa cualquier número posible para esa posición (cualquier minuto, cualquier día, etc.).
Por ejemplo, para actualizar dimensions a cada hora, a los 15 y a los 45 minutos de cada hora durante los días de semana, esta sería la línea a ingresar:

#
# Ejecuta la actualización de las dimensiones del almacén de datos
#
15,45 * * * 1-5 /PROD/actualizar_dimensiones.sh
#