Transformación del control de transacciones en Informatica (ejemplo)

⚡ Resumen inteligente

La transformación de control de transacciones en Informatica es un objeto activo y conectado que confirma o revierte filas mientras un mapaping Se ejecuta utilizando cinco variables integradas dentro de una condición que se evalúa una vez por cada fila.

  • 🔄 Cinco variables integradas: TC_CONTINUE_TRANSACTION, TC_COMMIT_BEFORE, TC_COMMIT_AFTER, TC_ROLLBACK_BEFORE y TC_ROLLBACK_AFTER deciden qué sucede en cada fila.
  • ⚙️ Condiciones de vida en Propiedades: El campo Condición de control de transacciones en la pestaña Propiedades contiene la expresión IIF que evalúa el Servicio de integración.
  • 🧪 Ejemplo trabajado: Mapa de sieteping Los pasos del diseñador confirman los datos de EMP en EMP_TARGET cada vez que se encuentra el departamento número 20.
  • ✅ Eficaz o ineficaz: Cualquier transformación que elimine los límites de la transacción después de que haga que el objeto sea ineficaz para el destino que se encuentra detrás de ella.
  • 🔧 Tipo de confirmación de sesión: Un mapaping Con una transformación de control de transacciones eficaz, se ejecuta bajo el tipo de confirmación definido por el usuario.
  • ⚠️ Valor de retorno estricto: Si una condición devuelve algo distinto de commit, roll back o continue, el Servicio de Integración fallará la sesión.

Transformación del control de transacciones en Informatica

¿Qué es la transformación del control de transacciones?

El control de transacciones es una transformación activa y conectada que nos permite confirmar o revertir transacciones durante la ejecución del mapa.pingLas operaciones de confirmación y reversión son de gran importancia porque garantizan la disponibilidad de los datos.

Al procesar un gran volumen de datos, puede darse el caso de que sea necesario confirmar los datos en el destino. Si se realiza una confirmación con demasiada frecuencia, esto supondrá una sobrecarga para el sistema. Si se realiza demasiado tarde, en caso de fallo, existe la posibilidad de pérdida de datos.

Por lo tanto, para brindar flexibilidad, se proporciona la transformación de Control de Transacciones. En lugar de dejar el punto de confirmación al valor predeterminado de la sesión, permite una condición dentro de la mapaping Decidir, fila por fila, dónde termina una transacción y comienza la siguiente.

Comandos TCL para confirmar y revertir acciones

Esta transformación dispone de cinco variables integradas para gestionar la operación. La condición debe devolver una de estas cinco variables para cada fila, y un valor que no esté en esa lista provoca que el Servicio de Integración finalice la sesión.

TC_CONTINUE_TRANSACTION

En TC_CONTINUE_TRANSACTION no se realiza ninguna operación; el proceso de carga de datos continúa sin cambios. Este es el valor predeterminado de la expresión.

TC_COMMIT_BEFORE

En TC_COMMIT_BEFORE, cuando se encuentra esta bandera activada, se realiza una confirmación antes del procesamiento de la fila actual. A continuación, se inicia una nueva transacción y la fila actual se escribe en el destino.

TC_COMMIT_AFTER

En TC_COMMIT_AFTER, se procesa la fila actual, se realiza una confirmación y comienza la siguiente transacción.

TC_ROLLBACK_BEFORE

En TC_ROLLBACK_BEFORE, primero se realiza la reversión y luego se procesan los datos para su escritura.

TC_ROLLBACK_AFTER

En TC_ROLLBACK_AFTER, se procesan los datos y luego se realiza la reversión.

Propiedades de transformación del control de transacciones

El objeto se configura desde la ventana Editar transformaciones, que tiene las mismas cuatro pestañas que las demás transformaciones de PowerCenter. Saber qué pestaña corresponde a cada configuración le ahorrará mucho tiempo buscando durante el tutorial que se describe a continuación.

Pestaña ¿Qué está configurado allí?
Nombre de la transformación, su descripción y si el objeto se puede reutilizar.
Puertos Los puertos de entrada y salida, normalmente creados arrastrando las columnas desde la transformación anterior.
Propiedades La condición de control de transacciones, que se abre con la pequeña flecha junto al campo, y la TracNivel escrito en el registro de sesión.
Extensiones de metadatos Los metadatos definidos por el usuario se conservan en el repositorio junto con la transformación.

