Aus SAP OData Entitäten lesen - AWS Glue

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