

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Partisi untuk entitas Non ODP
<a name="sap-odata-non-odp-entities-partitioning"></a>

Dalam Apache Spark, partisi mengacu pada cara data dibagi dan didistribusikan di seluruh node pekerja dalam cluster untuk pemrosesan paralel. Setiap partisi adalah potongan data logis yang dapat diproses secara independen oleh suatu tugas. Partisi adalah konsep dasar dalam Spark yang secara langsung berdampak pada kinerja, skalabilitas, dan pemanfaatan sumber daya. AWS Glue pekerjaan menggunakan mekanisme partisi Spark untuk membagi dataset menjadi potongan-potongan kecil (partisi) yang dapat diproses secara paralel di seluruh node pekerja cluster. Perhatikan bahwa partisi tidak berlaku untuk entitas ODP.

Untuk detail selengkapnya, lihat [AWS Glue Spark dan PySpark lowongan kerja](https://docs.aws.amazon.com/glue/latest/dg/spark_and_pyspark.html).

**Prasyarat**

Objek SAP OData yang ingin Anda baca. Anda akan membutuhkan object/EntitySet nama. Sebagai contoh: ` /sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder `.

**Contoh**

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

## Mempartisi Kueri
<a name="sap-odata-partitioning-queries"></a>

### Partisi Berbasis Lapangan
<a name="sap-odata-field-based-partitioning"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan. Integer, Tanggal dan DateTime bidang mendukung partisi berbasis lapangan di konektor SAP. OData 
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih.

   Untuk bidang apa pun yang tipe datanya DateTime, format stempel waktu Spark yang digunakan dalam kueri Spark SQL diterima.

  Contoh nilai yang valid: `"2000-01-01T00:00:00.000Z"` 
+ `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.
+ `PARTITION_BY`: jenis partisi yang akan dilakukan, `FIELD` yang akan diteruskan dalam kasus partisi berbasis Bidang.

**Contoh**

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

### Partisi Berbasis Rekam
<a name="sap-odata-record-based-partitioning"></a>

Kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Partisi berbasis rekaman hanya didukung untuk entitas non-ODP, karena pagination dalam entitas ODP didukung melalui token berikutnya. token/skip 
+ `PARTITION_BY`: jenis partisi yang akan dilakukan. `COUNT`harus diteruskan dalam kasus partisi berbasis catatan.

**Contoh**

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

# Batasan/Callout
<a name="sap-odata-limitations"></a>
+ Entitas ODP tidak kompatibel dengan Partisi Berbasis Rekaman karena pagination ditangani menggunakan token lewati. token/delta Akibatnya, untuk Record Based Partitioning, nilai default untuk MaxConcurrency diatur ke “null” terlepas dari input pengguna.
+ Ketika batas dan partisi diterapkan, batas lebih diutamakan daripada partisi.