Trasmettere dati in streaming da Microsoft Dataverse

Datastream ti consente di replicare i dati storici e le modifiche incrementali da un ambiente Microsoft Dataverse per l'analisi e l'integrazione dei dati. Dataverse è una piattaforma di dati basata su cloud per l'archiviazione e la gestione dei dati utilizzati dalle applicazioni aziendali.

Prima di configurare un'origine Dataverse, consulta i termini chiave, il comportamento di replica, le versioni supportate e le limitazioni note in Datastream.

Termini chiave

Dataverse opera utilizzando i seguenti concetti:

  • Una tabella, in precedenza un'entità, è simile a una tabella nei database relazionali. Dataverse include tabelle standard per impostazione predefinita, ma puoi anche creare tabelle personalizzate.
  • Una colonna, in precedenza un campo, è un attributo di una tabella ed è simile a una colonna nei database relazionali.
  • Una riga è un record specifico in una tabella ed è simile a una riga nei database relazionali.

Comportamento

Il supporto dell'origine Dataverse in Datastream si basa sull'API web Dataverse, che utilizza il protocollo Open Data Protocol (OData). Datastream esegue il polling delle modifiche all'origine in base all'intervallo impostato.

Quando replichi i dati da un'origine Dataverse, viene osservato il seguente comportamento:

  • Interazione con l'API: Datastream interagisce con l'API web Dataverse utilizzando richieste RESTful. L'URL dell'ambiente di base è https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/. Vengono utilizzate le intestazioni standard (Accept: application/json, OData-MaxVersion: 4.0, OData-Version: 4.0).
  • Autenticazione: Datastream gestisce l'autenticazione utilizzando OAuth 2.0 con il grant type delle credenziali client. Datastream ottiene i token da Microsoft Identity Platform.
  • Rilevamento dello schema: gli schemi Dataverse sono dinamici. Datastream rileva i nomi e gli schemi degli oggetti eseguendo query sull'endpoint /EntityDefinitions.

    • Nomi degli oggetti: Datastream recupera i nomi degli oggetti inviando una richiesta GET al percorso del set di entità /EntityDefinitions con il filtro $filter=TableType ne 'Virtual' and IsPrivate eq false e il parametro $select=EntitySetName.
    • Schema degli oggetti: Datastream recupera lo schema degli oggetti per entità inviando una richiesta GET al percorso del set di entità /EntityDefinitions con il parametro $expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName) e il filtro $filter=EntitySetName eq '[objectName]'.
  • Replica dei dati:

    • Datastream replica le tabelle Dataverse standard e personalizzate. Sono escluse le tabelle virtuali e private.
    • Backfill storico: se configurato per uno stream, Datastream replica tutti i dati storici per le tabelle incluse. Questo risultato si ottiene inviando una richiesta GET iniziale al set di entità e scorrendo tutte le pagine utilizzando la proprietà @odata.nextLink fornita nelle risposte dell'API. Viene utilizzata l'intestazione Prefer: odata.maxpagesize=5000.
    • Sincronizzazione incrementale: Datastream replica gli eventi di inserimento e aggiornamento. Questo risultato viene ottenuto utilizzando la sincronizzazione basata su timestamp, filtrando i record in cui il campo modifiedon è maggiore dell'ora dell'ultima sincronizzazione ($filter=modifiedon gt [last_sync_timestamp]). Datastream non acquisisce gli eventi di eliminazione.
  • Intervallo di polling: Datastream esegue il polling delle modifiche in base all'intervallo di polling impostato durante la creazione dello stream. L'intervallo si riflette nella metrica di aggiornamento dei dati dello stream.

Tutti gli oggetti replicati supportano sia la sincronizzazione incrementale, utilizzando il campo modifiedon, sia il backfill completo.

Versioni

Datastream utilizza l'API web Dataverse versione 9.1.

Limitazioni note

Le limitazioni note per l'utilizzo di Dataverse come origine includono:

  • Il metodo di sincronizzazione incrementale, basato sul timestamp modifiedon, non acquisisce gli eventi di eliminazione.
  • Datastream non supporta la funzionalità di monitoraggio delle modifiche consigliata da Dataverse che utilizza i link delta (@odata.deltaLink). Questo perché l'archiviazione dell'URL del link delta richiesto per i successivi pull incrementali non è supportata.
  • La replica è limitata alle tabelle standard e personalizzate. Le tabelle virtuali e private non sono supportate.
  • L'aggiornamento accurato del campo modifiedon nelle tabelle di origine è fondamentale per garantire che la sincronizzazione incrementale funzioni come previsto.
  • Per recuperare le etichette per i campi Picklist, le richieste di dati devono includere l'intestazione Prefer: data.include-annotations="*", non solo i valori interi.

Passaggi successivi