Utilizzo dello script di gestione dello stato di SAP OData - AWS Glue

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à.

Utilizzo dello script di gestione dello stato di SAP OData

Per utilizzare lo script di gestione dello stato di SAP OData nel processo AWS Glue, seguire questi passaggi:

  • Scaricare lo script di gestione dello stato: s3://aws-blogs-artifacts-public/artifacts/BDB-4789/sap_odata_state_management.zip dal bucket pubblico Amazon S3.

  • Caricare lo script in un bucket Amazon S3 per il quale sono concesse le autorizzazioni di accesso al processo AWS Glue.

  • Fare riferimento allo script nel processo AWS Glue: quando si crea o si aggiorna il processo AWS Glue, passare l'opzione '--extra-py-files' che fa riferimento al percorso dello script nel bucket Amazon S3. Ad esempio: --extra-py-files s3://your-bucket/path/to/sap_odata_state_management.py

  • Importare e usare la libreria di gestione dello stato negli script del processo AWS Glue.

Esempio di trasferimento incrementale basato su token Delta

Ecco un esempio di come utilizzare lo script di gestione dello stato per i trasferimenti incrementali basati su delta-token:

from sap_odata_state_management import StateManagerFactory, StateManagerType, StateType # Initialize the state manager state_manager = StateManagerFactory.create_manager( manager_type=StateManagerType.JOB_TAG, state_type=StateType.DELTA_TOKEN, options={ "job_name": args['JOB_NAME'], "logger": logger } ) # Get connector options (including delta token if available) key = "SAPODataNode" connector_options = state_manager.get_connector_options(key) # Use the connector options in your Glue job df = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName", "ENABLE_CDC": "true", **connector_options } ) # Process your data here... # Update the state after processing state_manager.update_state(key, sapodata_df.toDF())

Esempio di trasferimento incrementale basato su marcature temporali

Ecco un esempio di come utilizzare lo script di gestione dello stato per i trasferimenti incrementali basati su delta-token:

from sap_odata_state_management import StateManagerFactory, StateManagerType, StateType # Initialize the state manager state_manager = StateManagerFactory.create_manager( manager_type=StateManagerType.JOB_TAG, state_type=StateType.DELTA_TOKEN, options={ "job_name": args['JOB_NAME'], "logger": logger } ) # Get connector options (including delta token if available) key = "SAPODataNode" connector_options = state_manager.get_connector_options(key) # Use the connector options in your Glue job df = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName", "ENABLE_CDC": "true", **connector_options } ) # Process your data here... # Update the state after processing state_manager.update_state(key, sapodata_df.toDF())

In entrambi gli esempi, lo script di gestione dello stato gestisce la complessità della memorizzazione dello stato (token delta o marcatura temporale) tra le esecuzioni dei processi. Recupera automaticamente l'ultimo stato conosciuto quando ottiene le opzioni del connettore e aggiorna lo stato dopo l'elaborazione, assicurando che ogni esecuzione del processo elabori solo dati nuovi o modificati.