

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

# Mengelola statistik untuk Neptune DFE yang akan digunakan
<a name="neptune-dfe-statistics"></a>

**catatan**  
Support untuk OpenCypher tergantung pada mesin query DFE di Neptunus.  
Mesin DFE pertama kali tersedia dalam mode lab di rilis mesin [Neptunus 1.0.3.0, dan mulai di rilis mesin](engine-releases-1.0.3.0.md) [Neptunus 1.0.5.0, menjadi diaktifkan secara default, tetapi hanya untuk digunakan](engine-releases-1.0.5.0.md) dengan petunjuk kueri dan untuk dukungan OpenCypher.   
Dimulai dengan [rilis mesin Neptunus](engine-releases-1.1.1.0.md) 1.1.1.0, mesin DFE tidak lagi dalam mode lab, dan sekarang dikontrol menggunakan [neptune\$1dfe\$1query\$1engine](parameters.md#parameters-instance-parameters-neptune_dfe_query_engine) parameter instance dalam grup parameter DB instans.

Mesin DFE menggunakan informasi tentang data dalam grafik Neptunus Anda untuk membuat trade-off yang efektif saat merencanakan eksekusi kueri. Informasi ini mengambil bentuk statistik yang mencakup apa yang disebut set karakteristik dan statistik predikat yang dapat memandu perencanaan kueri.

Dimulai dengan [rilis engine 1.2.1.0](engine-releases-1.2.1.0.md), Anda dapat mengambil [informasi ringkasan](neptune-graph-summary.md) tentang grafik Anda dari statistik ini menggunakan [GetGraphSummary](iam-dp-actions.md#getgraphsummary)API atau titik akhir. `summary`

Statistik DFE ini saat ini dihasilkan kembali setiap kali lebih dari 10% data dalam grafik Anda telah berubah atau ketika statistik terbaru berusia lebih dari 10 hari. Namun, pemicu ini dapat berubah di masa depan.

**catatan**  
Pembuatan statistik dinonaktifkan `T3` dan `T4g` instance karena dapat melebihi kapasitas memori dari jenis instance tersebut.

Anda dapat mengelola pembuatan statistik DFE melalui salah satu titik akhir berikut:
+ `https://your-neptune-host:port/rdf/statistics `    (untuk SPARQL).
+ `https://your-neptune-host:port/propertygraph/statistics`(untuk Gremlin dan OpenCypher), dan versi alternatifnya:. `https://your-neptune-host:port/pg/statistics`

**catatan**  
Pada [rilis mesin 1.1.1.0](engine-releases-1.1.1.0.md), titik akhir statistik Gremlin (`https://your-neptune-host:port/gremlin/statistics`) tidak digunakan lagi demi titik akhir atau. `propertygraph` `pg` Ini masih didukung untuk kompatibilitas mundur tetapi dapat dihapus di rilis mendatang.  
Pada [rilis mesin 1.2.1.0](engine-releases-1.2.1.0.md), titik akhir statistik SPARQL (`https://your-neptune-host:port/sparql/statistics`) tidak digunakan lagi demi titik akhir. `rdf` Ini masih didukung untuk kompatibilitas mundur tetapi dapat dihapus di rilis mendatang.

Dalam contoh di bawah ini, `$STATISTICS_ENDPOINT` singkatan dari salah satu titik akhir URLs ini.

**catatan**  
Jika titik akhir statistik DFE berada pada instans pembaca, satu-satunya permintaan yang dapat diproses adalah [permintaan status](#neptune-dfe-statistics-status). Permintaan lainnya akan gagal dengan `ReadOnlyViolationException`.

## Batas ukuran untuk pembuatan statistik DFE
<a name="neptune-dfe-statistics-limits"></a>

Saat ini, pembuatan statistik DFE berhenti jika salah satu dari batas ukuran berikut tercapai:
+ Jumlah set karakteristik yang dihasilkan tidak boleh melebihi 50.000.
+ Jumlah statistik predikat yang dihasilkan tidak boleh melebihi satu juta.

Batas ini bisa berubah.

## Status statistik DFE saat ini
<a name="neptune-dfe-statistics-status"></a>

Anda dapat memeriksa status statistik DFE saat ini menggunakan permintaan `curl`:

```
curl -G "$STATISTICS_ENDPOINT"
```

Respons ke permintaan status berisi bidang-bidang berikut:
+ `status` — Kode pengembalian HTTP dari permintaan. Jika permintaan berhasil, kodenya adalah `200`. Lihat [Kesalahan umum](#neptune-dfe-statistics-errors) untuk daftar kesalahan umum.
+ `payload`:
  + `autoCompute`— (Boolean) Menunjukkan apakah pembuatan statistik otomatis diaktifkan atau tidak.
  + `active`— (Boolean) Menunjukkan apakah pembuatan statistik DFE diaktifkan atau tidak.
  + `statisticsId `— Laporan ID dari pembuatan statistik saat ini yang dijalankan. Nilai ` -1 ` menunjukkan bahwa tidak ada statistik yang dihasilkan.
  + `date`— Waktu UTC di mana statistik DFE baru-baru ini dihasilkan, dalam format ISO 8601.
**catatan**  
Sebelum [rilis mesin 1.2.1.0](engine-releases-1.2.1.0.md), ini diwakili dengan presisi menit, tetapi dari rilis mesin 1.2.1.0 ke depan, ini diwakili dengan presisi milidetik (misalnya,). `2023-01-24T00:47:43.319Z`
  + `note`— Catatan tentang masalah dalam kasus di mana statistik tidak valid.
  + `signatureInfo`— Berisi informasi tentang set karakteristik yang dihasilkan dalam statistik (sebelum [rilis mesin 1.2.1.0](engine-releases-1.2.1.0.md), bidang ini diberi nama`summary`). Ini umumnya tidak langsung ditindaklanjuti:
    + `signatureCount`— Jumlah total tanda tangan di semua set karakteristik.
    + `instanceCount`— Jumlah total instans karakteristik-set.
    + `predicateCount`— Jumlah total predikat unik.

Respons terhadap permintaan status ketika tidak ada statistik telah dihasilkan terlihat seperti ini:

```
{
  "status" : "200 OK",
  "payload" : {
    "autoCompute" : true,
    "active" : false,
    "statisticsId" : -1
   }
}
```

Jika statistik DFE tersedia, responsnya terlihat seperti ini:

```
{
  "status" : "200 OK",
  "payload" : {
    "autoCompute" : true,
    "active" : true,
    "statisticsId" : 1588893232718,
    "date" : "2020-05-07T23:13Z",
    "summary" : {
      "signatureCount" : 5,
      "instanceCount" : 1000,
      "predicateCount" : 20
    }
  }
}
```

Jika pembuatan statistik DFE gagal, misalnya karena melebihi [batas ukuran statistik](#neptune-dfe-statistics-limits), responnya terlihat seperti ini:

```
{
  "status" : "200 OK",
  "payload" : {
    "autoCompute" : true,
    "active" : false,
    "statisticsId" : 1588713528304,
    "date" : "2020-05-05T21:18Z",
    "note" : "Limit reached: Statistics are not available"
  }
}
```

## Menonaktifkan pembuatan otomatis statistik DFE
<a name="neptune-dfe-statistics-auto-disable"></a>

Secara default, pembuatan otomatis statistik DFE diaktifkan saat Anda mengaktifkan DFE.

Anda dapat menonaktifkan pembuatan otomatis sebagai berikut:

```
curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "disableAutoCompute" }'
```

Jika permintaan berhasil, kode respons HTTP-nya adalah `200` dan responsnya adalah:

```
{
  "status" : "200 OK"
}
```

Anda dapat mengonfirmasi bahwa pembuatan otomatis dinonaktifkan dengan mengeluarkan [permintaan status](#neptune-dfe-statistics-status) dan memeriksa bahwa bidang `autoCompute` di dalam respons diatur ke `false`.

Menonaktifkan pembuatan statistik otomatis tidak mengakhiri komputer statistik yang sedang berlangsung.

Jika Anda membuat permintaan untuk menonaktifkan pembuatan otomatis instans pembaca daripada instans penulis klaster DB Anda, permintaan gagal dengan kode kembali HTTP 400 dan output seperti berikut:

```
{
  "detailedMessage" : "Writes are not permitted on a read replica instance",
  "code" : "ReadOnlyViolationException",
  "requestId":"8eb8d3e5-0996-4a1b-616a-74e0ec32d5f7"
}
```

Lihat [Kesalahan umum](#neptune-dfe-statistics-errors) untuk daftar kesalahan umum lainnya.

## Mengaktifkan kembali pembuatan otomatis statistik DFE
<a name="neptune-dfe-statistics-auto-re-enable"></a>

Secara default, pembuatan otomatis statistik DFE sudah diaktifkan saat Anda mengaktifkan DFE. Jika Anda menonaktifkan pembuatan otomatis, Anda dapat mengaktifkannya kembali nanti sebagai berikut:

```
curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "enableAutoCompute" }'
```

Jika permintaan berhasil, kode respons HTTP-nya adalah `200` dan responsnya adalah:

```
{
  "status" : "200 OK"
}
```

Anda dapat mengonfirmasi bahwa pembuatan otomatis diaktifkan dengan mengeluarkan [permintaan status](#neptune-dfe-statistics-status) dan memeriksa bahwa bidang `autoCompute` di dalam respons diatur ke `true`.

## Memicu pembuatan statistik DFE secara manual
<a name="neptune-dfe-statistics-manual"></a>

Anda dapat memulai pembuatan statistik DFE secara manual sebagai berikut:

```
curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "refresh" }'
```

Jika permintaan berhasil, outputnya adalah sebagai berikut, dengan kode kembali HTTP 200:

```
{
  "status" : "200 OK",
  "payload" : {
    "statisticsId" : 1588893232718
  }
}
```

`statisticsId` dalam output adalah ID dari proses pembuatan statistik yang saat ini terjadi. Jika proses sudah berjalan pada saat permintaan, permintaan mengembalikan ID yang dijalankan daripada memulai yang baru. Hanya satu proses pembuatan statistik yang dapat terjadi pada satu waktu.

Jika fail-over terjadi sementara statistik DFE sedang dihasilkan, node penulis baru akan mengambil pos pemeriksaan yang diproses terakhir dan melanjutkan proses statistik dari sana.

## Menggunakan `StatsNumStatementsScanned` CloudWatch metrik untuk memantau perhitungan statistik
<a name="neptune-dfe-statistics-monitoring"></a>

`StatsNumStatementsScanned` CloudWatch Metrik mengembalikan jumlah total pernyataan yang dipindai untuk perhitungan statistik sejak server dimulai. Ini diperbarui pada setiap irisan perhitungan statistik.

Setiap kali perhitungan statistik dipicu, angka ini meningkat, dan ketika tidak ada perhitungan yang terjadi, itu tetap konstan. Oleh karena itu, melihat sebidang `StatsNumStatementsScanned` nilai dari waktu ke waktu memberi Anda gambaran yang cukup jelas tentang kapan perhitungan statistik terjadi dan seberapa cepat:

![\[Grafik nilai StatsNumStatementsScanned metrik\]](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/images/StatsNumStatementsScanned-graph.png)


Saat perhitungan terjadi, kemiringan grafik menunjukkan seberapa cepat (semakin curam kemiringan, semakin cepat statistik dihitung).

Jika grafik hanyalah garis datar di 0, fitur statistik telah diaktifkan, tetapi tidak ada statistik yang dihitung sama sekali. Jika fitur statistik telah dinonaktifkan, atau jika Anda menggunakan versi mesin yang tidak mendukung perhitungan statistik, fitur tersebut `StatsNumStatementsScanned` tidak ada.

Seperti disebutkan sebelumnya, Anda dapat menonaktifkan perhitungan statistik menggunakan API statistik, tetapi membiarkannya mati dapat mengakibatkan statistik tidak mutakhir, yang pada gilirannya dapat mengakibatkan pembuatan rencana kueri yang buruk untuk mesin DFE.

Lihat [Memantau Neptunus Menggunakan Amazon CloudWatch](cloudwatch.md) untuk informasi tentang cara menggunakan CloudWatch.

## Menggunakan otentikasi AWS Identity and Access Management (IAM) dengan titik akhir statistik DFE
<a name="neptune-dfe-statistics-iam-auth"></a>

Anda dapat mengakses titik akhir statistik DFE secara aman dengan otentikasi IAM dengan menggunakan [awscurl](https://github.com/okigan/awscurl) atau alat lain yang bekerja dengan HTTPS dan IAM. Lihat [Menggunakan `awscurl` dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan](iam-auth-connect-command-line.md#iam-auth-connect-awscurl) untuk melihat cara mengatur kredensil yang tepat. Setelah Anda selesai melakukannya, Anda kemudian dapat membuat permintaan status seperti ini:

```
awscurl "$STATISTICS_ENDPOINT" \
    --region (your region) \
    --service neptune-db
```

Atau, misalnya, Anda dapat membuat file JSON dengan nama `request.json` yang berisi:

```
{ "mode" : "refresh" }
```

Anda kemudian dapat secara manual memulai pembuatan statistik seperti ini:

```
awscurl "$STATISTICS_ENDPOINT" \
    --region (your region) \
    --service neptune-db \
    -X POST -d @request.json
```

## Menghapus statistik DFE
<a name="neptune-dfe-statistics-delete"></a>

Anda dapat menghapus semua statistik dalam database dengan membuat permintaan HTTP DELETE ke titik akhir statistik:

```
curl -X "DELETE" "$STATISTICS_ENDPOINT"
```

Kode pengembalian HTTP yang valid adalah:
+ `200`— penghapusan berhasil.

  Dalam hal ini, respons tipikal akan terlihat seperti:

  ```
  {
    "status" : "200 OK",
    "payload" : {
        "active" : false,
        "statisticsId" : -1
    }
  }
  ```
+ `204`Tidak ada statistik yang harus dihapus.

  Dalam hal ini, responsnya kosong (tidak ada respons).

Jika Anda mengirim permintaan penghapusan ke titik akhir statistik pada node pembaca, a `ReadOnlyViolationException` dilemparkan.

## Kode kesalahan umum untuk permintaan statistik DFE
<a name="neptune-dfe-statistics-errors"></a>

Berikut ini adalah daftar kesalahan umum yang dapat terjadi ketika Anda membuat permintaan ke titik akhir statistik:
+ `AccessDeniedException` — *Kode kembali:* `400`. *Pesan:* `Missing Authentication Token`.
+ `BadRequestException`*(untuk Gremlin dan OpenCypher) - Kode pengembalian:.* `400` *Pesan:* `Bad route: /pg/statistics`.
+ `BadRequestException`(untuk data RDF) — *Kode pengembalian*:. `400` *Pesan:* `Bad route: /rdf/statistics`.
+ `InvalidParameterException` — *Kode kembali:* `400`. *Pesan:* `Statistics command parameter 'mode' has unsupported value 'the invalid value'`.
+ `MissingParameterException` — *Kode kembali:* `400`. *Pesan:* `Content-type header not specified.`.
+ `ReadOnlyViolationException` — *Kode kembali:* `400`. *Pesan:* `Writes are not permitted on a read replica instance`.

Misalnya, jika Anda membuat permintaan ketika DFE dan statistik tidak diaktifkan, Anda akan mendapatkan respons seperti berikut:

```
{
  "code" : "BadRequestException",
  "requestId" : "b2b8f8ee-18f1-e164-49ea-836381a3e174",
  "detailedMessage" : "Bad route: /sparql/statistics"
}
```