Transmite datos desde Microsoft Dataverse

Datastream te permite replicar datos históricos y cambios incrementales desde un entorno de Microsoft Dataverse para el análisis y la integración de datos. Dataverse es una plataforma de datos basada en la nube para almacenar y administrar los datos que usan las aplicaciones empresariales.

Antes de configurar una fuente de Dataverse, revisa los términos clave, el comportamiento de replicación, las versiones compatibles y las limitaciones conocidas en Datastream.

Términos clave

Dataverse funciona con los siguientes conceptos:

  • Una tabla, antes llamada entidad, es similar a una tabla en las bases de datos relacionales. Dataverse incluye tablas estándar de forma predeterminada, pero también puedes crear tablas personalizadas.
  • Una columna, antes un campo, es un atributo de una tabla y es similar a una columna en las bases de datos relacionales.
  • Una fila es un registro específico en una tabla y es similar a una fila en las bases de datos relacionales.

Comportamiento

La compatibilidad con la fuente de Dataverse en Datastream se basa en la API web de Dataverse, que usa el protocolo de datos abiertos (OData). Datastream sondea los cambios en la fuente según el intervalo que establezcas.

Cuando se replican datos de una fuente de Dataverse, se observa el siguiente comportamiento:

  • Interacción con la API: Datastream interactúa con la API web de Dataverse a través de solicitudes RESTful. La URL del entorno base es https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/. Se usan encabezados estándar (Accept: application/json, OData-MaxVersion: 4.0, OData-Version: 4.0).
  • Autenticación: Datastream controla la autenticación con OAuth 2.0 con el tipo de permiso de credenciales de cliente. Datastream obtiene tokens de la plataforma de identidad de Microsoft.
  • Detección de esquemas: Los esquemas de Dataverse son dinámicos. Datastream descubre nombres y esquemas de objetos consultando el extremo /EntityDefinitions.

    • Nombres de objetos: Datastream recupera los nombres de los objetos enviando una solicitud GET a la ruta del conjunto de entidades /EntityDefinitions con el filtro $filter=TableType ne 'Virtual' and IsPrivate eq false y el parámetro $select=EntitySetName.
    • Esquema de objetos: Datastream recupera el esquema de objetos por entidad enviando una solicitud GET a la ruta del conjunto de entidades /EntityDefinitions con el parámetro $expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName) y el filtro $filter=EntitySetName eq '[objectName]'.
  • Replicación de datos:

    • Datastream replica tablas de Dataverse estándar y personalizadas. Se excluyen las tablas virtuales y privadas.
    • Relleno histórico: Si se configura para una transmisión, Datastream replica todos los datos históricos de las tablas incluidas. Esto se logra enviando una solicitud GET inicial al conjunto de entidades y, luego, iterando por todas las páginas con la propiedad @odata.nextLink proporcionada en las respuestas de la API. Se usa el encabezado Prefer: odata.maxpagesize=5000.
    • Sincronización incremental: Datastream replica los eventos de inserción y actualización. Esto se logra con la sincronización basada en marcas de tiempo, en la que se filtran los registros en los que el campo modifiedon es mayor que la última hora de sincronización ($filter=modifiedon gt [last_sync_timestamp]). Datastream no captura los eventos de eliminación.
  • Intervalo de sondeo: Datastream sondea los cambios según el intervalo de sondeo que estableces cuando creas tu transmisión. El intervalo se refleja en la métrica de actualidad de los datos de la transmisión.

Todos los objetos replicados admiten la sincronización incremental, con el campo modifiedon, y el reabastecimiento completo.

Versiones

Datastream usa la versión v9.1 de la API web de Dataverse.

Limitaciones conocidas

Estas son algunas de las limitaciones conocidas para usar Dataverse como fuente:

  • El método de sincronización incremental, basado en la marca de tiempo modifiedon, no captura los eventos de eliminación.
  • Datastream no admite la función de seguimiento de cambios recomendada de Dataverse que usa vínculos delta (@odata.deltaLink). Esto se debe a que no se admite el almacenamiento de la URL del vínculo delta necesaria para las extracciones incrementales posteriores.
  • La replicación se limita a las tablas estándar y personalizadas. No se admiten las tablas virtuales ni privadas.
  • La actualización precisa del campo modifiedon en las tablas de origen es fundamental para garantizar que la sincronización incremental funcione como se espera.
  • Para recuperar las etiquetas de los campos Picklist, las solicitudes de datos deben incluir el encabezado Prefer: data.include-annotations="*", no solo los valores enteros.

¿Qué sigue?