Implementación de funciones avanzadas en un diagrama de flujo

Objective

After completing this lesson, you will be able to implemente nodos de transformación avanzados, utilice variables y cree gráficos de flujo a partir de gráficos de flujo existentes.

Nodos de transformación avanzados

El gráfico de flujo ofrece nodos avanzados para los siguientes casos de uso:

Ha aprendido a dividir un conjunto de datos en diferentes registros utilizando un nodo Caso. Pero, ¿cómo aplanar un conjunto de datos en varias columnas, en función de su contenido? Por ejemplo, si una columna contiene el valor de país, pongamos cada país en su propia columna. Como verán, podemos hacerlo con un nodo Pivot.

Ha aprendido a obtener un atributo como un número de teléfono y añadirlo a un registro de ventas con la persona correspondiente. Pero si esta persona tiene varios números de teléfono, una unión crearía una copia del registro de datos de transacción con esta persona para cada número de teléfono. Supongamos que solo necesita el primer número de teléfono, un nodo de búsqueda es lo que necesita. Con una combinación de un nodo Búsqueda y un nodo Pivot puede capturar todos los números de teléfono.

Cuando se registran modificaciones en un sistema fuente, normalmente desea actualizar el destino de datos con la modificación. Puede optar por sobrescribir el registro existente con la versión más reciente, pero también puede decidir mantener el registro existente, marcarlo como "antiguo" y cargar el nuevo registro junto con él. De este modo, mantiene los registros antiguos y proporciona el nuevo registro a la empresa. Para ello, utilice un nodo Conservación del historial. Este nodo especial nos permite añadir automáticamente información de validez temporal a los registros antiguos y nuevos.

La siguiente tabla enumera todos los nodos del gráfico de flujo en la sección Avanzado

Tipos de nodo avanzados

Tipo de nodoCaso de uso

Conservación del historial

Permite actualizar versiones anteriores de filas cuando se produce una modificación generando nuevas filas en un destino.

Búsqueda

Recupera un valor de columna o valores de una tabla de búsqueda que coinciden con una condición de búsqueda que defina.

Asignar operación

Ordena los datos de entrada y asigna los datos de salida.

Pivot

Crea una fila de datos a partir de filas existentes.

Deshacer rotación

Crea una nueva fila para cada valor en una columna identificada como columna dinámica.

Comparación de tablas

Compara dos tablas y produce la diferencia entre ellas como conjunto de datos con filas marcadas como INSERT, UPDATE o DELETE.

Veamos con más detalle dos ejemplos importantes: el nodo Lookup y el nodo Pivot.

Supongamos que necesita una dirección o un número de teléfono de una persona y tiene una libreta de direcciones con todas las direcciones y números. Desea la dirección más frecuente o la que mejor se adapte a la fecha de venta. A continuación, debería utilizar el nodo de búsqueda.

¿Qué es una búsqueda? Una búsqueda es casi una unión. Defina criterios de coincidencia y añada los valores correspondientes de otra columna, pero tiene algunas diferencias:

  • La tabla de búsqueda no debe modificarse dinámicamente durante la carga de datos de los registros principales. Por lo tanto, la transformación de búsqueda se puede procesar en tiempo real.
  • Puede especificar la columna de tabla de búsqueda y los pares de valores de clasificación para invocar una clasificación, que selecciona una sola fila de tabla de búsqueda cuando se devuelven varias filas.
  • Configure los valores predeterminados en forma de constantes que se mostrarán cuando no se devuelvan filas de tabla de búsqueda.
Esta diapositiva explica cómo funciona el nodo de búsqueda.

La búsqueda solo devuelve un resultado por People_Id.

Pero si desea dos resultados, utilice una combinación de una combinación y un nodo pivot, siempre que el contador de contactos siempre empiece por 1. En la parte izquierda de la siguiente tabla, tenemos el resultado de un join. El lado derecho muestra el resultado del nodo de pivote con el resultado deseado.

Esta diapositiva muestra cómo funcionan las búsquedas en un nodo pivot.

¿Cómo funciona? Veamos el principio del nodo pivot en otro ejemplo con indicadores.

Esta diapositiva explica el nodo pivot.

Este ejemplo se crea mediante la siguiente interfaz de usuario:

Esta diapositiva muestra la interfaz de usuario del nodo pivot.

Familiaricémonos con este procedimiento paso a paso.

Cómo configurar un nodo dinámico

Tiene datos con una clave combinada de ID, mes y país. Desea un resumen mensual de costes e ingresos por país. Una tabla dinámica puede ayudar a resumir los datos colocándolos en un conjunto de datos de salida.

