Guía del servicio de aplicación > Administración del Servicio de integración de datos > Maximizar el número de paralelismos para asignaciones y perfiles
  

Maximizar el número de paralelismos para asignaciones y perfiles

Si tiene la opción de utilizar particiones, puede habilitar el Servicio de integración de datos para maximizar el número de paralelismos cuando ejecute asignaciones, cuando ejecute perfiles de columna o cuando detecte dominios de datos. Cuando se maximiza el número de paralelismos, el Servicio de integración de datos divide de forma dinámica los datos subyacentes en particiones y procesa todas las particiones simultáneamente.
Nota: Cuando ejecuta una tarea de perfil, el Servicio de integración de datos convierte la tarea de perfil en una o más asignaciones y, a continuación, puede ejecutar esas asignaciones en varias particiones.
Si las asignaciones procesan grandes conjuntos de datos o contienen transformaciones que realizan cálculos complicados, pueden tardar mucho tiempo en procesarse y pueden provocar un bajo rendimiento de los datos. Cuando se habilita la partición para estas asignaciones, el Servicio de integración de datos utiliza subprocesos adicionales para procesar la asignación. Aumentar el número de subprocesos de procesamiento aumenta la carga en el nodo donde se ejecuta la asignación. Si el nodo contiene un ancho de banda de CPU suficiente, el procesamiento simultáneo de filas de datos en una asignación puede optimizar el rendimiento de la asignación.
De manera predeterminada, la propiedad Número máximo de paralelismos está establecida en 1 para el Servicio de integración de datos. Cuando el Servicio de integración de datos ejecuta una asignación, separa la asignación en etapas de canal y utiliza un subproceso para procesar cada etapa. Estos subprocesos se asignan para leer, transformar y escribir tareas, y se ejecutan en paralelo.
Cuando se aumenta el valor del número máximo de paralelismos, se habilita la partición. El Servicio de integración de datos utiliza varios subprocesos para procesar cada etapa de canal.
El Servicio de integración de datos puede crear particiones para asignaciones que tienen datos físicos como entrada y salida. El Servicio de integración de datos puede utilizar varias particiones para completar las siguientes acciones durante la ejecución de una asignación:

Un subproceso para cada etapa de canal

Cuando el número máximo de paralelismos está establecido en 1, la partición está deshabilitada. El Servicio de integración de datos separa una asignación en varias etapas de canal y crea un subproceso de lectura, un subproceso de transformación y un subproceso de escritura para procesar cada etapa.
Cada asignación contiene uno o varios canales. Un canal consta de una transformación de lectura y de todas las transformaciones que reciben datos de dicha transformación de lectura. El Servicio de integración de datos separa un canal de la asignación en etapas de canal y luego realiza la extracción, la transformación y la carga de cada etapa de canal en paralelo.
Los puntos de partición marcan los límites en un canal y divide el canal en etapas. Para cada canal de asignación, el Servicio de integración de datos añade un punto de partición después de la transformación de lectura y antes de la transformación de escritura para crear varias etapas de canal.
Cada etapa de canal se ejecuta en uno de los siguientes subprocesos:
La siguiente figura muestra una asignación separada en una etapa de canal de lectura, una etapa de canal de transformación y una etapa de canal de escritura:
El origen y destino son puntos de partición. La etapa de canal de lectura contiene un origen, la etapa de canal de transformación contiene un filtro y una transformación de expresión, y la etapa de canal de escritura contiene el destino.
Como el canal contiene tres etapas, el Servicio de integración de datos puede procesar tres conjuntos de filas simultáneamente y optimizar el rendimiento de la asignación. Por ejemplo, mientras que el subproceso de lectura procesa el tercer conjunto de filas, el subproceso de transformación procesa el segundo conjunto de filas y el subproceso de escritura procesa el primer conjunto de filas.
La siguiente tabla muestra la forma en que varios subprocesos pueden procesar simultáneamente tres conjuntos de filas:
Subproceso de lectura
Subproceso de transformación
Subproceso de escritura
Conjunto de filas 1
-
-
Conjunto de filas 2
Conjunto de filas 1
-
Conjunto de filas 3
Conjunto de filas 2
Conjunto de filas 1
Conjunto de filas 4
Conjunto de filas 3
Conjunto de filas 2
Conjunto de filas n
Conjunto de filas (n-1)
Conjunto de filas (n-2)
Si el canal de la asignación contiene transformaciones que realizan cálculos complicados, el procesamiento de la etapa de canal de transformación puede tardar mucho tiempo. Para optimizar el rendimiento, el Servicio de integración de datos añade puntos de partición antes de algunas transformaciones para crear una etapa de canal de transformación adicional.

