Daten aus Microsoft Dataverse streamen

Datastream unterstützt die Replikation von Änderungsereignissen aus einer Microsoft Dataverse-Instanz. Dataverse ist eine cloudbasierte Datenplattform, mit der Sie Daten, die von Geschäftsanwendungen verwendet werden, sicher speichern und verwalten können.

Diese Seite enthält Informationen zu folgenden Themen:

  • Die wichtigsten Begriffe, die Sie kennen müssen, wenn Sie Daten aus Dataverse replizieren.
  • Das Verhalten von Datastream zur Verarbeitung von Daten, die aus einer Dataverse-Quellumgebung abgerufen werden
  • Die von Datastream unterstützten Versionen von Dataverse.
  • Bekannte Einschränkungen bei Verwendung von Dataverse als Quelle

Wichtige Begriffe

Dataverse basiert auf den folgenden Konzepten:

  • Eine Tabelle, früher eine Entität, ähnelt einer Tabelle in relationalen Datenbanken. Dataverse enthält standardmäßig Standardtabellen, Sie können aber auch benutzerdefinierte Tabellen erstellen.
  • Eine Spalte, früher Feld, ist ein Attribut einer Tabelle und ähnelt einer Spalte in relationalen Datenbanken.
  • Eine Zeile ist ein bestimmter Datensatz in einer Tabelle und ähnelt einer Zeile in relationalen Datenbanken.

Verhalten

Die Unterstützung von Dataverse-Quellen in Datastream basiert auf der Dataverse Web API, die das Open Data Protocol (OData) verwendet. Bei Datastream wird in dem von Ihnen festgelegten Intervall nach Änderungen an der Quelle gesucht.

Bei der Replikation von Daten aus einer Dataverse-Quelle ist Folgendes zu beachten:

  • API-Interaktion: Datastream interagiert mit der Dataverse Web API über RESTful-Anfragen. Die URL der Basisumgebung lautet https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/. Es werden Standardüberschriften (Accept: application/json, OData-MaxVersion: 4.0, OData-Version: 4.0) verwendet.
  • Authentifizierung: Datastream verarbeitet die Authentifizierung mit OAuth 2.0 und dem Grant-Typ „Clientanmeldedaten“. Datastream ruft Tokens von der Microsoft Identity Platform ab.
  • Schemaermittlung: Dataverse-Schemas sind dynamisch. Datastream ermittelt Objektnamen und Schemas durch Abfragen des /EntityDefinitions-Endpunkts.

    • Objektnamen: Datastream ruft Objektnamen ab, indem eine GET-Anfrage mit dem $filter=TableType ne 'Virtual' and IsPrivate eq false-Filter und dem $select=EntitySetName-Parameter an den /EntityDefinitions-Entitätssatzpfad gesendet wird.
    • Objektschema: Datastream ruft das Objektschema pro Einheit ab, indem eine GET-Anfrage mit dem Parameter $expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName) und dem Filter $filter=EntitySetName eq '[objectName]' an den Pfad des /EntityDefinitions-Einheitssatzes gesendet wird.
  • Datenreplikation:

    • Datastream repliziert Standard- und benutzerdefinierte Dataverse-Tabellen. Virtuelle und private Tabellen sind ausgeschlossen.
    • Backfill für Verlaufsdaten: Wenn diese Option für einen Stream konfiguriert ist, repliziert Datastream alle Verlaufsdaten für die enthaltenen Tabellen. Dazu wird eine erste GET-Anfrage an die Attributgruppe gesendet und alle Seiten werden mithilfe des Attributs @odata.nextLink durchlaufen, das in API-Antworten bereitgestellt wird. Der Header Prefer: odata.maxpagesize=5000 wird verwendet.
    • Inkrementelle Synchronisierung: Datastream repliziert Einfüge- und Aktualisierungsereignisse. Dies wird durch die Verwendung der zeitstempelbasierten Synchronisierung erreicht, bei der Datensätze gefiltert werden, bei denen das Feld modifiedon größer als die letzte Synchronisierungszeit ($filter=modifiedon gt [last_sync_timestamp]) ist. Datastream werden keine Löschereignisse erfasst.
  • Abfrageintervall: Datastream fragt Änderungen gemäß dem Abfrageintervall ab, das Sie beim Erstellen des Streams festlegen. Das Intervall wird im Messwert für die Datenaktualität des Streams berücksichtigt.

Alle replizierten Objekte unterstützen sowohl die inkrementelle Synchronisierung über das Feld modifiedon als auch das vollständige Backfill.

Versionen

Datastream verwendet die Dataverse Web API-Version 9.1.

Bekannte Einschränkungen

Bekannte Einschränkungen bei Verwendung von Dataverse als Quelle:

  • Bei der inkrementellen Synchronisierungsmethode, die auf dem modifiedon-Zeitstempel basiert, werden keine Löschereignisse erfasst.
  • Datastream unterstützt die von Dataverse empfohlene Funktion zur Änderungsnachverfolgung, bei der Deltalinks (@odata.deltaLink) verwendet werden, nicht. Das liegt daran, dass das Speichern der Deltalink-URL, die für nachfolgende inkrementelle Abrufe erforderlich ist, nicht unterstützt wird.
  • Die Replikation ist auf Standard- und benutzerdefinierte Tabellen beschränkt. Virtuelle und private Tabellen werden nicht unterstützt.
  • Eine genaue Aktualisierung des Felds modifiedon in den Quelltabellen ist entscheidend, damit die inkrementelle Synchronisierung wie erwartet funktioniert.
  • Wenn Sie die Labels für Picklist-Felder abrufen möchten, müssen Datenanfragen den Header Prefer: data.include-annotations="*" enthalten, nicht nur die Ganzzahlwerte.

Nächste Schritte