Freigeben über


Azure Synapse Link for Dataverse FAQ

Dieser Artikel enthält Informationen zu häufig gestellten Fragen zum Export von Microsoft Dataverse-Tabellendaten nach Azure Synapse Analytics und Azure Data Lake.

Kann ich Aufgaben wie das Erstellen, Aktualisieren, Löschen oder Festlegen von Richtlinien zum automatischen Löschen für Datendateien im verbundenen Azure-Speicher manuell ausführen?

Datendateien sollten nicht von der Kundschaft geändert werden und es sollten keine Kundendateien in den Datenordnern abgelegt werden.

Hinweis

Um veraltete und stagnierende Daten im Data Lake zu löschen, ohne den Azure Synapse Link zu beschädigen, sollten Sie die Funktion Abfragen und Analysieren der inkrementellen Aktualisierungen verwenden

Wie kann ich auf meine Tabellenbeziehungen zugreifen?

Für den Zugriff auf Many-to-Many-Beziehungen steht die Beziehung als Tabelle zur Verfügung, die Sie auf der Seite Tabellen hinzufügen für eine neue Verknüpfung und auf der Seite Tabellen verwalten für eine bereits bestehende Verknüpfung auswählen können.

Hinweis

Alle Beziehungsdaten sind standardmäßig im Nur-Anhängen-Modus, wenn sie im CSV-Format geschrieben werden.

Azure Synapse Link ist bei Dataverse ein kostenloses Feature. Für die Nutzung von Azure Synapse Link for Dataverse fallen keine zusätzlichen Gebühren durch Dataverse an. Berücksichtigen Sie jedoch, dass eventuell Kosten für den Azure-Dienst entstehen:

Was passiert, wenn ich eine Spalte hinzufüge?

Wenn Sie einer Tabelle in der Quelle eine neue Spalte hinzufügen, wird diese auch am Ende der Datei im Ziel in der entsprechenden Dateipartition hinzugefügt. Während in den Zeilen, die vor dem Hinzufügen der Spalte vorhanden waren, in der neuen Spalte nicht angezeigt werden, wird in neuen oder aktualisierten Zeilen die neu hinzugefügte Spalte angezeigt.

Was passiert, wenn ich eine Spalte lösche?

Wenn Sie eine Spalte aus einer Tabelle in der Quelle löschen, wird die Spalte nicht vom Ziel entfernt. Stattdessen werden die Zeilen nicht mehr aktualisiert und unter Beibehaltung der vorherigen Zeilen als null markiert.

Was passiert, wenn ich den Datentyp einer Spalte ändere?

Das Ändern des Datentyps einer Spalte ist ein Breaking Change und Sie müssen die Verknüpfung aufheben und erneut erstellen.

Was passiert, wenn ich eine Zeile lösche?

Das Löschen einer Zeile wird unterschiedlich behandelt, je nachdem, welche Datenschreiboptionen Sie auswählen:

  • Direktes Update im CSV-Format: Dies ist der Standardmodus. Wenn Sie in diesem Modus eine Tabellenzeile löschen, wird die Zeile auch von der entsprechenden Datenpartition im Azure Data Lake gelöscht. Mit anderen Worten, Daten werden dauerhaft vom Ziel gelöscht.
  • Nur Anhängen mit CSV-Format und inkrementeller Ordneraktualisierung: In diesem Modus wird, wenn eine Dataverse-Tabellenzeile gelöscht wird, sie nicht dauerhaft im Ziel gelöscht. Stattdessen wird eine Zeile hinzugefügt und als isDeleted=True für die Datei in der entsprechenden Datenpartition im Azure Data Lake festgelegt.
  • In Delta Lake-Format exportieren: Azure Synapse Link führt während des nächsten Delta-Synchronisierungszyklus eine vorläufige Löschung der Daten durch, gefolgt von einer endgültigen Löschung nach 30 Tagen.

Warum sehe ich in der exportierten Datei keine Spaltenüberschrift?

Azure Synapse Link folgt dem Common Data Model, damit Daten und ihrer Bedeutung in Anwendungen und Geschäftsprozessen wie Microsoft Power Apps, Power BI, Dynamics 365 und Azure gemeinsam genutzt werden können. In jedem CDM-Ordner werden Metadaten wie eine Spaltenüberschrift in der Datei model.json gespeichert. Weitere Informationen: Common Data Model und Azure Data Lake Storage Gen2 | Microsoft Learn

Warum vergrößert oder ändert sich die Länge der Datei Model.json für die Datentypen und behält nicht bei, was in Dataverse definiert ist?

Model.json behält die Datenbanklänge für die Größe der Spalte bei. Dataverse hat ein Konzept der Datenbanklänge für jede Spalte. Wenn Sie eine Spalte mit einer Größe von 200 erstellen und diese später auf 100 reduzieren, erlaubt Dataverse trotzdem, dass Ihre vorhandenen Daten in Dataverse vorhanden sind. Dies wird erreicht, indem der Wert DBLength bei 200 und MaxLength bei 100 gehalten wird. Was Sie in Model.json sehen, ist DBLength, und wenn Sie das für nachgelagerte Prozesse verwenden, werden Sie nie weniger Platz für Ihre Dataverse-Spalten bereitstellen.