Dos configuraciones hacen el trabajo real. Condición de control de transacciones contiene la expresión, que suele ser una prueba IIF() que devuelve una de las cinco variables. TracNivel de ing decide cuántos detalles sobre la transformación aparecen en el registro de sesión cuando se analiza la ejecución.

Una configuración queda fuera de la transformación. Cuando un mapaping contiene una transformación de control de transacciones efectiva, la sesión se ejecuta con el Tipo de confirmación configurado como Definido por el usuario en la pestaña Propiedades de la durante toda la sesión., en vez de Target o tipos de confirmación de origen que utilizan un intervalo de confirmación fijo.

Cómo utilizar la transformación de control de transacciones en Informatica

En este ejemplo, enviaremos los datos al destino cuando se cumpla la condición dept no = 20.

Paso 1) crear un mapaping con EMP como origen y EMP_TARGET como destino. El mapaping El lienzo del diseñador contiene entonces la fuente, su calificador de fuente y la definición de destino.

Mapearping Lienzo del diseñador con la fuente EMP, su calificador de fuente y la definición del destino EMP_TARGET.

Paso 2) Cree una nueva transformación utilizando el menú Transformación y, a continuación, en la ventana Crear transformación:

  1. Seleccione un control de transacciones como la nueva transformación.
  2. Ingrese el nombre de la transformación "tc_commit_dept20"
  3. Seleccione la opción de crear

Cree una ventana de transformación con Control de transacciones seleccionado y el nombre tc_commit_dept20 introducido.

Paso 3) Se creará la transformación de Control de Transacciones; seleccione el botón Listo. El nuevo objeto aparecerá en el lienzo junto al Calificador de Origen.

Transformación de control de transacciones tc_commit_dept20 creada junto al calificador de origen.

Paso 4) Arrastre y suelte todas las columnas de Source Qualifier en la transformación Transaction Control y, a continuación, vincule todas las columnas de la transformación Transaction Control a la tabla de destino. La canalización ahora se ejecuta en la siguiente secuencia: origen → Source Qualifier → tc_commit_dept20 → EMP_TARGET.

Columnas de calificador de origen vinculadas a través de tc_commit_dept20 en la tabla EMP_TARGET

Paso 5) Double Haga clic en la transformación Control de transacciones y luego en la ventana de edición de propiedades:

  1. Seleccionar pestaña de propiedad
  2. Haga clic en el icono del editor de control de transacciones

Pestaña Propiedades de la ventana Editar transformaciones que muestra el icono del editor de control de transacciones

Paso 6) En el editor de expresiones, introduzca la expresión:

iif(deptno=20,tc_commit_before,tc_continue_transaction)

y seleccione Aceptar. Esto significa que si se encuentra el departamento n.° 20, se confirma la transacción en el destino; de lo contrario, se continúa con el procesamiento actual.

Editor de expresiones que contiene la condición IIF que se confirma antes de una fila con el número de departamento 20.

Paso 7) Seleccione Aceptar en la ventana anterior. La condición ahora se guarda en la pestaña Propiedades de la transformación.

Pestaña Propiedades de la ventana Editar transformaciones después de guardar la condición de control de transacciones

Ahora guarda el mapa.ping y ejecutarlo después de crear la sesión y los flujos de trabajo. Este mapaping Se enviarán los datos al destino siempre que se encuentre el departamento número 20 en los datos.

Transformaciones eficaces e ineficaces del control de transacciones

La transformación es un generador de transacciones. Elimina cualquier límite de transacción que llegue desde arriba y define nuevos límites propios para todo lo que venga después, por lo que su posición en la cadena de procesamiento es tan importante como su estado.

Se llama eficaz para un objetivo cuando los límites que crea aún alcanzan ese objetivo, y ineficaz cuando una transformación posterior elimina esos límites. Según la Guía de transformación de Informatica PowerCenter, los siguientes objetos eliminan los límites de las transacciones entrantes:

  • Un agregador, Carpintero, Rango, Clasificador o transformación personalizada cuyo ámbito de transformación sea Toda la entrada
  • Una transformación personalizada configurada para generar transacciones
  • Otra transformación del control de transacciones
  • Una transformación de grupo de entrada múltiple conectada a más de un punto de control de transacciones ascendente

