.13 Ejecutar una Transformación o Trabajo
Ejecutar una Transformación o Trabajo
A continuación se tratarán los siguientes temas:
- #Ejecución de una Transformación o Trabajo
- #Opciones de Ejecución
- #Ejecución como Vista Previa
- #Configuración Remota y Servidores Esclavos
- #Clustering
Ejecución de una Transformación o Trabajo
Al momento de ejecutar una Transformación o Trabajo ( ) podemos configurar una serie de opciones al respecto.
La ventana que se presenta al ejecutar una Transformación es la siguiente:
La ventana que se presenta al ejecutar un Trabajo es la siguiente:
Opciones de Ejecución
Las siguientes opciones permiten especificar en dónde se desea ejecutar la Transformación o Trabajo:
- Ejecución local: la Transformación o Trabajo será ejecutada en la máquina que se está utilizando actualmente.
- Ejecución remota: permite especificar un servidor remoto donde se desea que se ejecute la Transformación o Trabajo. Esta característica requiere tener instalado PDI en una máquina remota y corriendo el servicio Carte.
- Ejecución clustered: Permite ejecutar la Transformaicón en un entorno clustered.
La siguiente tabla proporciona una descripción detallada de otras opciones de Ejecución:
Opción |
Descripción |
---|---|
Habilitar modo seguro |
Coloca la Transformación o Trabajo en Modo Seguro. |
Nivel de Registro |
Permite especificar el nivel de detalle que se desea capturar en el log. |
Fecha de Ejecución |
Establece la fecha y hora en que se desea ejecutar la Transformación o Trabajo. |
Parámetros |
Esta tabla permite establecer los valores de los argumentos a utilizar al ejecutar la Transformación o Trabajo. |
Variables |
Esta tabla permite establecer los valores de las variables a utilizar al ejecutar la Transformación o Trabajo. |
Los diferentes valores que pueden utilizarse para Nivel de Registro son los siguientes:
Error |
Sólo muestra los errores. |
Nothing |
No muestra ninguna salida. |
Minimal |
Sólo usa logging mínimo. |
Basic |
Es el nivel de logging básico por defecto. |
Detailed |
Brinda una salida detallada del logging. |
Debug |
Para propósitos de depuración, salida muy detallada. |
Row level |
Logging a nivel de fila, esto puede generar pérdida de datos. |
Ejecución como Vista Previa
La opción inicia el diálogo de depuración de la Transformación permitiendo especificar que paso se desea depurar, la cantidad de filas a previsualizar y definir puntos de interrupción condicionales para la ejecución previa. Luego de configurar la información de depuración, se puede hacer clic en el botón 'Comienzo Rápido' para comenzar la ejecución previa del paso actualmente seleccionado.
Opción |
Descripción |
---|---|
Lista de Pasos |
La lista de pasos de la izquierda muestra los pasos disponibles de la Transformación actual. Seleccionar un paso para iniciar las opciones de configuración relacionadas, tales como la cantidad de líneas y puntos de interrupción. |
Número de filas a obtener |
Ingresar las filas por paso que se desea previsualizar para el paso seleccionado. Después de que se obtienen las filas solicitadas desde los diferentes pasos, se finaliza la Transformación y se muestra el resultado.
|
Obtener primeras filas (prever) |
Habilitar esta opción para restringir el tamaño de la previsualización de la cantidad de filas especificadas anteriormente. |
Pausar transformación en la condición |
Habilitar esta opción para causar que la Transformación se detenga si la evaluación de uno de los puntos de interrupción condicionales es verdadera durante la ejecución. |
Punto de quiebre/condición de pausa |
Ingresar condiciones basadas en la comparación de un campo con otro campo o valor. |
Configuración Remota y Servidores Esclavos
Descripción General
Los servidores esclavos permiten ejecutar una Transformación o Trabajo en un servidor remoto. Configurar un servidor esclavo requiere tener un pequeño servidor web denominado "Carte" corriendo en la máquina remota, que aceptará entradas ya sea desde Spoon (ejecución remota & clustered) o desde la entrada de trabajo Transformación (ejecución clustered).
Configurar un servidor remoto o esclavo
Instalar PDI en el servidor que se desea utilizar para ejecutar las Transformaciones o Trabajos remotamente. La instalación incluye un pequeño servidor web llamado Carte que se usa para soportar las solicitudes remotas.
Iniciar el servidor Carte ejecutando Carte.bat o carte.sh desde el directorio de instalación de PDI.
Luego apuntar el servidor maestro a cada uno de los servidores esclavos.
Para hacer esto, hacer doble clic en el nodo "Servidor esclavo" del árbol principal en el panel de la izquierda, o clic derecho en "Servidor esclavo" y seleccionar la opción "Nuevo". Esto abrirá una ventana con dos pestañas "Servicio" y "Proxy"; las mismas se describen a continuación.
Opciones de la pestaña Servicio:
Opción |
Descripción |
---|---|
Nombre del servidor |
Nombre descriptivo del servidor que se desea usar como esclavo. |
Nombre de Host o dirección IP |
Dirección de la máquina que se usará como esclava. |
Puerto |
Define el puerto que se desea usar para comunicarse con el servidor remoto. |
Nombre de usuario |
Nombre de usuario para acceder al servidor remoto. |
Contraseña |
Contraseña para acceder al servidor remoto. |
Es el maestro |
Esta opción indica a PDI que este servidor actuará como servidor maestro en cualquier ejecución clustered de la Transformación. |
Nota: Al ejecutar una transformación en un entorno clustered, se debería tener 1 servidor configurado como maestro y todos los servidores restantes del cluster como esclavos.
Opciones de la pestaña Proxy:
Opción |
Descripción |
---|---|
Nombre del host del servidor proxy |
Establece el nombre del host para el servidor Proxy a través del cual se conecta. |
Puerto del servidor proxy |
Establece el número de puerto utilizado en la comunicación con el proxy |
Ignorar el proxy para hosts: expresión |
Especifica el servidor(es) para el cual el proxy no debería estar activo. Esta opción soporta la especificación de múltiples servidores utilizando expresiones regulares. También se pueden agregar múltiple servidores y expresiones separadas por el caracter "|". |
Clustering
Descripción
El Clustering permite ejecutar Transformaciones y pasos de Transformación en paralelo en más de un servidor. El esquema de clustering define qué servidores esclavos desea asignar al cluster y una variedad de opciones de ejecución clustered.
Crear un esquema de cluster
Para crear un nuevo esquema de cluster ir al panel izquierdo, seleccionar la pestaña "Árbol principal" y realizar alguna de las acciones siguientes:
- hacer doble clic sobre el nodo "Esquema de cluster de kettle".
- hacer clic derecho sobre el nodo "Esquema de cluster de kettle" y seleccionar la opción "Nuevo".
Al realizar esto, se nos abrirá la ventana de a continuación:
Opción |
Descripción |
---|---|
Nombre de Esquema |
Nombre del esquema de cluster. |
Puerto |
Aquí se puede especificar el puerto desde el cual comenzar a numerar los puertos para los servidores esclavos. Cada paso adicional clustered que se ejecuta en un servidor esclavo consumirá un puerto adicional.
|
Tamaño del buffer de socket |
Tamaño del buffer interno a utilizar. |
Intervalo para vaciado de sockets (filas) |
Cantidad de filas después de la cual el buffer interno se envía completamente a través de la red y luego se vacía. |
¿Datos de sockets comprimidos? |
Al tildar esta opción se comprimen todos los datos utilizando el algoritmo de compresión Gzip, para minimizar el tráfico de red. |
Servidores esclavos |
Es una lista de los servidores a utilizar en el cluster. Debería haber un servidor maestro y varios servidores esclavos. Para agregar servidores al cluster, hacer clic en el botón 'Selecciones los servidores esclavos' para seleccionar de la lista de servidores esclavos disponibles. |
Ejecutar Transformaciones utilizando un cluster
Al ejecutar una Transformación, seleccionar 'Ejecución clustered' y activar/desactivar las siguientes opciones:
- Enviar transformación: divide la Transformación y la envía a los diferentes servidores maestro y esclavos.
- Preparar ejecución: ejecuta la fase de inicialización de la Transformación en los servidores maestro y esclavos.
- Iniciar ejecución: inicia la ejecución real de las Transformaciones del maestro y los esclavos.
- Mostrar transformaciones: muestra las Transformaciones generadas que se ejecutarán en el cluster.
Ejemplo básico de Clustering
Se supondrá que se tienen los datos de una tabla (de una base de datos) y se desea ejecutar a través de un programa JavaScript especialmente complejo. Por razones de performance se desea ejecutar este programa en 5 hosts diferentes.
Lo primero que se hará será crear un cluster con un servidor maestro y 4 esclavos:
Luego se creará la Transformación como es habitual, conectando 2 pasos con un salto. Seguidamente se especificará que el script se ejecutará en un cluster:
Ahora se seleccionará el cluster a utilizar. La Transformación se dibujará de la siguiente manera en la vista gráfica:
El Cx4 indica que el paso será ejecutado en un cluster. Siguiendo con el ejemplo se supondrá que la información calculada como resultado se almacenará en otra tabla:
Al ejecutar localmente esta Transformación, no se notará la diferencia con el resultado habitual esperado de una ejecución no clustered. Esto significa que se puede utilizar la ejecución local normal para probar la Transformación. Sin embargo, se puede ejecutar la Transformación en modo clustered. En este caso, se generarán 5 transformaciones para los 5 servidores del cluster:
- Un maestro:
- y 4 Transformaciones esclavas:
Como se puede observar, los datos se enviarán a través de los sockets TCP/IP utilizando los pasos "Socket Writer" y "Socket Reader".