Varios subprocesos para cada etapa de canal

Cuando el número máximo de paralelismos está establecido en un valor mayor que 1, la partición está habilitada. El Servicio de integración de datos separa una asignación en etapas de canal y usa varios subprocesos para procesar cada etapa.
Cuando maximice el paralelismo, el Servicio de integración de datos realizará de forma dinámica las siguientes tareas en tiempo de ejecución:
Dividir los datos en particiones.
El Servicio de integración de datos divide de forma dinámica los datos subyacentes en particiones y ejecuta las particiones simultáneamente. El Servicio de integración de datos determina el número óptimo de subprocesos para cada etapa de canal. El número de subprocesos utilizados por una única etapa de canal no puede superar el valor del número máximo de paralelismos. El Servicio de integración de datos puede crear un número distinto de subprocesos para cada etapa de canal.
Redistribuir los datos en los puntos de partición.
El Servicio de integración de datos determina de forma dinámica la mejor manera de redistribuir los datos en un punto de partición en función de los requisitos de transformación.
En la siguiente imagen se muestra un ejemplo de asignación que distribuye los datos en varias particiones para cada etapa de canal:
La asignación distribuye la etapa de canal de lectura y la primera etapa de canal de transformación entre dos particiones. En la segunda etapa de canal de transformación, la asignación redistribuye las filas entre tres particiones. La asignación distribuye la etapa de canal de escritura entre tres particiones.
En la imagen anterior, el número máximo de paralelismos para el Servicio de integración de datos es tres. El número máximo de paralelismos para la asignación es Automático. El Servicio de integración de datos separa la asignación en cuatro etapas de canal y utiliza un total de 12 subprocesos para ejecutar la asignación. El Servicio de integración de datos realiza las siguientes tareas en cada una de las etapas de canal:

Directrices del número máximo de paralelismos

El número máximo de paralelismos determina la cantidad máxima de subprocesos paralelos que puede procesar una única etapa de canal. Configure la propiedad Número máximo de paralelismos para el Servicio de integración de datos basándose en los recursos de hardware disponibles. Cuando aumente el valor del número máximo de paralelismos, podrá reducir la cantidad de tiempo de procesamiento.
Tenga en cuenta las siguientes directrices cuando configure el número máximo de paralelismos:
Aumente el valor según el número de CPU disponibles.
Aumente el valor del número máximo de paralelismos en función del número de CPU disponibles en los nodos donde se ejecutan las asignaciones. Al aumentar el valor del número máximo de paralelismos, el Servicio de integración de datos utiliza más subprocesos para ejecutar la asignación y aprovecha más CPU. Una asignación simple se ejecuta más rápidamente en dos particiones, pero suele requerir el doble de CPU que cuando se ejecuta la asignación en una única partición.
Tenga en cuenta el número total de subprocesos de procesamiento.
Tenga en cuenta el número total de subprocesos de procesamiento cuando establezca el valor del número máximo de paralelismos. Si una asignación compleja produce varios puntos de partición adicionales, el Servicio de integración de datos podría utilizar más subprocesos de procesamiento de los que puede manejar la CPU.
El número total de subprocesos de procesamiento es igual al valor del número máximo de paralelismos.
Tenga en cuenta los otros trabajos que debe ejecutar el Servicio de integración de datos.
Si configura el número máximo de paralelismos de tal forma que cada asignación utilice un gran número de subprocesos, quedarán menos subprocesos disponibles para que el Servicio de integración de datos ejecute tareas adicionales.
También puede cambiar el valor para una asignación.
De manera predeterminada, el número máximo de paralelismos de cada asignación está establecido en Automático. Todas las asignaciones utilizan el valor del número máximo de paralelismos definido para el Servicio de integración de datos.
En Developer tool, los desarrolladores pueden cambiar el valor del número máximo de paralelismos en las propiedades de tiempo de ejecución de la asignación para definir un valor máximo para una asignación concreta. Cuando el número máximo de paralelismos está establecido en valores enteros diferentes para el Servicio de integración de datos y para la asignación, el Servicio de integración de datos utiliza el valor más pequeño de los dos.
Nota: No se puede utilizar Developer tool para cambiar el valor del número máximo de paralelismos para los perfiles. Cuando el Servicio de integración de datos convierte una tarea de perfil en una o más asignaciones, las asignaciones siempre utilizan Automático para el valor del número máximo de paralelismos de asignación.

