Ab Initio
Ab Initio
Ab Initio
Paralelismo de flujo
Paralelismo de componentes
Paralelismo de datos
Paralelismo de flujo
La imagen de grafo siguiente muestra una vista simplificada de
cómo funciona el paralelismo de flujo. Después de que el
componente Deduplicate termina de procesar el registro 99, éste
fluye corriente abajo hasta el componente Cleanse, que empieza a
procesarlo. Mientras tanto, el componente Deduplicate comienza a
trabajar en el registro 100. Cuando termina de procesar el registro
100, éste fluye corriente abajo hasta el componente Cleanse, y
Deduplicate comienza a trabajar en el registro 101. Esto continúa
hasta que todos los registros de entrada se hayan procesado. Es
mucho más eficiente que si el componente Cleanse tuviera que
esperar a que Deduplicate procese todos sus registros de entrada.
Paralelismo de componentes
Los componentes también pueden ejecutarse en paralelo
procesando datos en 'ramas’ separadas. Dependiendo de la
arquitectura del grafo, esos flujos de datos pueden o no
combinarse corriente abajo. Independientemente de ello, esto se
llama "paralelismo de componentes". En el grafo siguiente, la
rama superior lee datos desde el archivo Customers, vuelve a
formatear los nombres de clientes y desduplica esos registros
según Customer_id. Al mismo tiempo, la rama inferior lee
transacciones desde un archivo, las limpia y calcula los totales de
facturación. Los registros fluyen a través de las ramas superior e
inferior simultáneamente antes de combinarse.
Paralelismo de datos
Al utilizar layouts con paralelismo de datos, los datos se pueden
procesar simultáneamente en varios flujos. Los grafos con
orígenes de datos en serie utilizan componentes de
particionamiento para crear los flujos de datos en paralelo. Los
grafos con destinos de datos en serie utilizan componentes de
desparticionamiento para combinar los flujos de datos en paralelo.
En el grafo siguiente, el componente PARTITION BY ROUND-ROBIN
lee datos desde un origen en serie y distribuye los registros a
particiones de flujo separadas. El número de particiones viene
determinado por el layout del componente Filter (etiquetado "L1"),
que se propaga a los componentes Deduplicate, Cleanse y Score
(etiquetados "L1*"). Todos esos componentes se ejecutan con
layouts con paralelismo de datos. Finalmente, el componente
GATHER desparticiona los flujos y el conjunto de datos Updated
Customers se escribe en un archivo serial en el disco. Note los
flujos de abanico de salida y entrada, que indican visualmente
dónde se están particionando y desparticionando los registros.
La primera imagen a continuación proporciona una "vista global"
de un grafo sencillo que se ejecuta completamente con layouts
con paralelismo de datos. La vista global es lo que se ve en el
GDE. En este grafo, tanto el origen como el destino de datos son
multiarchivos y ambos componentes tienen layouts con
paralelismo de datos. Vamos a suponer que ambos layouts, L1 y
L2, tienen 3 particiones.