Fondo
Cuando una hoja de control tiene muchas filas o el tiempo de proceso es excesivo, utilizar cadenas paralelas puede reducir significativamente el tiempo de ejecución.
Ejemplo de escenario
Imagina que tienes un grupo de comandos en tu cadena que utiliza un Iterador de grupo. En esta configuración, el contenido de la hoja de control se obtiene de una hoja de cálculo Workiva utilizando el comando Obtener datos de hoja. A continuación, la cadena repite un conjunto de acciones para cada fila de la hoja. (Consulta las instrucciones de configuración aquí.)
Si el orden de ejecución de las filas de la hoja de control no importa, y cada fila puede procesarse independientemente, puedes mejorar la eficacia de la cadena ejecutándolas en paralelo siguiendo los pasos siguientes.
Nota: Los pasos que se indican a continuación se basan en la cadena de ejemplo mostrada más arriba. Ajústala según sea necesario a tu propia cadena y a los comandos adicionales que pueda tener.
Paso 1: Preparando tu cadena principal
- Elimina todas las vinculaciones entre todos los nodos.
- Elimina los nodos CSV a JSON y Grupo de comandos.
- Añade un comando Consulta Avanzada del conector Transformaciones Tabulares y conéctalo al nodo Obtener Datos de Hoja.
- Configura el nodo con los siguientes valores:
- Tablas > Archivo: selecciona la salida Obtener Datos de Hoja > Datos del Panel de Variables.
- Tablas > Nombre de tabla: utiliza un nombre sin espacios.
- Consulta: utiliza la función MySQL
NTILEpara asignar un número de grupo a cada fila (por ejemplo,NTILE(3)para tres grupos).
Nota: Tendrás que probar tu proceso para encontrar el número apropiado de Grupos que se alinee con tu tiempo de ejecución deseado. Como mejor práctica, el número debe ser menor que 10.
Paso 2: Establece tu subcadena para que se ejecute en paralelo
- En la subcadena ejecutada por tu evento Ejecutar cadena, añade o modifica el comando Entradas en tiempo de ejecución. Recordatorio este debe ser el primer nodo de la cadena. Configura dos entradas para ello: una FileField para el archivo de datos y otra NumberField para el número de grupo.
- Para asegurarte de que cada instancia sólo procesa sus filas asignadas, conecta un comando Filtrar filas inmediatamente después del comando Entradas en tiempo de ejecución y antes de otros comandos. El filtro aislará los registros por número de grupo, garantizando que todos los comandos posteriores sólo actúen en las filas correctas.
Nota: El campo Columnas de búsqueda tiene base 0.
- En Configuración de la cadena, asegúrate de que la opción Permitir ejecuciones simultáneas está activada.
Paso 3: Pasar por el Archivo y el Número de Grupo.
- En la Cadena principal, añade un comando Ejecutar cadena para cada número de grupo utilizado en la función
NTILE(por ejemplo, 3 comandos paraNTILE(3)).- Archivo de datos Entrada en tiempo de ejecución: selecciona Consulta avanzada > Resultado salida del Panel de variables.
- Número de Grupo Entrada en tiempo de ejecución: Un número único desde 1 hasta el número total de Grupos.
Resultado
Tu cadena está procesando el triple de filas de tu hoja de control a la vez. Puedes ampliarlo aumentando el número de NTILE y añadiendo los comandos correspondientes Ejecutar cadena.
Advertencia
- Evita ejecutar demasiadas cadenas paralelas a la vez, ya que hacerlo puede superar los límites de la plataforma y hacer que fallen los comandos. Como mejor práctica, el número de cadenas paralelas debe ser inferior a 10.
- Todas las soluciones de cadena deben probarse minuciosamente con casos límite y todos los tipos de datos relevantes antes de utilizarlas en entornos reales o de producción.
- Las Cadenas con más de seis niveles anidados de utilización de Ejecutar Cadena pueden no exportar o importar correctamente.
Recursos adicionales
Para más información sobre las Hojas de Control de Cadenas, revisa algunos de nuestros otros recursos
- Para obtener más información básica, revisa nuestro Uso de las Hojas de Control.
- Para un caso de uso popular de las hojas de control, revisa nuestra plantilla Planificador de hojas de control Cadena.