¿Te imaginas poder acceder a los datos de tu empresa en tiempo real, sin afectar al rendimiento de tu sistema y con una infraestructura escalable y flexible? Esto es lo que te ofrece Azure Synapse Link, una herramienta que te permite exportar los datos de Finance and Operations y Dataverse a un almacén de datos externo.
En el panorama actual, es cada vez más común encontrar discusiones sobre la transformación o migración de los métodos tradicionales de integración entre Finance and Operations y Datalake hacia una infraestructura renovada. Uno de los cambios más significativos en este proceso radica en el traslado de la administración de esta funcionalidad desde el entorno de Finance hacia el portal de Power Platform.
Este cambio de paradigma se materializa en Azure Synapse Link, una herramienta robusta que permite exportar los datos tanto de Finance como de Dataverse hacia una cuenta de almacenamiento externa. A partir de este punto, se abre un abanico de posibilidades para cada entorno, quienes podrán emplear estos datos para generar informes o integraciones con aplicaciones de terceros o soluciones propias de Microsoft.
Después de un tiempo observando todas estas posibilidades, quizás la duda más grande que me ha venido a la mente es identificar y elegir cual es la mejor manera de hacerlo y cuales son las implicaciones de cada una de ellas.
Es por eso que la intención que tengo con este artículo es centralizar esta información, ver los ejemplos de cada tipología de implantación y como posteriormente se consumen estos datos. También veremos como influye en el coste de los recursos en Azure.
Empecemos por el principio, un poco de índice sobre el artículo:
¿Qué es Azure Synapse Link?
Azure Synapse Link es una funcionalidad que se administra desde Power Platform que nos permite exportar los datos de 2 fuentes de datos distintas a un Azure Storage:
Dataverse
Finance and Operations
Con esta funcionalidad podemos consumir estos datos sin tirar del transaccional y montar una infraestructura de DataWarehouse escalable y común para varias fuentes de datos.
Configuración en Finance and Operations previa
Cuanto a Finance and Operations se deben cumplir una serie de requisitos para que la integración pueda producirse:
Versión del entorno
10.0.36 (PU60) cumulative update 7.0.7036.133 or later.
10.0.37 (PU61) cumulative update 7.0.7068.109 or later.
10.0.38 (PU62) cumulative update 7.0.7120.59 or later
Habilitar la clave de configuración "Sql row version change tracking". En la versión 10.0.39 esta clave de configuración viene habilitada por defecto. https://learn.microsoft.com/en-us/power-apps/maker/data-platform/azure-synapse-link-select-fno-data#add-configurations-in-a-finance-and-operations-apps-environment
El entorno debe estar enlazado a un entorno de Power Platform. https://learn.microsoft.com/en-us/power-apps/maker/data-platform/azure-synapse-link-select-fno-data#link-your-finance-and-operations-environment-with-microsoft-power-platform
Tipologías de instalación
Pregunta previa
Una vez tenemos ya casi todos los elementos que necesitamos es necesario hacer una parada para pensar qué tipología de conexión queremos. Con ello podremos crear los recursos de Azure que se requieren.
La pregunta clave que hay que hacerse es: ¿cómo pleneamos consumir los datos?
Tenemos 3 respuestas posibles:
1. Acceso a tablas de Finance and Operations a través de consultas en Synapse Analytics
2. Cargar cambios incrementales en los datos en su propio almacén de datos
3. Acceder a tablas de Finance and Operations vía Microsoft Fabric
Esta pregunta es clave a la hora de determinar la infraestructura que hay que montar.
Una vez que se haya determinado cómo se planea consumir los datos, se puede identificar la funcionalidad específica que se necesita instalar:
Delta lake: Ofrece un mejor rendimiento de lectura al guardar los datos en formato delta parquet.
Actualización incremental: Facilita la carga de cambios incrementales en su almacén de datos, almacenando los datos en formato CSV.
Enlace a Fabric: Proporciona acceso a las tablas operativas de finanzas y operaciones a través de Microsoft Fabric.
Recursos necesarios
Para cada tipo de integración estos son los recursos de Azure necesarios a crear. IMPORTANTE: los recursos deben estar en la misma región de Azure que el entorno de Finance-Power Platform
Delta lake: Requiere una cuenta de almacenamiento GEN2 de Azure, un espacio de trabajo Synapse y un pool Spark Synapse. En este enlace tenéis los detalles de la instalación: https://learn.microsoft.com/en-us/power-apps/maker/data-platform/azure-synapse-link-delta-lake#prerequisites
Actualización incremental: Solo requiere de una cuenta de almacenamiento de Azure
Enlace a Fabric: Se necesita un espacio de trabajo Microsoft Fabric.
Con esta comprensión detallada de las opciones disponibles, será más fácil para los usuarios seleccionar la integración adecuada según sus necesidades específicas. Esto les permitirá aprovechar al máximo las capacidades de Azure Synapse Link y potenciar sus operaciones financieras de manera eficiente y efectiva.
Instalación
Vamos a detallar los pasos que hay que realizar para cada tipo de instalación. Es importante destacar que todas las instalaciones se hacen des del mismo sitio, en la plataforma de PowerApps del entorno correspondiente, en la sección de Azure Synapse Link:
__________________________________________________________________________________
Deltalake
Para la instalación del tipo Deltalake tenemos que marcar la siguiente configuración en todos los recuadros en verde:
Suscripción
Grupo de recursos
Área de trabajo de Synapse
Spark Pool
Cuenta de almacenamiento de Azure
Datalake incremental
Para la instalación del tipo Datalake incremental tenemos que marcar la siguiente configuración en todos los recuadros en verde:
Suscripción
Grupo de recursos
Cuenta de almacenamiento de Azure
Pasos posteriores
Le damos click a Next y nos aparecerá una pantalla que debemos configurar del siguiente modo para ambos tipos de instalación. En el caso de Deltalake viene marcado por defecto. Es importante tener en cuenta el tiempo de refresco ya que eso supondrá un aumento en el consumo de Azure sobretodo en el caso de Deltalake ya que usa un recurso de Spark (Azure Databricks) para generar los archivos parquet.
Una vez marcados los checks aparecerá la pestaña de tablas de Finance and Operations:
Y allí marcamos las tablas que queremos exportar mediante la funcionalidad:
__________________________________________________________________________________
Fabric
Para la instalación del tipo Fabric tenemos que cumplir los mismos pasos que para la instalación del Deltalake.
Una vez tenemos completada la fase de instalación de Deltalake veremos que si nos situamos encima de la conexión creada nos aparece un icono Link to Microsoft Fabric:
Nos pedirá a qué workspace de Fabric enlazarlo y a partir de aquí ya lo tendremos disponible:
Resultado final
Llegados a este punto ya tenemos nuestros datos sincronizándose con el exterior mediante la funcionalidad que estamos describiendo en este artículo. Ahora es necesario que veamos como nos los vamos a encontrar ya que varía mucho dependiendo del escenario.
Deltalake
En el caso de Deltalake tendremos en la cuenta de almacenamiento un contenedor con el nombre de nuestro entorno. Este nombre no es personalizable ya que viene por defecto configurado por la herramienta.
Y dentro de ese contenedor nos encontraremos con lo siguiente:
En la carpeta deltalake estarán los datos propiamente dichos ya convertidos por nuestro Spark Pool a formato parquet:
En la carpeta EntitySyncFailure podremos consultar el error en particular de alguna tabla que veamos que no se ha sincronizado con éxito, aunque este error lo podemos consultar también desde la propia plataforma donde hemos activado Synapse Link:
Y en la carpeta Changelog podemos encontrar los metadatos de cada tabla activada así como los cambios a nivel de estructura que hayan sufrido:
Addicionalmente hay carpetas con marcas temporales. En ellas se almacenan temporalmente los archivos incrementales en formato CSV antes de que estos sean transformados a parquet por el recurso Spark.
Datalake incremental
Para el caso de Datalake incremental la estructura que nos encontramos es exactamente la misma a excepción de la carpeta deltalake:
En este caso los datos residen en las carpetas con marca temporal, organizados jerárquicamente según el nombre de la tabla y con el contenido en formato CSV en particiones anuales:
Y los metadatos de las tablas dentro de la carpeta Microsoft.Athena.TrickleFeedService:
Fabric
El resultado final es el mismo que para Deltalake, la única diferencia radica a la hora de consumir los datos que lo trataremos en la siguiente sección.
Consumo de datos posterior
Ahora ya sabemos activar la funcionalidad, tenemos exportados los datos, sabemos como se almacenan estos datos en la cuenta de almacenamiento; pero...¿y ahora como los podemos explotar y usar?
Del mismo modo que en los anteriores apartados la manera de explotar los datos depende de la instalación que hayamos hecho. Así que vamos a diferenciarlos.
Deltalake
Para poder ver los datos de este tipo de instalación es necesario acceder a Synapse Studio. Recordemos que Synapse es uno de los recursos que hemos implementado y que en él hay el Spark Pool. Esta dupla se ha encargado de montarnos una especie de base de datos SQL (sin serlo) totalmente accesible mediante consultas con la misma estructura de tablas que tiene Finance and Operations. Así pues veremos allí todas las tablas, podremos lanzar queries sobre ellas y montar vistas para facilitar la ingesta de datos.
Para acceder a Synapse Studio nos colocamos en el Synapse Link que hemos creado en la plataforma de PowerApps y damos click en el icono de ir a Synapse Workspace:
Aquí tenéis un ejemplo de consulta:
Del mismo modo también podéis acceder a los datos usando SQL Management Studio usando Synapse como servidor SQL. Los datos de conexión los podéis encontrar en el recurso en el portal de Azure:
Datalake incremental
Para poder explotar los datos exportados mediante datalake incremental es necesario conocer el concepto de Common Data Model.
El Common Data Model (CDM) es un sistema de metadatos que permite compartir datos y su significado de manera sencilla entre aplicaciones y procesos empresariales.
Estructura del Common Data Model:
El CDM es una colección estándar y extensible de esquemas (entidades, atributos, relaciones) que representan conceptos y actividades empresariales con semántica bien definida.
El CDM facilita la interoperabilidad de datos al proporcionar una estructura común para representar información.
Las propiedades de origen incluyen:
Formato: Debe ser cdm.
Metadata format: Indica si estás usando manifest o model.json.
Root location: Nombre del contenedor de la carpeta CDM.
Folder path: Ruta de la carpeta raíz de CDM.
Entity path: Ruta de la entidad dentro de la carpeta.
Manifest name: Nombre del archivo de manifiesto (por defecto es ‘default’).
Schema linked service: El servicio vinculado donde se encuentra el corpus (por ejemplo, ‘adlsgen2’ o ‘github’).
Este formato CDM que comentamos es la estructura que hemos visto en la cuenta de almacenamiento. Una serie de ficheros CSV (datos) con otros en formato JSON (estructura).
Conocido este formato la tarea posterior para poder operar con ellos es montar un pipeline o similar en Azure Data Factory para ir trasladando estos datos de forma incremental a un destino Data Warehouse. En artículos posteriores nos adentraremos a como realizar este tipo de pipelines pero os dejo un par de links donde encontrar tutoriales o plantillas ya hechas:
Fabric
Por el momento el enlace entre Finance and Operations y Fabric no está activo por lo que esta sección será alimentada cuando esté disponible.
Limitaciones
En el siguiente link podéis encontrar las limitaciones que hay en el uso de Synapse Link con Finance and Operations:
Conclusiones
Espero que con este artículo haya podido hacer claro el ideario que hay detrás de todo esto, las diferentes maneras de montarlo y que cada uno sea capaz de decidir cual de las instalaciones es la más adecuada en su caso. Hemos podido ver lo siguiente:
Azure Synapse Link: Descubrimos cómo esta herramienta nos permite exportar datos de Finance and Operations y Dataverse a una cuenta de almacenamiento externa, abriendo un abanico de posibilidades para informes e integraciones.
Configuración Sencilla: Aprendimos a configurar esta funcionalidad desde el portal de Power Platform, eligiendo la tipología de instalación adecuada según nuestras necesidades.
Almacenamiento Inteligente: Exploramos cómo se almacenan los datos en la cuenta de almacenamiento según el formato elegido, y cómo acceder y consumir estos datos desde Synapse Analytics, SQL Management Studio o Microsoft Fabric.
Limitaciones y Recursos: Repasamos las limitaciones al usar Azure Synapse Link con Finance and Operations, y los recursos de Azure necesarios para cada tipo de instalación.
Nos vemos en el sigiuente artículo!!