Habilitar las particiones para asignaciones y perfiles

Para habilitar la partición para asignaciones, perfiles de columna y detección de dominios de datos, establezca el número máximo de paralelismos del Servicio de integración de datos en un valor mayor que 1.
    1. En la herramienta del administrador, haga clic en la ficha Administrar > vista Servicios y nodos.
    2. En el navegador del dominio, seleccione el Servicio de integración de datos.
    3. En el panel de contenido, haga clic en la vista Propiedades.
    4. En la sección Opciones de ejecución, haga clic en Editar.
    5. Introduzca un valor mayor que 1 para la propiedad Número máximo de paralelismos.
    6. Haga clic en Aceptar.
    7. Recicle el Servicio de integración de datos para aplicar los cambios.

Optimizar los directorios de memoria caché y de destino para particiones

Para obtener un rendimiento óptimo durante la partición de la memoria caché para transformaciones de agregación, combinación, rango y ordenación, configure varios directorios de memoria caché para el Servicio de integración de datos. Para obtener un rendimiento óptimo cuando varios subprocesos escriben en un destino de archivo, configure varios directorios de destino para el Servicio de integración de datos.
Cuando varios subprocesos escriben en un mismo directorio, la asignación podría experimentar un cuello de botella debido a la contención de E/S. Una contención de E/S puede producirse cuando varios subprocesos escriben datos en el sistema de archivos al mismo tiempo.
Al configurar varios directorios, el Servicio de integración de datos determina el directorio de salida para cada subproceso mediante un método Round-Robin. Por ejemplo, puede configurar un objeto de datos de archivo sin formato para que utilice los directorios A y B como directorios de destino. Si el Servicio de integración de datos utiliza cuatro subprocesos para escribir en el destino del archivo, el primer y el tercer subproceso de escritura escribirán los archivos de destino en el directorio A. El segundo y el cuarto subproceso de escritura escribirán los archivos de destino en el directorio B.
Si el Servicio de integración de datos no utiliza particiones de memoria caché para las transformaciones o no utiliza varios subprocesos para escribir en el destino, el servicio escribe los archivos en el primer directorio de la lista.
En la Herramienta del administrador, puede configurar varios directorios de destino y de memoria caché introduciendo varios directorios separados por punto y coma en las propiedades de ejecución del Servicio de integración de datos. Configure los directorios en las siguientes propiedades de ejecución:
Directorio de la memoria caché
Define los directorios de la memoria caché para las transformaciones de agregación, combinación y ordenación. De forma predeterminada, las transformaciones utilizan el parámetro del sistema CacheDir para acceder al valor del directorio de memoria caché definido para el Servicio de integración de datos.
Directorios temporales
Define los directorios de memoria caché para las transformaciones de ordenación. De forma predeterminada, la transformación de ordenación utiliza el parámetro del sistema TempDir para acceder al valor del directorio temporal definido para el Servicio de integración de datos.
Directorio de destino
Define los directorios de destino para los destinos de archivos sin formato. De forma predeterminada, el archivo sin formato utiliza el parámetro del sistema TargetDir para acceder al valor del directorio de destino definido para el Servicio de integración de datos.
En lugar de utilizar los parámetros predeterminados del sistema, los desarrolladores pueden configurar varios directorios específicos para la transformación o el objeto de datos de archivo sin formato en Developer tool.
Nota: Una transformación de búsqueda solo puede utilizar un único directorio de la memoria caché.