Implementing Common Nodes in a Flowgraph

Objective

After completing this lesson, you will be able to procesar conjuntos de datos utilizando nodos de gráfico de flujo para combinar, transformar y dividir datos.

¿Unirse o unirse?

Cuando desea combinar datos, hay dos enfoques. Puede seleccionar una unión o un join.

Una operación de unión agrega filas y una operación de combinación agrega columnas. Las fuentes de una unión proporcionan el mismo tipo de información en filas dfferent con estructura y campos similares. Las fuentes de un join proporcionan el tipo de información dffferent en las columnas dfferent con diferente estructura y unos pocos campos coincidentes con los mismos valores.

Una operación de la Unión añade registros a los registros existentes para formar un conjunto de datos más grande y combinado. Los registros añadidos suelen proporcionar el mismo tipo de información de un área diferente, por ejemplo, los pedidos de cliente de dos regiones o de dos años. Las estructuras de las dos fuentes deben ser compatibles. Esto significa que las columnas que forman parte de la unión deben tener tipos de datos coincidentes.

Una operación Join adjunta columnas de un segundo conjunto de datos a un conjunto de datos existente. Las columnas añadidas proporcionan información adicional relacionada para enriquecer el registro original. Por ejemplo, su registro de pedido de cliente solo incluye el ID de producto y no la descripción del producto. En este caso, podría unir el registro de pedido de cliente al registro maestro de productos correspondiente para capturar la descripción de producto y añadir la columna de descripción de producto al registro de pedido de cliente. Su registro original ahora tiene una columna adicional.

Unión

¿Qué puede hacer cuando tiene diferentes sistemas fuente para pedidos de cliente de diferentes países y necesita un conjunto de datos mundial completo? El nodo Union fusiona los datos de entrada de dos o más nodos anteriores con una estructura de columna idéntica. Cuando tenga más de dos fuentes, seleccione + para crear un puerto de entrada adicional.

La imagen muestra un ejemplo de un nodo de unión en un gráfico de flujo: combina dos fuentes con 2 líneas cada una a un destino con 4 líneas.

Nota

Cambie el nombre del puerto de entrada para reflejar el significado de los datos entrantes del nodo anterior.

El nodo de unión transfiere todas las columnas entrantes. Por lo tanto, añada un nodo de proyección predecesor para eliminar cualquier columna irrelevante y renombrar las relevantes, si es necesario. El nodo de unión tiene un único puerto de salida que genera una unión de todos los registros de todas las entradas para pasar al siguiente nodo del gráfico de flujo. Después de seleccionar el botón inspeccionar, verá la única propiedad disponible, Union All. Actúa como se explica en la siguiente tabla.

Efecto de la Unión Todos los bienes

Opción Unir todoConjunto de datos de salida
OffSe eliminan los registros duplicados.
OnSe conservan todos los registros.

Join

Supongamos que tiene una tabla con códigos de país, pero también desea incluir el nombre del país en la salida. El nombre del país se almacena en una tabla separada. A continuación, debe especificar un nodo Join para obtener la columna adicional y añadirla a la salida.

La imagen muestra los datos con el objetivo de los nodos de unión: Hay dos conjuntos de datos de entrada. Se combinan mediante una condición de conexión. Además, puede renombrar y eliminar columnas.

El nodo join ejecuta una sentencia SQL SELECT en varios conjuntos de datos de entrada, los combina en función de una condición join y crea un conjunto de datos de salida unívoco. Las columnas de salida se pueden quitar o renombrar.

La imagen muestra dos tablas fuente, Ventas2, con registros para el ID 1, 2 y 5, y los datos maestros 1 y 2. Un nodo Join se puede definir como Inner Join, que solo transfiere registros coincidentes, o Left Join, que pasa todos los campos incluso los que no tienen datos maestros.

El tipo de join determina qué líneas se transfieren al conjunto de resultados. Se admiten los siguientes tipos de unión:

  • Unión interna (solo líneas con socios coincidentes)
  • Unión externa izquierda (todas las líneas del socio de unión izquierdo)
  • Unión externa derecha (todas las líneas del socio de unión derecho)
  • Full Outer Join (todas las líneas de ambos interlocutores de join)
  • Cross Join (todas las combinaciones de todas las líneas)

