Integración D365FO DataLake
Después de un tiempo sin publicar volvemos al ataque con nuevas funcionalidades!
Dicho esto ponemos rumbo a a la nueva entrada del blog. Es sabido que hace un tiempo nació una nueva funcionalidad de integración entre D365FO y el "exterior". Esta función estaba en preview y muchos hemos podido probarla antes que saliera pública. Estamos hablando de la integración entre D365FO y Datalake.
Con esta nueva funcionalidad podemos exportar el contenido de las tablas de Dynamics en "tiempo real" a un Azure Datalake y desde allí explotar estos datos con nuestras herramientas analíticas. Esta exportación no requiere de ningún mantenimiento como el anterior BYOD y nos ahorra muchos dolores de cabeza.
¿ Qué es el DataLake?
Para hacernos una idea de lo que significa Datalake vamos a hacer un paralelismo con la realidad. Como todos sabéis existen una serie de edificios o naves en las ciudades y en los pueblos que tienen la función de hacer de almacenaje personal para particulares y empresas. El cliente paga una cantidad mensual y tiene su pequeño almacén para guardar allí todo lo que le apetezca. Puede ser desde información hasta muebles, pasando por recuerdos o lo que os venga a la cabeza. Estos objetos se guardan allí y desde fuera solo se ve un "habitáculo" cerrado con llave.
Esto es lo que sería un Azure Datalake; un espacio de almacenamiento en la nube que admite una gran variedad de objetos y tamaños y que además se encuentra estructurada, asegurada y optimizada para ser consultada. Así pues podemos almacenar desde archivos de texto de unos pocos KB hasta imágenes de máquinas virtuales de varios GBs. Todo esto siguiendo una estructura jerárquica como la que vemos en nuestro PC.
Generaciones
Azure Datalake está formado por una diversa variedad de tecnologías. El detalle de cada una de ellas e información relevante lo podéis encontrar ,aquí. No obstante en este artículo solo nos centraremos en lo que atañe directamente a la conexión con D365FO: Azure DataLake Store (ADLS).
Pero antes demos una vuelta por la evolución general que ha tenido ADLS para llegar donde está ahora. ADLS lleva 2 generaciones en su espalda; la primera ha pasado inadvertida por Dynamics y tenía las siguientes características:
- Creado para Hadoop
- Almacenamiento ilimitado, archivos de petabytes de tamaño
- Rendimiento optimizado para el análisis de macrodatos
- Preparado para la empresa: durable y con una elevada disponibilidad
La segunda generación (ADLS Gen 2) suma todas las funciones de la primera generación con las funcionalidades, la versatilidad y la capacidad de Azure Blob Storage. Data Lake Storage Gen2 proporciona la semántica del sistema de archivos, la seguridad de nivel de archivo y la escala, un almacenamiento por niveles de bajo costo, con funcionalidades de alta disponibilidad y recuperación ante desastres.
¿Cuál es el objetivo?
Una vez ya conocemos las características y la esencia de este servicio de Azure vamos a enumerar cuales son los objetivos de unirlo a D365FO.
- Extraer datos en tiempo real
- No depender de trabajos de extracción de datos (como hacemos actualmente con BYOD)
- No depender de Data Entities (por tanto no dependemos de tareas de desarrollo)
- Unificar fuentes de datos (Datalake nos permite conectar no solo D365FO sino otras fuentes de datos externas y centralizarlo todo en un solo servicio)
Infraestructura
En la siguiente imagen podéis ver la idea cuanto a infraestructura de servicios de Azure que está detrás de esta funcionalidad.
Además de la propia funcionalidad de Datalake que instalaremos desde LCS son necesarios una serie de elementos más:
- CDMUtil: esta herramienta nos ayudará a poder visualizar nuestros datos desde Azure Synapse ya que será la encargada de generar unas vistas sobre los ficheros CSV generados por la exportación a Datalake.
- Azure Synapse Analytics: este servicio será el punto core de la funcionalidad, ya que será el punto de anclaje al que todo servicio de análisis tendrá que conectar para consultar los datos
Configuración en D365FO
Para poder usar esta característica en D365FO es necesario realizar la configuración de enlace entre el entorno de D365FO y PowerPlatform. Para ello LCS nos facilita el trabajo y podemos enlazarlo dando click en el siguiente botón:
Una vez hecho este paso previo podéis consultar la guía sobre la instalación de los servicios de Azure en el siguiente enlace:
Nos detendremos en el punto de instalación del propio Add-in. Es importante mencionar que la funcionalidad de la que estamos hablando dispone de unas funcionalidades públicas y otras que aún están en Preview. Desgraciadamente la parte en pruebas es la que más nos interesa ya que se trata del tiempo real propiamente dicho. Este punto solo está disponible para entornos de UAT Tier-2 y bajo petición sobre entornos productivos. Así pues, tendremos la posibilidad de probarlo si marcamos el check relacionado del asistente de instalación de LCS.
Una vez instalado podemos dirigirnos a D365FO a la siguiente ruta:
Administración del sistema > Configurar > Exportar datos a Azure Data Lake
Si no vemos esta ruta podemos acceder mediante la URL añadiendo la siguiente información:
&mi=DataFeedsDefinitionWorkspace
Veremos que nos aparecen todas y cada una de las tablas de D365FO, tanto estándar como personalizadas, y mediante los botones "Activar" y "Desactivar" podemos hacer que éstas se sincronicen en Datalake.
Además en la columna "Último cambio procesado" podremos ver cuando se realizó la última sincronización de cambios:
Hecho esto, es todo lo que tenemos que configurar en D365FO. Como veis es muy sencillo la activación de la funcionalidad desde el propio entorno, y podemos acceder cuando queramos para activar o desactivar las tablas que necesitemos.
CDMUtil
Pero no todo acaba aquí. Cuando hemos activado la sincronización los datos navegan desde nuestro entorno de D365FO hacia la cuenta de almacenamiento de Datalake. La apariencia de nuestros datos es en forma de CSV organizados en carpetas y subcarpetas siguiendo la estructura de CDM (Common Data Model).
Es por ello que es necesario una herramienta que nos permita crear un puente entre algo fácil de leer y el entramado de archivos de Datalake. Esta herramienta es CDMUtil que podéis descargar desde el siguiente repositorio de Github:
Una vez descargada tenemos que modificar el archivo siguiente:
Concretamente asignar correctamente los valores de la siguiente imagen a los creados en nuestro portal de Azure:
Una vez configurada la herramienta y ejecutada nos va a construir una serie de vistas (una por cada tabla activada en D365FO) en nuestro Azure Synapse. La visión que vamos a tener será la de la siguiente imagen, la de una base de datos con vistas exactamente iguales cuanto a estructura y tipología de columnas a las que tenemos en la base de datos de origen.
Es importante tener en cuenta que cada vez que activemos una nueva tabla o que realicemos cambios en la estructura de una de ellas hay que volver a ejecutar CDMUtil para que las vistas sean refrescadas.
También podemos configurar la herramienta para que se ejecute automáticamente cuando hay un cambio en la estructura de Datalake pero no vamos a detallar esta configuración.
Análisis de datos posterior
Una vez ya tenemos nuestras vistas en Azure Synapse ya podríamos conectar nuestra herramienta de análisis (ya sea PowerBI, Excel...) y empezar a crear nuestras métricas. Pero a menudo es posible que no solamente tengamos que tener en cuenta los datos de D365FO sino que pueden existir orígenes de datos diferentes al ERP y es nuestra tarea la de crear la solución que más se adecue a nuestras necesidades.
Para ello os adjunto a continuación una tabla resumen extraída de la TechTalk sobre arquitectura de Datalake que podéis ver en el siguiente enlace:
Espero que os haya gustado este artículo. Se esperan grandes cambios en la integración de las distintas aplicaciones del ecosistema Dynamics!!
*This post is locked for comments