Que un objeto sea ineficaz para el destino no lo vuelve inútil. Una transformación posterior cuyo ámbito de transformación sea Transacción sigue utilizando los límites definidos anteriormente, por lo que la misma transformación puede ser eficaz para un clasificador e ineficaz para la tabla que se encuentra detrás.

En un mapaping Con varios objetivos, el objeto puede ser efectivo para un objetivo e ineficaz para otro. El mapaping permanece válido mientras cada destino esté conectado a una transformación de control de transacciones efectiva, y se vuelve inválido tan pronto como un destino no lo esté. El diseñador informa qué transformaciones son ineficaces para los destinos cuando el mapaping se guarda o valida.

Reglas y directrices para la transformación del control de transacciones

La mayoría de los problemas con esta transformación se manifiestan en tiempo de ejecución, y no en tiempo de diseño, por lo que conviene comprobar los puntos que se indican a continuación antes de crear la sesión.

  • El valor de retorno es estricto. Si la condición se evalúa como algo distinto a confirmar, revertir o continuar, el Servicio de Integración falla la sesión.
  • TC_CONTINUE_TRANSACTION es la alternativa. Cada rama de la función IIF() tiene que terminar en algún lugar, y continue es el valor que deja la transacción actual sin modificar.
  • El tipo de objetivo importa. Una transformación de control de transacciones conectada a cualquier destino que no sea un destino relacional, XML o MQSeries dinámico no es efectiva para ese destino.
  • La condición solo puede utilizar lo que le llega. Dentro del editor de control de transacciones, solo están disponibles los puertos vinculados a la transformación, sus puertos variables y las variables integradas.
  • La frecuencia de las confirmaciones implica una compensación. Una condición que se aplica a casi todas las filas elimina la ventaja del almacenamiento en búfer, mientras que una condición que casi nunca se activa reintroduce la ventana de pérdida de datos que la transformación se agregó para cerrar.
  • Consulta el registro de la sesión. El registro registra los puntos de confirmación que se tomaron realmente, que es la forma más rápida de confirmar que la condición se comportó como se esperaba durante la optimización del rendimiento.

Preguntas Frecuentes

Un intervalo de confirmación realiza la confirmación después de un número fijo de filas establecido en la sesión. Una condición de control de transacciones realiza la confirmación sobre los datos mismos, por lo que el punto de confirmación sigue una regla de negocio en lugar de un recuento de filas.

La Guía de Transformación de Informatica PowerCenter establece que una transformación de Control de Transacciones conectada a cualquier destino que no sea un destino relacional, XML o MQSeries dinámico no es efectiva para ese destino.

Sí. Créelo en el Desarrollador de transformaciones o marque la opción Hacer reutilizable en la pestaña Transformación de uno existente. Cada mapaping entonces comparten la misma condición, por lo que un cambio en la regla los alcanza a todos a la vez.

El aprendizaje automático aplicado a los registros históricos de sesiones puede identificar cargas donde la frecuencia de confirmación se correlaciona con tiempos de ejecución prolongados o tormentas de reversión. Esta sugerencia aún es una hipótesis, por lo que conviene verificarla con una ejecución real antes de modificar la condición.

Copilot puede generar la estructura IIF() y recordarte los nombres de las cinco variables, pero desconoce los nombres de tus puertos y las reglas de negocio. Utiliza el resultado como punto de partida y valídalo en el editor de expresiones.

La estrategia de actualización determina qué sucede con una fila, etiquetándola como inserción, actualización, eliminación o rechazo. El control de transacciones decide cuándo las filas modificadas se vuelven permanentes. Ambas responden a preguntas diferentes y a menudo se utilizan conjuntamente.

Cloud Data Integration incluye su propia transformación de Control de Transacciones con las mismas variables de confirmación, reversión y continuación. La idea de diseño se mantiene, pero el objeto se construye en el mapa de la nube.ping Diseñador en lugar de en el cliente PowerCenter.

Las filas escritas desde la última confirmación en esa transacción se descartan. Todo lo que se haya confirmado anteriormente permanece en el destino, por lo que la ubicación de los puntos de confirmación determina cuánto trabajo puede costar un fallo.

Resumir este post con: