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_BOUND
UPPER_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)