Lettura da entità 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à.

Lettura da entità SAP OData

Prerequisito

Un OData oggetto SAP da cui desideri leggere. Avrai bisogno di object/EntitySet name, for example, /sap/opu/odata/sap/API_SALES_ORDER_SRV/A _SalesOrder.

Esempio:

sapodata_read = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName" }, transformation_ctx=key)

Dettagli OData dell'entità e del campo SAP:

Entità Tipo di dati Operatori supportati
Tabelle (entità dinamiche) Stringa =,! =, >, >=, <, <=, TRA, COME
Numero intero =,! =, >, >=, <, <=, TRA, COME
Long =,! =, >, >=, <, <=, TRA, COME
Doppio =,! =, >, >=, <, <=, TRA, COME
Data =,! =, >, >=, <, <=, TRA, COME
DateTime =,! =, >, >=, <, <=, TRA, COME
Booleano =, !=
Struct =,! =, >, >=, <, <=, TRA, COME

Interrogazioni di partizionamento

Partizionamento basato sul campo:

Puoi fornire le opzioni Spark aggiuntive e, NUM_PARTITIONS se desideri PARTITION_FIELD LOWER_BOUNDUPPER_BOUND, utilizzare la concorrenza in Spark. Con questi parametri, la query originale verrebbe suddivisa in un NUM_PARTITIONS numero di sottoquery che possono essere eseguite contemporaneamente dalle attività Spark. Numero intero, Data e DateTime campi supportano il partizionamento basato sul campo nel connettore SAP. OData

  • PARTITION_FIELD: il nome del campo da utilizzare per partizionare la query.

  • LOWER_BOUND: un valore limite inferiore inclusivo del campo di partizione scelto.

    Per il campo Datetime, accettiamo il formato di timestamp Spark utilizzato nelle query SQL. SPark

    Esempi di valori validi:

    "2000-01-01T00:00:00.000Z"
  • UPPER_BOUND: un valore limite superiore esclusivo del campo di partizione scelto.

  • NUM_PARTITIONS: il numero di partizioni.

  • PARTITION_BY: il tipo di partizionamento da eseguire. «FIELD» deve essere passato in caso di partizionamento basato sul campo.

Esempio:

sapodata= glueContext.create_dynamic_frame.from_options( connection_type="sapodata", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet", "PARTITION_FIELD": "validStartDate" "LOWER_BOUND": "2000-01-01T00:00:00.000Z" "UPPER_BOUND": "2020-01-01T00:00:00.000Z" "NUM_PARTITIONS": "10", "PARTITION_BY": "FIELD" }, transformation_ctx=key)

Partizionamento basato su record:

La query originale verrebbe suddivisa in un NUM_PARTITIONS numero di sottoquery che possono essere eseguite contemporaneamente dalle attività Spark.

Il partizionamento basato sui record è supportato solo per le entità non ODP, poiché l'impaginazione nelle entità ODP è supportata tramite il token token/skip successivo.

  • PARTITION_BY: il tipo di partizionamento da eseguire. «COUNT» deve essere passato in caso di partizionamento basato su record.

sapodata= glueContext.create_dynamic_frame.from_options( connection_type="sapodata", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet", "NUM_PARTITIONS": "10", "PARTITION_BY": "COUNT" }, transformation_ctx=key)