Este es el segundo post de la serie SAP Hana Graph.

Aquí podéis encontrar el link al primer post.

En esta entrada voy a centrarme en la funcionalidad que tenemos en SAP Hana para Graph processing, sus componentes y un ejemplo de un recomendador de productos a clientes.

Esta diapositiva es necesario verla en conjunto. Lo primero de todo sería empezar por la parte de database Services donde principalmente hay que destacar el procesamiento basado CPU multicore (paralelización), almacenamiento columnar en memoria RAM y compresión. Estos son los factores principales que confieren a SAP Hana la rapidez que todos conocemos, a partir de aquí tenemos el resto de funcionalidades; servicios de aplicaciones, servicios de integración y servicios de procesamiento; será en este último donde encontremos todo aquello que nos confiere las funcionalidades de analítica avanzada entre las que se encuentra la de Graph.

El modelo de datos

Para el ejemplo vamos a utilizar datos de venta donde tenemos:

  • ID de cliente.
  • ID de material.
  • ID documento de venta.
  • Métricas como importe, cantidad,etc.
  • Datos maestros.

Si le echamos un vistazo a la tabla de ventas:

Generamos un modelo virtual VDM basado en calculation views como base, que además de servirnos para construir el graph workspace, podría servirnos también para reporting operacional o elaboración y visualización de KPI’s al vuelo.

El Workspace

Para nuestro workspace tenemos definidas 2 vistas, la de vertex (nodos) y la de edges (relaciones). Cliente y producto serán los vertex y las compras serán los edges.

Creando el Graph Workspace

Una vez creado el workspace en nuestro container, tenemos disponible la visualización gráfica.

Opencypher para recomendación de producto

A través de opencypher vamos a desarrollar un sencillo recomendador de productos para los clientes, es decir, a un cliente que compra producto A le vamos recomendar otros productos (B, C, etc. ) que otro cliente del producto A haya comprado, y que sean de la misma familia en base al historial de compras.

Para ello seleccionaremos 1 cliente y un producto.

El resultado de la ejecución indica que ha realizado 11 compras por un importe total 10,67.

Si vemos la misma información empleado el Graph Viewer, queda de la siguiente manera:

El siguiente paso sería ser capaces de ofrecer a este cliente productos similares en base a compras de otros clientes.

El resultado que obtenemos es:

Lo que viene a ser algo así como “Clientes que han comprado este producto, también han comprado estos otros de la misma familia”.

Ahora ya lo tenemos; el siguiente paso sería hacerlo dinámico y que nuestro ejemplo en Opencypher sirva para cualquier cliente y producto.

Calculation Scenario

Como paso final creamos un calculation scenario para consumir la información de la recomendación, es decir, un objeto en el container al que efectuar llamadas pasándole diferentes valores de cliente y de producto para que sea dinámico.

Ejecutamos una llamada de ejemplo para el cliente y producto que hemos elegido previamente y el resultado es:

Si lo probamos con otro cliente y producto:

Como veis, la funcionalidad de Graph permite visualizar y analizar las relaciones entre los datos, aplicar patrones de búsqueda, algoritmos y combinar esto con el resto de funcionalidades de Hana.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.