Desea crear columnas nuevas para diferentes meses y combinar datos de varios meses en una fila para cada país. Un nodo pivot con mes de eje pivot le ayudará a lograrlo.

Para cada valor único en una columna de eje dinámico, produce una columna en el conjunto de datos de salida.

Pasos

  1. En su gráfico de flujo, añada un nodo dinámico y conecte su predecesor al nuevo nodo.

  2. En la sección Atributos de eje, seleccione Hacer clic para seleccionar eje. Seleccione la columna en la que desea pivotar y, a continuación, seleccione OK. Se genera un conjunto de columnas pivotantes para cada valor de eje. Cree un valor de eje para cada valor único de la columna de eje. En tiempo de ejecución, se crea una nueva columna para cada atributo dinámico y cada valor de eje único en la sección Atributo de eje.

  3. Seleccione Añadir valores para crear una o más columnas que contengan los datos dinámicos. Escriba el nombre de la columna en la columna Valor e introduzca un prefijo en la columna Prefijo. Las columnas nuevas con sus prefijos se visualizan en la lista de columnas de salida después de especificar los datos en las columnas. Por ejemplo, si distribuye por mes, puede generar prefijos Ene para el valor de eje (mes) 1 y Feb para el valor de eje (mes) 2.

  4. En Columnas de datos, seleccione el icono + para cada columna de datos cuyos valores desea dinamizar de filas a columnas. Por ejemplo, puede seleccionar las columnas Costes e Ingresos que desea incluir. Observe que la sección Columnas de salida genera Jan_Costs, Jan_Revenue,Feb_Costs y Feb_Revenue como columnas nuevas. (El carácter de subrayado se añade automáticamente para separar el nombre del prefijo del nombre de la columna dinámica).

  5. En Columnas de salida, seleccione Transferir para seleccionar las columnas que desea emitir sin pivote, normalmente atributos, por ejemplo, País. Las columnas de paso aparecen en la tabla de destino sin modificaciones.

  6. Fije la estrategia de duplicado en la parte inferior para seleccionar el comportamiento cuando se encuentra un duplicado.

    • Seleccione Cancelar cuando desee cancelar el proceso de transformación.
    • Seleccione Primera fila cuando desee almacenar el valor en la primera fila.
  7. Seleccione Aplicar para volver al gráfico de flujo.

Resultado

Ha definido cómo se transformarán los datos.

Nodos de SAP HANA Smart Data Quality / Data Quality Management

SAP HANA proporciona nodos de gráfico de flujo que se relacionan con la calidad de los datos.

La calidad de los datos abarca varios temas. Estos incluyen la deduplicación de registros, la depuración de direcciones, la generación de datos faltantes y el enriquecimiento de registros con información geográfica.

SAP HANA On-Premise y SAP HANA Cloud admiten la calidad de los datos, pero ofrecen diferentes nodos de gráficos de flujo.

SAP HANA On-Premise proporciona varios nodos que admiten la calidad de los datos. Estas son:

  • Coincidencia: buscar y tratar con registros que pueden ser duplicados
  • Depurar - Ajustar campos y generar información adicional
  • Código geográfico: Generar datos geográficos para un registro

Para SAP HANA Cloud, las funciones clave de calidad de datos están disponibles a través de un microservicio basado en suscripción. Para configurar cómo se utiliza este microservicio en su gráfico de flujo, incluya un nodo llamado Data Quality Management microservice Cleanse (DQMm Cleanse).

El nodo Limpiar identifica, analiza, valida y formatea los siguientes datos:

  • Dirección
  • Nombre de la persona (*)
  • Nombre de la organización (*)
  • Título profesional (*)
  • Número de teléfono (*)
  • Dirección de correo electrónico (*)

La depuración de direcciones sigue los estándares y directorios específicos de cada país.

Esta diapositiva explica cómo funciona la limpieza.

(*) Estos elementos solo están disponibles para SAP HANA On-Premise.

El nodo tiene un único puerto de entrada y un único puerto de salida.

El nodo procesa los datos de entrada y los compara con los datos de referencia almacenados en los directorios de direcciones específicos de país. Los directorios se pueden descargar y desplegar como parte de la integración de datos inteligentes de SAP HANA o la instalación de cualificación de datos inteligentes para SAP HANA On-Premise.

El nodo Geocode genera coordenadas de latitud y longitud para una dirección y genera direcciones a partir de coordenadas de latitud y longitud.

Esta diapositiva explica el código geográfico.

El nodo interpreta los datos de entrada y los compara con la información de referencia procedente de directorios de información geográfica local.

