Utilisation du script de gestion d’état SAP OData - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation du script de gestion d’état SAP OData

Pour utiliser le script de gestion d’état SAP OData dans le cadre de votre tâche AWS Glue, procédez comme suit :

  • Téléchargez le script de gestion d’état : s3://aws-blogs-artifacts-public/artifacts/BDB-4789/sap_odata_state_management.zip depuis le compartiment Amazon S3 public.

  • Chargez le script dans un compartiment Amazon S3 auquel votre tâche AWS Glue est autorisée à accéder.

  • Référencez le script dans votre tâche AWS Glue : lors de la création ou de la mise à jour de votre tâche AWS Glue, transmettez l’option '--extra-py-files' faisant référence au chemin d’accès au script dans votre compartiment Amazon S3. Par exemple : --extra-py-files s3://your-bucket/path/to/sap_odata_state_management.py

  • Importez et utilisez la bibliothèque de gestion d’état dans vos scripts de tâche AWS Glue.

Exemple de transfert incrémentiel basé sur des jetons Delta

Voici un exemple d’utilisation du script de gestion d’état pour les transferts incrémentiels basés sur des jetons Delta :

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())

Exemple de transfert incrémentiel basé sur l’horodatage

Voici un exemple d’utilisation du script de gestion d’état pour les transferts incrémentiels basés sur des jetons Delta :

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())

Dans les deux exemples, le script de gestion d’état gère les complexités liées au stockage de l’état (jeton Delta ou horodatage) entre les exécutions de tâches. Il récupère automatiquement le dernier état connu lors de l’obtention des options du connecteur et met à jour l’état après le traitement, ce qui garantit ainsi que chaque tâche exécutée ne traite que les données nouvelles ou modifiées.