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.
- Objektnamen: Datastream ruft Objektnamen ab, indem eine
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.nextLinkdurchlaufen, das in API-Antworten bereitgestellt wird. Der HeaderPrefer: odata.maxpagesize=5000wird 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
modifiedongröß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
modifiedonin 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 HeaderPrefer: data.include-annotations="*"enthalten, nicht nur die Ganzzahlwerte.