Abfrage-Syncs

Abfrage-Syncs unterscheiden sich von klassischen, schema-basierten Syncs dadurch, dass sie kein global bekanntes Schemaobjekt verwenden.
Stattdessen erzeugen sie ein lokales Datenschema, das direkt aus einer definierten Abfrage generiert wird.

Dieses Konzept bietet eine hohe Flexibilität, insbesondere für Systeme, die keine vordefinierten Strukturen bereitstellen oder bei denen nur Teilauszüge von Daten abgefragt werden sollen.


Einstellungen

Ein Abfrage-Sync besitzt grundsätzlich die gleichen Einstellungen wie ein schema-basierter Sync.
Die folgenden Punkte heben die wesentlichen Unterschiede hervor:

Sync

  • Hier kann ein Sync mit Datensatz-Abbildungen ausgewählt werden.
  • Sobald ein solcher Sync festgelegt wurde, wird die Abfrage nicht global einmalig, sondern für jede Datensatz-Abbildung ausgeführt.
  • Platzhalter wie SourceId und TargetId können genutzt werden, um die Abfrage dynamisch für jede Abbildung anzupassen.

Format für LastDatetime

  • Auch in Abfrage-Syncs kann mit Änderungsgrenzwerten gearbeitet werden.
  • Da Datumsformate systemabhängig sind, lässt sich hier das gewünschte Format für den Platzhalter festlegen.
  • Ohne Angabe wird das Standardformat für SQL-Server verwendet.

Differenz für Änderungsabfragen in Sekunden

  • Passt das Änderungsdatum in der Abfrage an.
  • Nützlich, um z. B. eine „größer als“-Relation zuverlässig zu gewährleisten.

LastDatetime für die Abfrage in UTC umrechnen

  • Der Datumswert wird aus den Daten entnommen und bei der nächsten Abfrage in den Platzhalter eingefügt.
  • Abhängig vom Zielsystem (z. B. CAS) kann es notwendig sein, den Wert in UTC umzuwandeln.

Immer Datensatz-Speicher anlegen

  • Alle Datensätze der Abfrage werden zuerst in den Datensatz-Speicher geschrieben und von dort verarbeitet.
  • Vorteil: Einzelfehler, Wiederholungen und Nachfolger können gezielt behandelt werden.
  • Nachteil: Erhöhter Speicherverbrauch und mögliche Performance-Einbußen.

ID-Felder der Quelldaten

  • Optional können hier die ID-Felder der Quelldaten angegeben werden (kommagetrennt).
  • Dies ermöglicht die Verwendung von Datensatz-Abbildungen.

Spaltenname für LastDatetime

  • Definiert das Feld aus den Quelldaten, das als Änderungsgrenzwert genutzt wird.

Spaltenname für LastVersion

  • Alternative Angabe: Feld für eine Versionsnummer oder ähnliches, das Änderungen kennzeichnet.

Komplementärsync

  • Definiert einen Sync mit entgegengesetzter Übertragungsrichtung.
  • Wenn beide Syncs über ID-Felder und Änderungsangaben verfügen, kann eine Rückübertragung übersprungen werden.

Verhalten bei exakter Übereinstimmung

  • Neben den klassischen Optionen (Überschreiben, Ignorieren) kann hier auch das Löschen des gefundenen Ziels erfolgen.

Verhalten bei mehrdeutiger Übereinstimmung

  • Anders als schema-basierte Syncs kann ein Abfrage-Sync bei Mehrdeutigkeiten auch mehrere Ziele aktualisieren oder löschen.

Zielschema für Zurückschreiben

  • Für das Zurückschreiben von Daten in das Quellsystem ist ein Schemaobjekt erforderlich.
  • Die notwendigen ID-Felder müssen namensgleich in der Quellabfrage enthalten sein.

Filter für Aktualisierung

  • Ermöglicht die Definition eines Filters für das Zurückschreiben.
  • Standardmäßig wird die ID des Quelldatensatzes verwendet.
  • Wenn keine definierte ID vorhanden ist, wird das Zurückschreiben übersprungen.
  • Der Filter muss in der gültigen Abfragesprache des Quellsystems formuliert werden.
  • Es wird nur der erste Treffer aktualisiert.

Datensatz-Speicher

Da ein Abfrage-Sync die Abfrage für die Gesamtheit der Daten definiert, kann er keinen einzelnen Datensatz gezielt nachladen.

Wenn jedoch ein Datensatz im Rahmen eines Fehlers oder einer Wiederholung erneut benötigt wird, greift der Sync auf den Datensatz-Speicher zurück.

Funktionsweise

  • Mit der Option „Immer Datensatz-Speicher anlegen“ wird jeder Datensatz direkt nach dem Lesen abgespeichert.
  • Vorteil: Der Datensatz steht unverändert für spätere Verarbeitungen zur Verfügung.
  • Nachteil: Höherer Speicherbedarf und potenziell geringere Performance.

Ohne die Option

  • Der Sync kann nur auf eine transformierte Version zugreifen, die im Datensatz-Speicher abgelegt wird.
  • Bei einer späteren Ausführung kann nicht mehr unterschieden werden, ob es sich um Original- oder Transformationsdaten handelt.
  • Die Transformation muss erneut ausgeführt werden.
  • Empfehlung: Felder vor irreversiblen Änderungen kopieren, damit keine Daten verloren gehen.

Datensatz-Abbildung

Datensatz-Abbildungen dienen dazu, Quell- und Zieldatensätze miteinander zu verknüpfen.

Besonderheiten im Abfrage-Sync

  • Falls das Ziel keine ID beim Speichern zurückliefert, wird ein Mapping ohne Ziel-ID angelegt.
  • Bei einer erneuten Übertragung:
    • Wenn eine Übereinstimmungsregel definiert ist, wird diese erneut angewendet.
    • Ohne Übereinstimmungsregel wird der Datensatz übersprungen.

Anlegen der Abbildung

  • Eine Datensatz-Abbildung wird angelegt, sobald eine Quell-ID festgelegt wurde.
  • Dies ermöglicht die Nachverfolgung und Synchronisationssteuerung auch ohne Ziel-ID.

Abfrage definieren

Die Abfrage wird in einer separaten Seite formuliert. Die Eingabe hängt vom Konnektor ab und kann SQL, CSV-Header oder Urls beinhalten.
Es können Platzhalter aus einer definierten Liste eingefügt werden.
Durch das Abrufen des Schemas stehen die Ergebnisspalten zur Verfügung, die dann in der weiteren Konfiguration genutzt werden können.

image


Vorteile von Abfrage-Syncs

  • Hohe Flexibilität, da kein globales Schemaobjekt erforderlich ist
  • Dynamische Anpassung der Abfrage über Platzhalter (SourceId, TargetId)
  • Unterstützung von Änderungsabfragen durch LastDatetime und LastVersion
  • Möglichkeit, komplexe Filter für das Zurückschreiben zu definieren
  • Erweiterte Konfliktbehandlung durch Komplementärsyncs und spezielle Übereinstimmungsregeln