Hinweis

Memofelder werden wie folgt definiert: varchar(max) mit einer standardmäßigen maximalen Länge von 9999.

Welche Datums- und Zeitformate können in exportierten Dataverse Tabellen erwartet werden?

Es gibt drei Datums- und Zeitformate, die in exportierten Dataverse Tabellen erwartet werden können.

Spaltenname Formatieren Datentyp Beispiel
SinkCreatedOn und SinkModifiedOn M/d/yyyy H:mm:ss tt DateTime 6/28/2021 4:34:35 PM
CreatedOn yyyy-MM-dd'T'HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
Alle andere Spalten yyyy-MM-dd'T'HH:mm:ss'Z' DateTime 2021-06-25T16:21:12Z

Hinweis

Der Datentyp CreatedOn wurde am 29.07.2022 von datetime auf datetimeOffset geändert. Um das Datentypformat für eine vor der Änderung erstellte Tabelle zu bearbeiten, löschen Sie die Tabelle und fügen Sie sie erneut hinzu.

Sie können verschiedene Spaltenverhalten für eine Datums- und Uhrzeitspalte in Dataverse auswählen, wodurch das Datentypformat aktualisiert wird. Weitere Informationen: Verhalten und Format der Datums- und Uhrzeitspalten

Warum sehe ich für einige Dataverse-Tabellen die Dateinamen 1.csv oder 1_001.csv anstelle der regulären nach Datum und Uhrzeit partitionierten Dateinamen?

Dieses Verhalten wird erwartet, wenn Sie den Exportmodus „Nur Anfügen“ wählen und Tabellen ohne eine gültige CreatedOn-Spalte haben. Blobs werden in Dateien wie 1.csv und 2.csv organisiert (wobei aufgrund des Fehlens eines gültigen Erstellungsdatums eine benutzerdefinierte Partitionierung verwendet wird). Wenn eine Partition 95 % des MaxBlockPerBlobLimit erreicht, generiert das System automatisch eine neue Datei – hier dargestellt als 1_001.csv.

Wann sollte ich eine jährliche oder monatliche Partitionsstrategie verwenden?

Für Dataverse Tabellen, in denen das Datenvolumen innerhalb eines Jahres hoch ist, empfehlen wir die Verwendung monatlicher Partitionen. Dies führt zu kleineren Dateien und einer besseren Leistung. Wenn die Zeilen in Dataverse-Tabellen häufig aktualisiert werden, hilft die Aufteilung in mehrere kleinere Dateien außerdem, die Leistung bei In-Place-Updates zu verbessern. Delta Lake ist aufgrund seiner besseren Leistung im Vergleich zum CSV-Format nur mit jährlicher Partitionierung verfügbar.

Was ist der Modus „Nur Anhängen“ und was ist der Unterschied zwischen dem Modus „Nur Anhängen“ und dem Modus „Direkte Aktualisierung“?

Im Modus „Nur anhängen“ werden inkrementelle Daten von Dataverse-Tabellen an die entsprechende Dateipartition im Lake angehängt. Weitere Informationen finden Sie unter: Erweiterte Konfigurationsoptionen in Azure Synapse Link

Wann verwende ich den Modus „Nur anhängen“ für eine historische Ansicht von Änderungen?

Der Modus Nur anhängen ist die empfohlene Option zum Schreiben von Dataverse Tabellendaten in den Lake, insbesondere wenn das Datenvolumen innerhalb einer Partition mit häufig wechselnden Daten hoch ist. Auch dies ist eine häufig verwendete und sehr empfohlene Option für Unternehmenskunden. Darüber hinaus können Sie diesen Modus für Szenarien verwenden, in denen Änderungen von Dataverse schrittweise überprüft und die Änderungen für ETL-, AI- und ML-Szenarien verarbeitet werden sollen. Der Modus Nur anhängen bietet einen Verlauf von Änderungen anstelle der letzten Änderung oder Aktualisierung an Ort und Stelle und aktiviert mehrere Zeitreihen aus KI-Szenarien, z. B. Vorhersage oder Prognoseanalysen basierend auf historischen Werten.

Wie rufe ich die aktuellste Zeile der einzelnen Datensätze ab und wie schließe ich gelöschte Zeilen aus, wenn ich Daten im Modus „Nur Anhängen“ exportiere?

Im Nur-Anhängen-Modus sollten Sie die neueste Datensatzversion mit derselben ID unter Verwendung von VersionNumber und SinkModifiedOn identifizieren, wenden Sie dann isDeleted=0 auf die neueste Version an.

Warum sehe ich doppelte Versionsnummern, wenn ich Daten im Modus „Nur Anhängen“ exportiere?

