Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Trasferimenti incrementali basati su token Delta
Per abilitare il trasferimento incrementale utilizzando Change Data Capture (CDC) per le entità abilitate a ODP che lo supportano, seguire questi passaggi:
Creare il processo di trasferimento incrementale in modalità script.
Quando crei DataFrame o Glue DynamicFrame, devi passare l'opzione
"ENABLE_CDC": "True". Questa opzione garantisce la ricezione di un token Delta da SAP, che può essere utilizzato per il successivo recupero dei dati modificati.
Il token delta sarà presente nell'ultima riga del dataframe, nella colonna DELTA_TOKEN. Questo token può essere utilizzato come opzione di connettore nelle chiamate successive per recuperare in modo incrementale il set di dati successivo.
Esempio
Abbiamo impostato la
ENABLE_CDCbandiera sutrue, durante la creazione di DynamicFrame. Nota:ENABLE_CDCèfalseper impostazione predefinita, se non si vuole inizializzare la coda delta, non è necessario inviare questo flag o impostarlo su true. La mancata impostazione di questo flag su true comporterà un'estrazione di caricamento completo.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_000370000Il token Delta estratto può essere passato come opzione per recuperare nuovi eventi.
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)
L'ultimo record, in cui è presente DELTA_TOKEN, non è un record transazionale di origine ed è presente solo allo scopo di trasmettere il valore del token delta.
Oltre a DELTA_TOKEN, i seguenti campi vengono restituiti in ogni riga del dataframe.
GLUE_FETCH_SQ: questo è un campo di sequenza, generato dalla marcatura temporale EPOC nell'ordine in cui il record è stato ricevuto, ed è unico per ogni record. Può essere utilizzato se è necessario conoscere o stabilire l'ordine delle modifiche nel sistema di origine. Questo campo sarà presente solo per le entità abilitate per ODP.
DML_STATUS: verrà visualizzato
UPDATEDper tutti i record appena inseriti e aggiornati dall'origine eDELETEDper i record che sono stati eliminati dall'origine.
Per maggiori informazioni su come gestire lo stato e riutilizzare il token delta per recuperare i record modificati tramite un esempio, consultare la sezione Utilizzo dello script di gestione OData dello stato SAP.
Invalidazione del token Delta
Un token Delta è associato a un utente e alla raccolta di servizi. Se “ENABLE_CDC” : “true” viene avviato un nuovo pull with iniziale per la stessa raccolta di servizi e per lo stesso utente, tutti i token delta precedenti emessi a seguito di una precedente inizializzazione verranno invalidati dal servizio SAP. OData L'invocazione del connettore con un token Delta scaduto porterà a un'eccezione:
Could not open data access via extraction API RODPS_REPL_ODP_OPEN