

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.

# Partitionierung für Nicht-ODP-Entitäten
<a name="sap-odata-non-odp-entities-partitioning"></a>

In Apache Spark bezieht sich Partitionierung auf die Art, wie Daten aufgeteilt und auf die Worker-Knoten in einem Cluster zur Parallelverarbeitung verteilt werden. Jede Partition ist ein logischer Datenblock, der unabhängig von einer Aufgabe verarbeitet werden kann. Partitionierung ist ein grundlegendes Konzept in Spark, das sich direkt auf Leistung, Skalierbarkeit und Ressourcennutzung auswirkt. AWS Glue Jobs verwenden den Partitionierungsmechanismus von Spark, um den Datensatz in kleinere Blöcke (Partitionen) aufzuteilen, die parallel über die Worker-Knoten des Clusters verarbeitet werden können. Beachten Sie, dass die Partitionierung nicht für ODP-Entitäten gilt.

Weitere Informationen finden Sie unter [AWS Glue Spark](https://docs.aws.amazon.com/glue/latest/dg/spark_and_pyspark.html) und Jobs. PySpark 

**Voraussetzungen**

Ein OData SAP-Objekt, aus dem Sie lesen möchten. Sie benötigen den object/EntitySet Namen. Beispiel: ` /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": "/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder"
    }, transformation_ctx=key)
```

## Partitionierung von Abfragen
<a name="sap-odata-partitioning-queries"></a>

### Feldbasierte Partitionierung
<a name="sap-odata-field-based-partitioning"></a>

Sie können die zusätzlichen Spark-Optionen `PARTITION_FIELD`,`LOWER_BOUND`, `UPPER_BOUND` und `NUM_PARTITIONS` angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern wird die ursprüngliche Abfrage in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können. Integer, Date und DateTime Felder unterstützen die feldbasierte Partitionierung im SAP-Konnektor. OData 
+ `PARTITION_FIELD`: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`: ein inklusiver Untergrenzwert des ausgewählten Partitionsfelds.

   Für jedes Feld, dessen Datentyp ist DateTime, wird das in Spark-SQL-Abfragen verwendete Spark-Zeitstempelformat akzeptiert.

  Beispiele für gültige Werte: `"2000-01-01T00:00:00.000Z"` 
+ `UPPER_BOUND`: ein exklusiver Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`: Anzahl der Partitionen.
+ `PARTITION_BY`: der Typ der durchzuführenden Partitionierung. `FIELD` wird im Falle einer feldbasierten Partitionierung ü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
<a name="sap-odata-record-based-partitioning"></a>

Die ursprüngliche Abfrage wurde in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.

Die datensatzbasierte Partitionierung wird nur für Nicht-ODP-Entitäten unterstützt, da die Paginierung in ODP-Entitäten bis zum nächsten Token unterstützt wird. token/skip 
+ `PARTITION_BY`: der Typ der durchzuführenden Partitionierung. `COUNT` wird im Falle einer datensatzbasierten Partitionierung ü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",
        "NUM_PARTITIONS": "10",
        "PARTITION_BY": "COUNT"
    }, transformation_ctx=key)
```

# Einschränkungen/Callouts
<a name="sap-odata-limitations"></a>
+ ODP-Entitäten sind nicht mit Record Based Partitioning kompatibel, da die Paginierung mit dem Skip-Token abgewickelt wird. token/delta Folglich wird für die datensatzbasierte Partitionierung der Standardwert für MaxConcurrency unabhängig von der Benutzereingabe auf „Null“ gesetzt.
+ Wenn sowohl das Limit als auch Partitionierung angewendet werden, hat das Limit Vorrang vor der Partitionierung.