Wenn Azure Synapse Link for Dataverse beim Nur-Anhängen-Modus aus irgendeinem Grund, z. B. wegen Verzögerungen im Netzwerk, vom Azure Data Lake keine Bestätigung erhält, dass die Daten committet wurden, versucht es Azure Synapse Link in diesen Szenarien erneut und bestätigt die Daten noch einmal. Der nachgelagerte Verbrauch sollte durch die Filterung der Daten mithilfe von SinkModifiedOn gegenüber diesem Szenario widerstandsfähig gemacht werden.

Warum sehe ich Unterschiede in den Spalten Sinkmodifiedon und Modifiedon?

Dies ist zu erwarten. Modifiedon ist das Datum und die Uhrzeit, zu der der Datensatz in Dataverse geändert wird; Sinkmodifiedon ist das Datum und die Uhrzeit, zu der der Datensatz im Data Lake geändert wird.

Welche Dataverse Tabellen werden für den Export nicht unterstützt?

Tabellen, für welche die Änderungsnachverfolgung nicht aktiviert ist, werden zusätzlich zu den folgenden Systemtabellen nicht unterstützt:

  • Anhang
  • Kalender
  • Calendarrule

Hinweis

Sie können die Prüftabelle für den Export mit Azure Synapse Link for Dataverse hinzufügen. Der Export der Überwachungstabelle wird jedoch nur mit Delta Lake-Profilen unterstützt.

Ich verwende das Feature „In Delta Lake exportieren“. Kann ich den Apache Spark-Auftrag anhalten oder die Ausführungszeit ändern?

Der Delta-Lake-Konvertierungsauftrag wird ausgelöst, wenn im konfigurierten Zeitintervall eine Datenänderung stattgefunden hat. Es gibt keine Möglichkeit, den Apache Spark-Pool zu stoppen oder anzuhalten. Sie können das Zeitintervall jedoch nach der Linkerstellung unter „Tabellen verwalten > Erweitertes Zeitintervall“ ändern.

Suchspalten bestehen aus einer ID und einem Wert. Suchwerte ändern sich nur in der Stammtabelle. Um den Wert einer Suchspalte besser wiederzugeben, empfehlen wir, eine Verbindung mit der ursprünglichen Stammtabelle herzustellen, um den neuesten Wert zu erhalten.

In Dataverse enthalten berechnete Spalten nur die Formelinformationen und der tatsächliche Wert hängt von der Basistabellenspalte ab. Berechnete Spalten werden also nur unterstützt, wenn sich alle Spalten in derselben exportierten Tabelle befinden.

Welche Dataverse-Tabellen verwenden standardmäßig den Modus „Nur anfügen“?

Alle Tabellen, die kein Feld „createdOn“ haben, werden standardmäßig im Nur-Anhängen-Modus synchronisiert. Dazu gehören Beziehungstabellen und die ActivityParty-Tabelle.

Warum wird die Fehlermeldung „Der Inhalt des Verzeichnisses im Pfad kann nicht aufgelistet werden“ angezeigt?

  • Die Dataverse Daten werden vorübergehend Speicherbehältnis gespeichert. Sie benötigen die Rolle „Behältnis Blob Daten-Mitwirkender“ im verknüpften Speicherkonto, um Lese- und Abfragevorgänge über Synapse Workspace auszuführen.
  • Wenn Sie sich für den Datenexport im Delta-Lake-Format entscheiden, wird Ihre CSV-Datei nach der Delta-Lake-Konvertierung bereinigt. Sie müssen Daten mit nicht partitionierten Tabellen über den Synapse-Arbeitsbereich abfragen.

Warum sehe ich die Fehlermeldung – Massenladen nicht möglich, weil die Datei unvollständig ist oder nicht gelesen werden konnte (nur CSV-Datei)?

Dataverse Daten können sich ständig durch das Erstellen, Aktualisieren und Löschen von Transaktionen ändern. Dieser Fehler wird dadurch verursacht, dass die zugrunde liegende Datei geändert wird, wenn Sie Daten daraus lesen. Für Tabellen mit kontinuierlichen Änderungen ändern Sie also Ihre Nutzung so, dass Snapshot-Daten (partitionierte Tabellen) verwendet werden. Weitere Informationen: Fehlerbehebung bei serverlosen SQL-Pools

Azure Synapse Link for Dataverse ist für Analysezwecke konzipiert. Wir empfehlen, zur Archivierung die Langzeitaufbewahrung zu verwenden. Weitere Informationen: Dataverse Übersicht über die langfristige Datenspeicherung

Warum sehe ich keine Datenänderungen im Data Lake, wenn Datensätze in Dataverse gelöscht wurden?

Bei einem direkten SQL-Aufruf zum Entfernen eines Datensatzes wird der Azure Synapse Link for Dataverse-Dienst nicht ausgelöst, da BPO.Delete nicht aufgerufen wird. Ein Beispielfeature finden Sie unter So bereinigen Sie geerbte Zugriffsrechte.