Implementing Advanced Features in a Flowgraph

Objective

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

Nodos de transformación avanzada

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 cómo 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 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 modifica un registro 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. De este modo, mantiene los registros antiguos y proporciona el nuevo registro a la empresa. Utilice un nodo Conservación de historial para lograrlo. 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 de historial

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

Búsqueda

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

Asignar operación

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

Girar

Crea una fila de datos a partir de filas existentes.

Anular 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 un conjunto de datos con filas marcadas como INSERT, UPDATE o DELETE.

Veamos con más detalle dos ejemplos importantes: el nodo Búsqueda y el nodo Pivot.

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

¿Qué es una búsqueda? Una búsqueda es casi un join. 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 pares de columna de tabla de búsqueda y valor de clasificación para invocar una clasificación, que selecciona una única fila de tabla de búsqueda cuando se devuelven varias filas.
  • Configure los valores predeterminados en forma de constantes para que se muestren cuando no se devuelvan filas de la tabla de búsqueda.
Esta diapositiva explica cómo funciona la búsqueda de nodos 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 pivote con el resultado deseado.

Esta diapositiva muestra cómo funcionan las búsquedas en un nodo dinámico.

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

Esta diapositiva explica el nodo de pivote.

Este ejemplo lo crea la siguiente interfaz de usuario:

Esta diapositiva muestra la interfaz de usuario del nodo pivot.

Familiaricémonos paso a paso con este procedimiento.

Cómo configurar un nodo dinámico

Tiene datos con una clave combinada de ID, mes y país. Desea un resumen mensual de los 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 de pivote con mes de eje de pivote le ayudará a conseguirlo.

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 nodo nuevo.

  2. En la sección Atributos de eje, seleccione Hacer clic para seleccionar el eje. Seleccione la columna en la que desea realizar la rotación y, a continuación, seleccione OK. Se genera un conjunto de columnas dinámicas para cada valor de eje. Cree un valor de eje para cada valor único en la columna de eje. En el 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 Jan 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 pivotar 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 guion bajo se añade automáticamente para separar el nombre del prefijo del nombre de la columna dinámica).

  5. En Columnas de salida, seleccione Pasar a para seleccionar las columnas a las que desea dar salida sin dinamizar, normalmente atributos, por ejemplo, País. Las columnas pasadas aparecen en la tabla de destino sin modificaciones.

  6. Fije la Estrategia duplicada en la parte inferior para seleccionar el comportamiento cuando se encuentre 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.

Calidad de los datos inteligentes de SAP HANA / Nodos de gestión de la calidad de los datos

SAP HANA proporciona nodos de grafo de flujo que se relacionan con la calidad de los datos.

La calidad de los datos cubre 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 local y SAP HANA Cloud admiten la calidad de los datos, pero ofrecen diferentes nodos de gráfico de flujo.

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

  • Coincidencia: buscar y tratar los registros que pueden ser duplicados
  • Depurar - tidy-up campos y generar información adicional
  • Geocodificar: 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 servicio de micrófono basado en suscripción. Para configurar cómo se utiliza este microservicio en su diagrama de flujo, incluya un nodo llamado Limpieza de microservicio de Data Quality Management (DQMm Cleanse).

El nodo Depurar identifica, analiza sintácticamente, 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 directorios de direcciones específicos de país. Los directorios se pueden descargar e implementar como parte de la instalación de SAP HANA Smart Data Integration o Smart Data Qualitiy 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.

En esta diapositiva se explica el código geográfico.

El nodo interpreta los datos de entrada y los compara con 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 SAP HANA Smart Data Integration y SAP HANA Smart Data Quality", disponible en SAP Help Portal.

Para obtener información detallada sobre la instalación de 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 no tener que proporcionar el valor durante el tiempo de diseño del gráfico de flujo.

Existen muchas razones para implementar variables, entre las que se incluyen:

  • 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 esos 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 la proyección, los nodos de unión o de caso. Sin embargo, si necesita aplicar una secuencia de expresiones SQL, añadir varios nodos puede ser tedioso y difícil de actualizar. En algunos casos, la sentencia depende del contenido, la fecha actual o una elección manual realizada por la persona que llama al diagrama de flujo.

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

  • Para implementar una secuencia compleja de sentencias SQL con solo un 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 utilizar 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 de 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, se proporciona 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 grafo de flujo básico existente que debe ser llamado por uno o más gráficos de flujo de nivel superior nuevos, puede desplegarlo 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 el requisito para el gráfico de flujo básico cambia, solo necesita adaptar el gráfico de flujo básico. Todos los gráficos de flujo de nivel superior siguen siendo 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 periodicidad, 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.