Daten aus Microsoft Dataverse streamen

Mit Datastream können Sie Verlaufsdaten und inkrementelle Änderungen aus einer Microsoft Dataverse-Umgebung für Analysen und Datenintegration replizieren. Dataverse ist eine cloudbasierte Datenplattform zum Speichern und Verwalten von Daten, die von Geschäftsanwendungen verwendet werden.

Bevor Sie eine Dataverse-Quelle konfigurieren, sollten Sie sich die Schlüsselbegriffe, das Replikationsverhalten, die unterstützten Versionen und die bekannten Einschränkungen in Datastream ansehen.

Wichtige Begriffe

Dataverse verwendet die folgenden Konzepte:

  • 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 ein Feld, ist ein Attribut einer Tabelle und ähnelt einer Spalte in relationalen Datenbanken.
  • Eine Zeile ist ein bestimmter Eintrag 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. Datastream fragt anhand des von Ihnen festgelegten Intervalls nach Änderungen an der Quelle.

Beim Replizieren von Daten aus einer Dataverse-Quelle wird Folgendes beobachtet:

  • 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 Standardheader (Accept: application/json, OData-MaxVersion: 4.0, OData-Version: 4.0) verwendet.
  • Authentifizierung: Datastream übernimmt die Authentifizierung mit OAuth 2.0 und dem Genehmigungstyp „Clientanmeldedaten“. Datastream ruft Tokens von der Microsoft Identity Platform ab.
  • Schemaerkennung: Dataverse-Schemas sind dynamisch. Datastream ermittelt Objektnamen und Schemas durch Abfragen des /EntityDefinitions-Endpunkts.

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

    • Datastream repliziert Standard- und benutzerdefinierte Dataverse-Tabellen. Virtuelle und private Tabellen sind ausgeschlossen.
    • Backfill von Verlaufsdaten: Wenn für einen Stream konfiguriert, repliziert Datastream alle Verlaufsdaten für enthaltene Tabellen. Dazu wird eine erste GET-Anfrage an die Entitätsgruppe gesendet und alle Seiten werden mithilfe des Attributs @odata.nextLink in den API-Antworten durchlaufen. Der Prefer: odata.maxpagesize=5000-Header wird verwendet.
    • Inkrementelle Synchronisierung: Datastream repliziert Einfüge- und Aktualisierungsereignisse. Dazu wird eine zeitstempelbasierte Synchronisierung verwendet, 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 erfasst keine Löschereignisse.
  • Abfrageintervall: Datastream fragt Änderungen gemäß dem Abfrageintervall ab, das Sie beim Erstellen des Streams festgelegt haben. Das Intervall wird im Messwert für die Datenaktualität des Streams berücksichtigt.

Alle replizierten Objekte unterstützen sowohl die inkrementelle Synchronisierung mit dem Feld modifiedon als auch den vollständigen Backfill.

Versionen

Datastream verwendet die Dataverse Web API-Version 9.1.

Bekannte Einschränkungen

Bekannte Einschränkungen bei der Verwendung von Dataverse als Quelle:

  • Bei der inkrementellen Synchronisierungsmethode, die auf dem Zeitstempel modifiedon basiert, werden keine Löschereignisse erfasst.
  • Datastream unterstützt die von Dataverse empfohlene Funktion zur Änderungsverfolgung, die Delta-Links (@odata.deltaLink) verwendet, nicht. Das liegt daran, dass das Speichern der Delta-Link-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.
  • Die 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