Explotar Dataverse en Power BI (II) mediante Azure SQL
Explotar Dataverse en Power BI (II) mediante Azure SQL

Explotar Dataverse en Power BI (II) mediante Azure SQL

En el anterior post te expliqué cómo podemos extraer los datos de Dataverse y sincronizarlos con ficheros en una cuenta de almacenamiento (Azure Blob Storage). Si no lo has visto, te invito a verlo aquí:

Explotar datos de Dataverse en Power BI (I) con Azure Blob Storage – Dynamics Box

Ahora vamos a trabajar para que estos datos viajen desde el blob storage a un Azure SQL Server y esto lo vamos a conseguir con Azure Data Factory. Seguiremos utilizando Azure Blob Storage para extraer los datos de Dataverse pero.. ¿Qué debemos tener en cuenta para el coste de Azure Data Factory?

  • El propio coste de Azure Blob Storage
  • Frecuencia de sincronización: Azure Data Factory nos cobrará por número de ejecuciones
  • Cantidad de datos: Ya que, también tendremos que contar el tiempo de ejecución
  • Control de simultaneidad: También debemos tener en cuenta si queremos que estos datos se sincronicen en paralelo

Esto son los factores que, en mi caso, me hicieron decantarme por una opción más económica que Azure Synapse Analytics. Sin embargo puedes hacerte una estimación desde esta página.

Blob Storage + Azure Data Factory = Azure SQL

Tendremos que dar de alta una instancia de Azure Data Factory. Cuánto más cerca lo escojamos, más económica nos costará la ejecución. Una vez creado, abriremos Data Factory Studio:

Una vez aquí nos toca configurar nuestro pipeline. Si queremos ir más rápidos podemos escoger una plantilla ya existente:

Aquí buscaremos dataverse y encontraremos justo lo que queremos conseguir:

Sin embargo, iremos un paso más y configuraremos el pipeline a mano. De esta manera podemos observar todos los detalles del proceso:

Configurar datos de origen

Este flujo debe ir desde el Azure Blob Storage hasta Azure SQL. Vamos a añadir un origen con los siguientes datos:

ParámetroValor
Nombre Blob_storage
Tipo de origenInsertado
Tipo de conjuntoCommon Data Service
Servicio vinculado*Crearemos uno y configuraremos la conexión a Blob Storage
MuestreoDeshabilitado

Crear la conexión con el servicio de blob storage es increíblemente sencillo tanto si estamos en la misma suscripción como si no:

Ahora nos vamos a dirigir a la pestaña de “Opciones de origen” y aquí vas a marcar el formato de metadatos en Model.json y justo a la derecha del campo “Ubicación Raíz” tenemos el botón examinar y vamos a seleccionar la carpeta que ha creado Dataverse (en mi caso dataverse-eromerof…):

Justo debajo de todo esto tenemos un campo que cita “Entidad”. Aquí debemos introducir el nombre lógico de la entidad (Por ejemplo account o contact):

Vamos a la siguiente pestaña de “Proyección” y vamos a hacer click sobre el botón “Opciones de esquemas”:

Y vamos a marca la opción de “Permitir desfase de esquemas”:

Configurar datos de destino (Azure SQL)

Ahora vamos a configurar los datos de destino que en nuestro caso será un Azure SQL. vamos a pulsar sobre el ‘+’ que tenemos justo debajo del cuadro de origen y vamos a escoger la opción de “receptor”:

Aquí tenemos que configurar el conjunto de datos que será un Azure SQL. Utilizaremos los siguientes valores:

ParámetroValor
Nombre AzureSQLTable
Secuencia entranteBlobStorage
Tipo de receptorConjunto de datos
Conjunto de datos*Debemos configurar la conexión a la tabla*
OpcionesMarcamos la de “Permitir desfase del esquema”

Para crear el conjunto de datos debemos seleccionar el proveedor de Azure SQL Database:

Creamos la conexión al servicio:

Y por último pedimos que cree una nueva tabla y que se llame dbo.account:

En el flujo en la pestaña de “Configuración” debemos marcar la opción de “Volver a crear tabla”. Esta opción permitirá que el esquema de la tabla se vuelva a crear cada vez que insertemos. No es lo mejor para el rendimiento pero es la mejor opción para sincronizar campos entre tablas.

Si has llegado hasta aquí.. ¡Enhorabuena! Significa que hemos pasado la parte más tediosa del proceso. ¿Qué nos queda? Pues decirle al flujo de datos la frecuencia y el orden en que debe ejecutarse.

Configurar frecuencia y orden de ejecución

Para ello vamos a desplazarnos a la parte de “Canalizaciones” y vamos a crear una nueva:

Vamos a arrastrar el flujo de datos hacia la zona de trabajo del pipeline:

Por último vamos a agregar el desencadenador donde vamos a configurar la frecuencia de ejecución del pipeline y… voilà!

Y.. si has llegado aquí ya has conseguido configurar el pipelines. Ahora tienes que guardar, publicar y ejecutar. En mi caso siguiendo estos pasos he logrado sincronizar los datos con mi tabla pero si tienes dudas te espero en comentarios 😉

2 comentarios

    1. Enrique Romero

      Hola Diego,

      Con esta configuración si ya que cada vez que se importa al Azure SQL hemos configurado “recrear la tabla”. Quizá no es lo más óptimo pero nos aseguramos que no haya errores de sincronización 😉

      Un abrazo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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