Para obtener información detallada sobre el nodo Geocode, consulte la "Guía de modelado para integración de datos inteligentes de SAP HANA y calidad de los datos inteligentes de SAP HANA", disponible en el SAP Help Portal.

Para obtener información detallada sobre la instalación de los directorios de direcciones, consulte la "Guía de instalación y configuración", disponible en SAP Help Portal.

Uso de variables en gráficos de flujo

Cuando define un gráfico de flujo, muchos de los nodos requieren valores para nosotros en filtros o expresiones. Es posible que la fijación del valor no sea eficiente. En ese caso, definiría una variable para que no tenga que proporcionar el valor durante el tiempo de diseño del gráfico de flujo.

Existen muchos motivos para implementar variables, entre ellas:

  • Es posible que desee definir un gráfico de flujo y reutilizarlo en varios casos.
  • Los valores de filtro no se conocen hasta el tiempo de ejecución del gráfico de flujo.

Al crear variables, puede utilizarlas en nodos que las acepten, como el nodo Proyección y el nodo Agregación.

Por ejemplo, en un nodo Proyección, es posible que desee procesar solo aquellos registros para un país específico, como España. En este caso, cree una variable para proporcionar el valor de país en las propiedades del gráfico de flujo. A continuación, puede utilizar la variable en una condición de filtro o en una expresión rodeando el nombre de variable con $$.

Por ejemplo, ha definido una variable P_COUNTRY. Se utiliza de la siguiente manera:

Code Snippet
1
"Filter1_Input"."COUNTRY" = $$P_COUNTRY$$

Las variables se proporcionan en el momento de la ejecución. Esto significa que no tiene que modificar la definición del gráfico de flujo cada vez que desee seleccionar diferentes países.

Al ejecutar el procedimiento, puede proporcionar el valor de variable para cada ejecución.

Gráficos de flujo anidados y procedimientos en gráficos de flujo

Ya sabe que puede utilizar expresiones SQL en nodos como nodos de proyección, unión o caso. Sin embargo, si necesita aplicar una secuencia de expresiones SQL, añadir varios nodos puede ser tedioso y difícil de mantener. En algunos casos, la sentencia depende del contenido, la fecha actual o una elección manual realizada por la persona que llama el gráfico de flujo.

La solución es implementar un nodo Procedimiento. Estos son algunos ejemplos de por qué podría hacer esto:

  • Para implementar una secuencia compleja de sentencias SQL con un solo nodo
  • Para implementar una sentencia SQL que depende de un parámetro que no proporciona el nodo predecesor
  • Para reutilizar un SQLScript existente
  • Para reutilizar un gráfico de flujo existente
Esta diapositiva muestra cómo usar un nodo de procedimiento para llamar procedimientos de base de datos.

El nodo de procedimiento le permite llamar procedimientos de base de datos (es decir, en SQLScript) dentro de un gráfico de flujo.

El nodo de procedimiento tiene un puerto de entrada o salida para cada parámetro de tabla IN o OUT del procedimiento.

Si un procedimiento tiene parámetros de entrada escalares, los valores para estos parámetros provienen de variables definidas en el gráfico de flujo.

Estas variables se crean automáticamente. Cuando se ejecuta el gráfico de flujo, proporcione un valor para cada variable para que se pueda pasar a los parámetros escalares de entrada.

Nota

El nodo de procedimiento no está disponible para el procesamiento en tiempo real.

Gráficos de flujo anidados

Si tiene un gráfico de flujo básico existente que debe ser llamado por uno o más gráficos de flujo de nivel superior nuevos, puede implementarlo como un procedimiento. A continuación, este procedimiento se puede implementar en el nuevo gráfico de flujo.

La imagen muestra que el despliegue de un gráfico de flujo existente se puede desplegar como un procedimiento. Este procedimiento se puede reutilizar en un nuevo gráfico de flujo.

¿Cuáles son las ventajas?

  • Al hacer referencia al mismo gráfico de flujo básico, debe definir la parte común de la transformación solo una vez.
  • Cuando cambia el requisito para el gráfico de flujo básico, solo debe adaptar el gráfico de flujo básico. Todos los gráficos de flujo de nivel superior permanecen consistentes, ya que utilizan automáticamente la nueva lógica.
  • Cuando se deben programar diferentes procedimientos o gráficos de flujo a la misma hora de inicio y con el mismo patrón de repetición, puede incluirlos todos desde un gráfico de flujo maestro y, a continuación, programar solo el gráfico de flujo maestro.

Por lo tanto, ahora debe aprender cómo se puede programar un job para ejecutar un gráfico de flujo.