Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Inkrementelle Übertragungen auf Delta-Token-Basis
Gehen Sie wie folgt vor, um die inkrementelle Übertragung mit Change Data Capture (CDC) für ODP-fähige Entitäten zu aktivieren, die dies unterstützen:
Erstellen Sie den Auftrag „Inkrementelle Übertragung“ im Skriptmodus.
Beim Erstellen von DataFrame oder DynamicFrame Glue müssen Sie die Option übergeben
"ENABLE_CDC": "True". Mit dieser Option stellen Sie sicher, dass Sie von SAP einen Delta-Token erhalten, mit dem Sie später geänderte Daten abrufen können.
Der Delta-Token befindet sich in der letzten Zeile des Datenrahmens in der Spalte „DELTA_TOKEN“. Dieses Token kann als Verbindungsoption in nachfolgenden Aufrufen verwendet werden, um den nächsten Datensatz schrittweise abzurufen.
Beispiel
Wir setzen die
ENABLE_CDCFlagge auftrue, bei der Erstellung der DynamicFrame. Hinweis:ENABLE_CDCist standardmäßigfalse. Wenn Sie die Delta-Warteschlange nicht initialisieren möchten, müssen Sie dieses Flag nicht senden oder auf „true“ setzen. Wenn Sie dieses Flag nicht auf „true“ setzen, wird eine vollständige Ladeextraktion durchgeführt.sapodata_df = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName", "ENABLE_CDC": "true" }, transformation_ctx=key) # Extract the delta token from the last row of the DELTA_TOKEN column delta_token_1 = your_logic_to_extract_delta_token(sapodata_df) # e.g., D20241029164449_000370000Das extrahierte Delta-Token kann als Option zum Abrufen neuer Ereignisse übergeben werden.
sapodata_df_2 = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName", // passing the delta token retrieved in the last run "DELTA_TOKEN": delta_token_1 } , transformation_ctx=key) # Extract the new delta token for the next run delta_token_2 = your_logic_to_extract_delta_token(sapodata_df_2)
Beachten Sie, dass der letzte Datensatz, in dem das DELTA_TOKEN vorhanden ist, kein Transaktionsdatensatz aus der Quelle ist und nur zum Zweck der Weitergabe des Delta-Token-Werts vorhanden ist.
Abgesehen vom DELTA_TOKEN werden die folgenden Felder in jeder Zeile des Datenrahmens zurückgegeben.
GLUE_FETCH_SQ: Dies ist ein Sequenzfeld, das aus dem EPOC-Zeitstempel in der Reihenfolge des Eingangs der Datensätze generiert wird und für jeden Datensatz eindeutig ist. Es kann verwendet werden, wenn Sie die Reihenfolge der Änderungen im Quellsystem kennen oder festlegen müssen. Dieses Feld ist nur für ODP-fähige Entitäten vorhanden.
DML_STATUS: Hier wird
UPDATEDfür alle neu eingefügten und aktualisierten Datensätze aus der Quelle angezeigt, sowieDELETEDfür Datensätze, die aus der Quelle gelöscht wurden.
Weitere Informationen dazu, wie Sie den Status verwalten und das Delta-Token wiederverwenden können, um geänderte Datensätze abzurufen, finden Sie im Abschnitt Verwenden des OData SAP-State-Management-Skripts.
Delta-Token-Aufhebung
Ein Delta-Token ist mit der Service-Sammlung und einem Benutzer verknüpft. Wenn ein neuer initialer Pull mit “ENABLE_CDC” : “true” für dieselbe Servicesammlung und denselben Benutzer initiiert wird, werden alle vorherigen Delta-Token, die als Ergebnis einer vorherigen Initialisierung ausgegeben wurden, vom OData SAP-Service ungültig gemacht. Das Aufrufen des Connectors mit einem abgelaufenen Delta-Token führt zu einer Ausnahme:
Could not open data access via extraction API RODPS_REPL_ODP_OPEN