

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

# Dukungan langkah Gremlin asli di Amazon Neptune
<a name="gremlin-step-support"></a>

Mesin Amazon Neptune saat ini tidak memiliki dukungan asli penuh untuk semua langkah Gremlin, seperti yang dijelaskan di [Menyetel kueri Gremlin](gremlin-traversal-tuning.md). Dukungan saat ini terbagi dalam empat kategori:
+ [Langkah-langkah Gremlin yang selalu dapat dikonversi ke operasi mesin Neptune asli](#gremlin-steps-always)
+ [Langkah Gremlin yang dapat dikonversi ke operasi mesin Neptune asli dalam beberapa kasus](#gremlin-steps-sometimes) 
+ [Langkah Gremlin yang tidak pernah dikonversi ke operasi mesin Neptune asli](#gremlin-steps-never) 
+ [Langkah-langkah Gremlin yang tidak didukung di Neptune sama sekali](#neptune-gremlin-steps-unsupported) 

## Langkah-langkah Gremlin yang selalu dapat dikonversi ke operasi mesin Neptune asli
<a name="gremlin-steps-always"></a>

Banyak langkah Gremlin dapat dikonversi ke operasi mesin Neptune asli selama mereka memenuhi kondisi berikut:
+ Mereka tidak didahului di dalam kueri dengan langkah yang tidak dapat dikonversi.
+ Langkah induk mereka, jika ada, dapat dikonversi,
+ Semua traversals turunan mereka, jika ada, dapat dikonversi.

Langkah-langkah Gremlin berikut selalu dikonversi ke operasi mesin Neptune asli jika mereka memenuhi kondisi tersebut:
+ [dan](http://tinkerpop.apache.org/docs/current/reference/#and-step)
+ [sebagai ()](http://tinkerpop.apache.org/docs/current/reference/#as-step)
+ [menghitung ()](http://tinkerpop.apache.org/docs/current/reference/#count-step)
+ [E ()](http://tinkerpop.apache.org/docs/current/reference/#graph-step)
+ [memancarkan ()](http://tinkerpop.apache.org/docs/current/reference/#emit-step)
+ [menjelaskan ()](http://tinkerpop.apache.org/docs/current/reference/#explain-step)
+ [kelompok ()](http://tinkerpop.apache.org/docs/current/reference/#group-step)
+ [GroupCount ()](http://tinkerpop.apache.org/docs/current/reference/#groupcount-step)
+ [identitas ()](http://tinkerpop.apache.org/docs/current/reference/#identity-step)
+ [adalah](http://tinkerpop.apache.org/docs/current/reference/#is-step)
+ [kunci ()](http://tinkerpop.apache.org/docs/current/reference/#key-step)
+ [label ()](http://tinkerpop.apache.org/docs/current/reference/#label-step)
+ [batas ()](http://tinkerpop.apache.org/docs/current/reference/#limit-step)
+ [lokal ()](http://tinkerpop.apache.org/docs/current/reference/#local-step)
+ [loop ()](http://tinkerpop.apache.org/docs/current/reference/#loops-step)
+ [tidak ()](http://tinkerpop.apache.org/docs/current/reference/#not-step)
+ [atau ()](http://tinkerpop.apache.org/docs/current/reference/#or-step)
+ [profil ()](http://tinkerpop.apache.org/docs/current/reference/#profile-step)
+ [properti ()](http://tinkerpop.apache.org/docs/current/reference/#properties-step)
+ [subgraf ()](http://tinkerpop.apache.org/docs/current/reference/#subgraph-step)
+ [sampai ()](http://tinkerpop.apache.org/docs/current/reference/#until-step)
+ [V ()](http://tinkerpop.apache.org/docs/current/reference/#graph-step)
+ [nilai ()](http://tinkerpop.apache.org/docs/current/reference/#value-step)
+ [ValueMap ()](http://tinkerpop.apache.org/docs/current/reference/#valuemap-step)
+ [nilai ()](http://tinkerpop.apache.org/docs/current/reference/#values-step)

## Langkah Gremlin yang dapat dikonversi ke operasi mesin Neptune asli dalam beberapa kasus
<a name="gremlin-steps-sometimes"></a>

Beberapa langkah Gremlin dapat dikonversi ke operasi mesin Neptune asli dalam beberapa situasi tetapi tidak pada situasi lain:
+ [addE( )](http://tinkerpop.apache.org/docs/current/reference/#addedge-step) — Langkah `addE()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali segera diikuti oleh langkah `property()` yang berisi traversal sebagai kunci.
+ [addV( )](http://tinkerpop.apache.org/docs/current/reference/#addvertex-step) — Langkah `addV()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali segera diikuti oleh langkah `property()` yang berisi traversal sebagai kunci, atau kecuali beberapa label ditetapkan.
+ [aggregate( )](http://tinkerpop.apache.org/docs/current/reference/#store-step) — Langkah `aggregate()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah ini digunakan dalam traversal turunan atau sub-traversal, atau kecuali nilai yang disimpan adalah sesuatu selain vertex, edge, id, label atau nilai properti.

  Dalam contoh di bawah ini, `aggregate()` tidak dikonversi karena sedang digunakan dalam traversal turunan:

  ```
  g.V().has('code','ANC').as('a')
       .project('flights').by(select('a')
       .outE().aggregate('x'))
  ```

  Dalam contoh ini, aggregate( ) tidak dikonversi karena yang disimpan adalah `min()` dari nilai:

  ```
  g.V().has('code','ANC').outE().aggregate('x').by(values('dist').min())
  ```
+ [barrier( )](http://tinkerpop.apache.org/docs/current/reference/#barrier-step) — Langkah `barrier()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah yang mengikutinya tidak dikonversi.
+ [cap( )](http://tinkerpop.apache.org/docs/current/reference/#cap-step) — Satu-satunya kasus di mana langkah `cap()` dikonversi adalah ketika dikombinasikan dengan langkah `unfold()` untuk mengembalikan versi tidak dilipat dari agregat vertex, edge, id, atau nilai poperti. Dalam contoh ini, `cap()` akan dikonversi karena diikuti oleh `.unfold()`:

  ```
  g.V().has('airport','country','IE').aggregate('airport').limit(2)
       .cap('airport').unfold()
  ```

  Namun, jika Anda menghapus `.unfold()`, `cap()` tidak akan dikonversi:

  ```
  g.V().has('airport','country','IE').aggregate('airport').limit(2)
       .cap('airport')
  ```
+ [coalesce ()](http://tinkerpop.apache.org/docs/current/reference/#coalesce-step) [— Satu-satunya kasus di mana `coalesce()` langkah dikonversi adalah ketika mengikuti [pola Upsert](http://tinkerpop.apache.org/docs/current/recipes/#element-existence) yang direkomendasikan pada halaman resep. TinkerPop ](http://tinkerpop.apache.org/docs/current/recipes/) Pola coalesce( ) lainnya tidak diperbolehkan. Konversi terbatas pada kasus di mana semua traversals turunan dapat dikonversi, mereka semua menghasilkan jenis yang sama sebagai output (vertex, edge, id, nilai, kunci, atau label), mereka semua melakukan traversal ke elemen baru, dan mereka tidak mengandung langkah `repeat()`.
+ [constant( )](http://tinkerpop.apache.org/docs/current/reference/#constant-step) — Langkah constant( ) saat ini hanya dikonversi jika digunakan dalam bagian `sack().by()` dari traversal untuk menetapkan nilai konstan, seperti ini:

  ```
  g.V().has('code','ANC').sack(assign).by(constant(10)).out().limit(2)
  ```
+ [cyclicPath( )](http://tinkerpop.apache.org/docs/current/reference/#cyclicpath-step) — Langkah `cyclicPath()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah ini digunakan dengan modulator `by()`, `from()`, atau `to()`. Dalam kueri berikut, misalnya, `cyclicPath()` tidak dikonversi:

  ```
  g.V().has('code','ANC').as('a').out().out().cyclicPath().by('code')
  g.V().has('code','ANC').as('a').out().out().cyclicPath().from('a')
  g.V().has('code','ANC').as('a').out().out().cyclicPath().to('a')
  ```
+ [drop( )](http://tinkerpop.apache.org/docs/current/reference/#drop-step) — Langkah `drop()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah ini digunakan di dalam langkah `sideEffect(` atau `optional()`.
+ [fold ()](http://tinkerpop.apache.org/docs/current/reference/#fold-step) — Hanya ada dua situasi di mana langkah fold () dapat dikonversi, yaitu ketika digunakan dalam [pola Upsert](http://tinkerpop.apache.org/docs/current/recipes/#element-existence) yang direkomendasikan pada [halaman TinkerPop resep](http://tinkerpop.apache.org/docs/current/recipes/), dan ketika digunakan dalam `group().by()` konteks seperti ini:

  ```
  g.V().has('code','ANC').out().group().by().by(values('code', 'city').fold())
  ```
+  [has ()](http://tinkerpop.apache.org/docs/current/reference/#has-step) — Langkah `has () `umumnya dapat dikonversi ke operasi mesin Neptunus asli yang disediakan kueri dengan `T` menggunakan predikat `P.eq`, `P.neq` atau `P.contains`. Harapkan variasi `has () `yang menyiratkan contoh `P` untuk dikonversi ke native juga, seperti `HasiD ('id1234')` yang setara dengan `has (eq, t.id, 'id1234') `. 
+ [id( )](http://tinkerpop.apache.org/docs/current/reference/#id-step) — Langkah `id()` dikonversi kecuali digunakan pada properti, seperti ini:

  ```
  g.V().has('code','ANC').properties('code').id()
  ```
+  [Mergee ()](https://tinkerpop.apache.org/docs/current/reference/#mergeedge-step) — `mergeE()` Langkah dapat dikonversi ke operasi mesin Neptunus asli jika parameter (kondisi gabungan, `onCreate` dan`onMatch`) konstan (baik, konstanta`null`, atau a). `Map` `select()` `Map` Semua contoh di [tepi atas](https://docs.aws.amazon.com//neptune/latest/userguide/gremlin-efficient-upserts.html#gremlin-upserts-edges) dapat dikonversi. 
+  [MergeV ()](https://tinkerpop.apache.org/docs/current/reference/#mergevertex-step) — Langkah mergeV () dapat dikonversi ke operasi mesin Neptunus asli jika parameter (kondisi gabungan, `onCreate` dan`onMatch`) konstan (baik, konstanta, atau `null` a). `Map` `select()` `Map` Semua contoh dalam [simpul upserting dapat dikonversi.](https://docs.aws.amazon.com//neptune/latest/userguide/gremlin-efficient-upserts.html#gremlin-upserts-vertices) 
+ [order( )](http://tinkerpop.apache.org/docs/current/reference/#order-step) — Langkah `order()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah yang mengikutinya adalah true:
  + Langkah `order()` berada dalam traversal turunan nested, seperti ini:

    ```
    g.V().has('code','ANC').where(V().out().order().by(id))
    ```
  + Pengurutan lokal sedang digunakan, seperti misalnya dengan `order(local)`.
  + Sebuah pembanding kustom sedang digunakan dalam modulasi `by()` untuk mengurutkan. Contohnya adalah penggunaan `sack()` ini:

    ```
    g.withSack(0).
      V().has('code','ANC').
          repeat(outE().sack(sum).by('dist').inV()).times(2).limit(10).
          order().by(sack())
    ```
  + Ada beberapa pengurutan pada elemen yang sama.
+ [project( )](http://tinkerpop.apache.org/docs/current/reference/#project-step) — Langkah `project()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali jumlah pernyataan `by()` yang mengikuti `project()` tidak cocok dengan jumlah label yang ditentukan, seperti di sini:

  ```
  g.V().has('code','ANC').project('x', 'y').by(id)
  ```
+ [range( )](http://tinkerpop.apache.org/docs/current/reference/#range-step) — Langkah `range()` hanya dikonversi ketika ujung bawah rentang yang dimaksud adalah nol (misalnya, `range(0,3)`).
+ [repeat( )](http://tinkerpop.apache.org/docs/current/reference/#repeat-step) — Langkah `repeat()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali di-nested di dalam langkah `repeat()` lain, seperti ini:

  ```
  g.V().has('code','ANC').repeat(out().repeat(out()).times(2)).times(2)
  ```
+ [sack( )](http://tinkerpop.apache.org/docs/current/reference/#sack-step) — Langkah `sack()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali dalam kasus berikut:
  + Jika operator sack non-numerik sedang digunakan.
  + Jika operator sack numerik selain `+`, `-`, `mult`, `div`, `min` dan `max` sedang digunakan.
  + Jika `sack()` digunakan di dalam langkah `where()` untuk menyaring berdasarkan nilai sack, seperti di sini:

    ```
    g.V().has('code','ANC').sack(assign).by(values('code')).where(sack().is('ANC'))
    ```
+ [sum( )](http://tinkerpop.apache.org/docs/current/reference/#sum-step) — Langkah `sum()` umumnya dapat dikonversi ke operasi mesin Neptune asli, tetapi tidak ketika digunakan untuk menghitung penjumlahan global, seperti ini:

  ```
  g.V().has('code','ANC').outE('routes').values('dist').sum()
  ```
+ [union ()](http://tinkerpop.apache.org/docs/current/reference/#union-step) — `union()` Langkah ini dapat dikonversi ke operasi mesin Neptunus asli selama itu adalah langkah terakhir dalam kueri selain dari langkah terminal.
+ [unfold ()](http://tinkerpop.apache.org/docs/current/reference/#unfold-step) — `unfold()` Langkah ini hanya dapat dikonversi ke operasi mesin Neptunus asli ketika digunakan dalam pola [Upsert yang](http://tinkerpop.apache.org/docs/current/recipes/#element-existence) direkomendasikan pada TinkerPop halaman [resep](http://tinkerpop.apache.org/docs/current/recipes/), dan ketika digunakan bersama dengan seperti ini: `cap()`

  ```
  g.V().has('airport','country','IE').aggregate('airport').limit(2)
       .cap('airport').unfold()
  ```
+ [where( )](http://tinkerpop.apache.org/docs/current/reference/#where-step) — Langkah `where()` umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali dalam kasus berikut:
  + Saat modulasi by( ) digunakan, seperti ini:

    ```
    g.V().hasLabel('airport').as('a')
         .where(gt('a')).by('runways')
    ```
  + Ketika operator perbandingan selain `eq`, `neq`, `within`, dan `without` digunakan.
  + Ketika agregasi yang disediakan pengguna digunakan.

## Langkah Gremlin yang tidak pernah dikonversi ke operasi mesin Neptune asli
<a name="gremlin-steps-never"></a>

Langkah-langkah Gremlin berikut didukung di Neptune tetapi tidak pernah dikonversi ke operasi mesin Neptune asli. Sebaliknya, mereka dieksekusi oleh server Gremlin.
+ [pilih ()](http://tinkerpop.apache.org/docs/current/reference/#choose-step)
+ [koin ()](http://tinkerpop.apache.org/docs/current/reference/#coin-step)
+ [menyuntikkan ()](http://tinkerpop.apache.org/docs/current/reference/#inject-step)
+ [cocok ()](http://tinkerpop.apache.org/docs/current/reference/#match-step)
+ [matematika ()](http://tinkerpop.apache.org/docs/current/reference/#math-step)
+ [maks ()](http://tinkerpop.apache.org/docs/current/reference/#max-step)
+ [berarti ()](http://tinkerpop.apache.org/docs/current/reference/#mean-step)
+ [min ()](http://tinkerpop.apache.org/docs/current/reference/#min-step)
+ [pilihan ()](http://tinkerpop.apache.org/docs/current/reference/#option-step)
+ [opsional ()](http://tinkerpop.apache.org/docs/current/reference/#optional-step)
+ [jalan ()](http://tinkerpop.apache.org/docs/current/reference/#path-step)
+ [PropertyMap ()](http://tinkerpop.apache.org/docs/current/reference/#propertymap-step)
+ [sampel ()](http://tinkerpop.apache.org/docs/current/reference/#sample-step)
+ [lewati ()](http://tinkerpop.apache.org/docs/current/reference/#skip-step)
+ [ekor ()](http://tinkerpop.apache.org/docs/current/reference/#tail-step)
+ [TimeLimit ()](http://tinkerpop.apache.org/docs/current/reference/#timelimit-step)
+ [pohon ()](http://tinkerpop.apache.org/docs/current/reference/#tree-step)

## Langkah-langkah Gremlin yang tidak didukung di Neptune sama sekali
<a name="neptune-gremlin-steps-unsupported"></a>

Langkah-langkah Gremlin berikut tidak didukung sama sekali di Neptune. Dalam kebanyakan kasus ini karena mereka memerlukan `GraphComputer`, yang saat ini tidak didukung Neptune.
+ [ConnectedComponent ()](http://tinkerpop.apache.org/docs/current/reference/#connectedcomponent-step)
+ [io ()](http://tinkerpop.apache.org/docs/current/reference/#io-step)
+ [ShortestPath ()](http://tinkerpop.apache.org/docs/current/reference/#shortestpath-step)
+ [denganKomputer ()](http://tinkerpop.apache.org/docs/current/reference/#with-step)
+ [PageRank ()](http://tinkerpop.apache.org/docs/current/reference/#pagerank-step)
+ [PeerPressure ()](http://tinkerpop.apache.org/docs/current/reference/#peerpressure-step)
+ [program ()](http://tinkerpop.apache.org/docs/current/reference/#program-step)

`io()`Langkah ini sebenarnya sebagian didukung, karena dapat digunakan untuk `read()` dari URL tetapi tidak untuk`write()`.