Procesamiento de subprocesos
DTM asigna memoria de proceso para la sesión y la divide en búferes. Esto también se denomina memoria de búfer. DTM emplea varios subprocesos para procesar datos en una sesión. El subproceso más importante de DTM se llama subproceso maestro.
El subproceso maestro crea y administra otros subprocesos. El subproceso maestro para una sesión puede crear subprocesos de asignación, previos y posteriores a la sesión, de lector, de transformación y de escritor.
Para cada grupo de orden de carga de destino de una asignación, el subproceso maestro puede crear varios subprocesos. Los tipos de subprocesos dependen de las propiedades de la sesión y de las transformaciones de la asignación. La cantidad de subprocesos depende de la información de partición para cada grupo de orden de carga de destino de la asignación.
La siguiente figura muestra los subprocesos que el subproceso maestro crea para una asignación simple que contiene un grupo de orden de carga de destino:
- 1. Un subproceso de lectura.
- 2. Un subproceso de transformación.
- 3. Un subproceso de escritura.
La asignación contiene una sola partición. En este caso, el subproceso maestro crea un subproceso de lectura, uno de transformación y uno de escritura para procesar los datos. El subproceso de lectura controla la manera en que el proceso del servicio de integración de PowerCenter extrae los datos de origen y los pasa al calificador de origen; el subproceso de transformación controla el modo en que el proceso del servicio de integración de PowerCenter maneja los datos y el subproceso de escritura controla la manera en que el proceso del servicio de integración de PowerCenter carga los datos en el destino.
Cuando el canal sólo contiene una definición de origen, un calificador de datos y una definición de destino, los datos evitan los subprocesos de transformación y van directamente desde los búferes de lectura hasta los de escritura. Este tipo de canal es lo que se considera un canal con exclusión de seguridad.
La figura siguiente muestra los subprocesos para un canal con exclusión de seguridad que tiene una sola partición:
- 1. Un subproceso de lectura.
- 2. Subproceso de transformación evitado.
- 3. Un subproceso de escritura.
Tipos de subproceso
El subproceso principal crea diferentes tipos de subproceso para una sesión. Los tipos de subproceso que crea el subproceso principal dependen de las propiedades presesión y postsesión, y también del tipo de transformaciones de la asignación.
El subproceso principal puede crear los siguientes tipos de subprocesos:
- •Subprocesos de asignación
- •Subprocesos presesión y postsesión
- •Subprocesos de lectura
- •Subprocesos de transformación
- •Subprocesos de escritura
Subprocesos de asignación
El subproceso principal crea un subproceso de asignación para cada sesión. El subproceso de asignación obtiene información sobre la sesión y la asignación, compila la asignación y se limpia tras ejecutar la sesión.
Subprocesos presesión y postsesión
El subproceso principal crea un subproceso presesión y uno postsesión para efectuar operaciones pre y postsesión.
Subprocesos de lectura
El subproceso principal crea subprocesos de lectura para extraer datos de origen. El número de subprocesos de lectura depende de la información de partición de cada canal. El número de subprocesos de lectura es igual el número de particiones. Los orígenes relacionales usan subprocesos de lectura relacionales y los orígenes de archivo usan subprocesos de lectura de archivo.
El servicio de integración de PowerCenter crea una instrucción SQL para cada subproceso de lectura para extraer datos desde un origen relacional. Para los orígenes de archivo, el servicio de integración de PowerCenter puede crear varios subprocesos para leer un único origen.
Subprocesos de transformación
El subproceso principal crea uno o más subprocesos de transformación para cada partición. Los subprocesos de transformación procesan los datos en función de la lógica de transformación de la asignación.
El subproceso principal crea subprocesos de transformación para transformar los datos recibidos en búferes por el subproceso de lectura, transfiere los datos de transformación a transformación y crea memorias caché cuando es necesario. El número de subprocesos de transformación depende de la información de partición de cada canal.
Los subprocesos de transformación almacenan los datos transformados en un búfer extraído del grupo de memoria para que el subproceso de escritura pueda tener acceso a él.
Si el canal contiene una transformación de rango, incorporación, agregación, clasificación o búsqueda de memoria caché, el subproceso de transformación usa la memoria caché hasta que alcanza los límites configurados de la memoria caché. Si el subproceso de transformación necesita más espacio, pagina los archivos de memoria caché local para conservar los datos adicionales.
Cuando el servicio de integración de PowerCenter se ejecuta en modo ASCII, los subprocesos de transformación pasan datos de tipo carácter en un único byte. Cuando el servicio de integración de PowerCenter se ejecuta en modo Unicode, los subprocesos de transformación usan bytes dobles para transferir datos de tipo carácter.
Subprocesos de escritura
El subproceso principal crea subprocesos de escritura para cargar datos de destino. El número de subprocesos de escritura depende de la información de partición de cada canal. Si el canal contiene una partición, el subproceso principal crea un subproceso de escritura. Si contiene varias particiones, el subproceso principal crea varios subprocesos de escritura.
Cada subproceso de escritura crea conexiones a las bases de datos de destino para cargar datos. Si el destino es un archivo, cada subproceso de escritura crea un archivo diferente. Puede configurar la sesión para que fusione estos archivos.
Si el destino es relacional, el subproceso de escritura toma los datos de los búferes y los envía a los destinos de sesión. Cuando se cargan destinos, el escritor envía los datos en función del intervalo de envío de las propiedades de la sesión. Puede configurar una sesión para que envíe datos en función del número de filas de origen leídas, el número de filas grabadas en el destino o el número de filas que pasan por una transformación que genera transacciones, como una transformación de control de transacción.
Partición de canal
Cuando se ejecutan sesiones, el proceso del servicio de integración de PowerCenter puede lograr un alto rendimiento al particionar el canal y realizar la extracción, transformación y carga de datos para cada partición en procesos paralelos. Para realizar esto, utilice la siguiente configuración de sesión y del servicio de integración de PowerCenter:
- •Configure la sesión con varias particiones.
- •Instale el servicio de integración de PowerCenter en un equipo con varias CPU.
Puede configurar el tipo de partición para que realice el máximo de transformaciones en el canal. El servicio de integración de PowerCenter puede particionar datos utilizando el modo Round-Robin, claves hash, intervalo de claves, partición de base de datos o partición de exclusión de seguridad.
También puede configurar la partición dinámica de una sesión para permitir que el servicio de integración de PowerCenter establezca la partición en el tiempo de ejecución. Cuando habilite la partición dinámica, el servicio de integración de PowerCenter escalará el número de particiones de la sesión según factores tales como las particiones de la base de datos de origen o el número de nodos en una malla.
Para orígenes relacionales, el servicio de integración de PowerCenter crea varias conexiones de base de datos con un único origen y extrae un rango de datos independiente por cada conexión.
El servicio de integración de PowerCenter transforma las particiones simultáneamente, transfiere datos entre las particiones según sea necesario para realizar operaciones tales como agregación. Cuando el servicio de integración de PowerCenter carga datos relacionales, crea varias conexiones de base de datos para el destino y carga particiones de datos simultáneamente. Cuando el servicio de integración de PowerCenter carga datos para destinos de archivos, crea un archivo independiente para cada partición. Puede optar por fusionar los archivos de destino.