Una unión puede ser un requisito previo importante cuando desea agregar valores en un nivel de atributo, como la suma de ingresos por ventas por categoría de producto. Por supuesto, necesita otro nodo para la agregación después de la unión.

Agregación de datos

Un requisito común del aprovisionamiento de datos es resumir los datos de origen y almacenar el resultado en una tabla de destino en SAP HANA. Esto se conoce como agregación. Una agregación se define seleccionando uno o más indicadores para agregar, un comportamiento de agregación para cada indicador y uno o más atributos que determinan el nivel de agregación.

Por ejemplo: Necesito el promedio (comportamiento de agregación) de la cantidad de ventas (indicador) por región (atributo) para cada año (atributo).

Esta diapositiva explica cómo la agregación de datos

funciona.

La agregación se implementa mediante un nodo de gráfico de flujo. El nodo Agregación siempre se basa en un único conjunto de datos de entrada y genera un único conjunto de datos de salida. Cada fila de salida es el resultado de la agregación de varias filas de entrada; sus valores se calculan en función de la configuración del nodo de agregación.

Centrémonos en la configuración de las columnas de salida. Puede eliminar columnas. Para cada columna restante, se puede utilizar una de las siguientes acciones:

  • Agrupar por
  • Recuento
  • Mín.
  • Máx.
  • Promedio
  • Sum

Las columnas de agrupación determinan el nivel de agregación. Todas las filas con una combinación de valores idéntica de las columnas de agrupación se agregan en una sola fila de salida. Esto significa que dos filas de salida cualesquiera tienen valores diferentes en al menos una de las columnas de agrupación.

Las otras columnas se calculan en función del comportamiento de agregación indicado. Por ejemplo, devuelven la suma, el valor medio o el número de valores originales distintos.

En combinación con la agregación, puede hacer lo siguiente:

  • Renombrar columnas de salida
  • Aplicar filtros a las filas de entrada mediante la especificación de un criterio de filtro. Por ejemplo, incluya solo las ventas de Francia en la agregación.
  • Aplique filtros a las filas de salida utilizando la especificación de un criterio HAVING. Por ejemplo, solo genere una fila de salida si las ventas agregadas son superiores a 10.000 EUR.

Partición de conjuntos de datos

Puede distribuir una fuente de datos en varias salidas.

Estas son algunas de las razones por las que es posible que desee hacer esto:

  • Puede implementar diferentes estrategias de almacenamiento, como la carga en almacenamiento en memoria para registros recientes y la carga en disco para registros antiguos.
  • Puede almacenar datos en diferentes niveles de agregación. Por ejemplo, podría agregar datos antiguos y cargarlos en una tabla, dejar los datos más recientes en el nivel de línea y almacenarlos en una tabla separada.
  • Es posible que se requiera una lógica de transformación diferente. Por ejemplo, un cálculo de bonificación que depende del rol del puesto de trabajo, como el gerente sénior o el ejecutivo de ventas.
Esta diapositiva explica el nodo de caso.

El nodo Caso recibe datos de un único puerto de entrada y distribuye las filas sin modificar en varios puertos de salida.

Para cada puerto de salida, se define una expresión booleana para determinar qué filas de entrada se transferirán a él.

Un puerto de salida está marcado como "Predeterminado" para recibir todas las filas de entrada que no se han enviado a ninguno de los otros puertos.

Esta diapositiva muestra un ejemplo de un nodo de caso.

Después del nodo de caso, puede añadir más nodos, como nodos de proyección o agregación, para definir un comportamiento de transformación específico para cada uno de los subconjuntos de datos generados por el nodo de caso. Si es necesario, podría fusionar los diferentes conjuntos de resultados en una única salida con un nodo de unión adicional.

Inicie el siguiente vídeo para aprender a crear un gráfico de flujo con una variedad de nodos para gestionar un ejemplo de transformación de datos complejos.