Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aus SAP OData Entitäten lesen
Voraussetzung
Ein SAP OData Objekt, aus dem gelesen werden soll. Sie benötigen das object/EntitySet name, for example, /sap/opu/odata/sap/API_SALES_ORDER_SRV/A _SalesOrder.
Beispiel:
sapodata_read = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName" }, transformation_ctx=key)
SAPODataEntitäts- und Felddetails:
Entität | Datentyp | Unterstützte Operatoren |
---|---|---|
Tabellen (dynamische Entitäten) | String | =, !=, >, >=, <, <=, BETWEEN, LIKE |
Ganzzahl | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Long | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Double | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Datum | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
DateTime | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Boolesch | =, != | |
Struct | =, !=, >, >=, <, <=, BETWEEN, LIKE |
Partitionierung von Abfragen
Feldbasierte Partitionierung:
Sie können die zusätzlichen Spark-OptionenPARTITION_FIELD
,, und angeben LOWER_BOUND
UPPER_BOUND
, NUM_PARTITIONS
ob Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern würde die ursprüngliche Abfrage in eine NUM_PARTITIONS
Reihe von Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können. Integer, Date und DateTime Felder unterstützen die feldbasierte Partitionierung im Connector. SAP OData
PARTITION_FIELD
: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.LOWER_BOUND
: ein inklusiver Untergrenzwert des ausgewählten Partitionsfeldes.Für das Datetime-Feld akzeptieren wir das Spark-Zeitstempelformat, das in SPark SQL Abfragen verwendet wird.
Beispiele für gültige Werte:
"2000-01-01T00:00:00.000Z"
UPPER_BOUND
: ein exklusiver Obergrenzwert des ausgewählten Partitionsfeldes.NUM_PARTITIONS
: Die Anzahl an Partitionen.PARTITION_BY
: der Typ der Partitionierung, die durchgeführt werden soll. "FIELD" ist im Falle einer feldbasierten Partitionierung zu übergeben.
Beispiel:
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)
Datensatzbasierte Partitionierung:
Die ursprüngliche Abfrage würde in eine NUM_PARTITIONS
Anzahl von Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
Die datensatzbasierte Partitionierung wird nur für ODP Nicht-Entitäten unterstützt, da die Paginierung in Entitäten bis zum nächsten ODP Token/Skip-Token unterstützt wird.
PARTITION_BY
: der Typ der Partitionierung, die durchgeführt werden soll. "COUNT" ist im Falle einer datensatzbasierten Partitionierung zu übergeben.
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)