

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

# `Kueri federasi SPARQL di Neptunus menggunakan ekstensi LAYANAN`
<a name="sparql-service"></a>

Amazon Neptune sepenuhnya mendukung ekstensi kueri gabungan SPARQL yang menggunakan kata kunci `SERVICE`. (Untuk informasi selengkapnya, lihat [Kueri Gabungan SPARQL 1.1](https://www.w3.org/TR/sparql11-federated-query/).)

Kata kunci `SERVICE` menginstruksikan mesin kueri SPARQL untuk mengeksekusi sebagian dari kueri terhadap titik akhir SPARQL jauh dan menyusun hasil kueri akhir. Hanya operasi `READ` yang dimungkinkan. Operasi `WRITE` dan `DELETE` tidak didukung. Neptune hanya dapat menjalankan kueri gabungan terhadap titik akhir SPARQL yang dapat diakses dalam cloud privat virtual (VPC). Namun, Anda juga dapat menggunakan reverse proxy di VPC untuk membuat sumber data eksternal dapat diakses dalam VPC.

**catatan**  
Saat `SERVICE` SPARQL digunakan untuk melakukan federasi pada kueri untuk dua klaster Neptune atau lebih di VPC yang sama, grup keamanan harus dikonfigurasi untuk memungkinkan semua klaster Neptune untuk berbicara satu sama lain.

**penting**  
SPARQL 1.1 Federation membuat permintaan layanan atas nama Anda saat melewatkan kueri dan parameter ke titik akhir SPARQL eksternal. Anda bertanggung jawab untuk memverifikasi bahwa titik akhir SPARQL eksternal memenuhi persyaratan penanganan data dan keamanan aplikasi Anda.

## Contoh dari kueri gabungan Neptune
<a name="sparql-service-example-1"></a>

Contoh sederhana berikut menunjukkan bagaimana kueri gabungan SPARQL bekerja.

Misalkan pelanggan mengirimkan kueri berikut ke *Neptune-1*at`http://neptune-1:8182/sparql`.

```
SELECT * WHERE {
   ?person rdf:type foaf:Person .
   SERVICE <http://neptune-2:8182/sparql> {
       ?person foaf:knows ?friend .
    }
}
```

1. *Neptune-1*mengevaluasi pola kueri pertama (*Q-1*) yaitu`?person rdf:type foaf:Person`, menggunakan hasil untuk menyelesaikan `?person` di *Q-2*(`?person foaf:knows ?friend`), dan meneruskan pola yang dihasilkan ke at. *Neptune-2*`http://neptune-2:8182/sparql`

1. *Neptune-2*mengevaluasi *Q-2*dan mengirimkan hasil kembali ke *Neptune-1*.

1. *Neptune-1*bergabung dengan solusi untuk kedua pola dan mengirimkan hasilnya kembali ke pelanggan.

Alur ini ditunjukkan dalam diagram berikut.

![Diagram alur menunjukkan pola kueri gabungan SPARQL sedang dievaluasi dan respons dikirim kembali ke klien.](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/images/federated.png)


**catatan**  
“Secara default, optimizer menentukan pada titik apa dalam eksekusi kueri bahwa instruksi `SERVICE` dijalankan. Anda dapat mengganti penempatan ini menggunakan petunjuk kueri [JoinOrder](sparql-query-hints-joinOrder.md).

## Kontrol akses untuk kueri gabungan di Neptune
<a name="sparql-service-auth"></a>

Neptunus AWS Identity and Access Management menggunakan (IAM) untuk otentikasi dan otorisasi. Kontrol akses untuk kueri gabungan dapat melibatkan lebih dari satu instans DB Neptune. Instans ini mungkin memiliki persyaratan yang berbeda untuk kontrol akses. Dalam keadaan tertentu, ini dapat membatasi kemampuan Anda untuk membuat kueri gabungan.

Perhatikan contoh sederhana yang disajikan di bagian sebelumnya. *Neptune-1*panggilan *Neptune-2*dengan kredensil yang sama dengan panggilan.
+ Jika *Neptune-1*memerlukan otentikasi dan otorisasi IAM, tetapi *Neptune-2*tidak, yang Anda butuhkan hanyalah izin IAM yang sesuai *Neptune-1*untuk membuat kueri federasi.
+ Jika *Neptune-1*dan *Neptune-2*keduanya memerlukan otentikasi dan otorisasi IAM, Anda perlu melampirkan izin IAM untuk kedua database untuk membuat kueri federasi. Kedua cluster juga harus berada di AWS akun yang sama dan di wilayah yang sama. Cross-region and/or Arsitektur kueri federasi lintas akun saat ini tidak didukung.
+ Namun, dalam kasus di mana *Neptune-1*tidak IAM-enabled tetapi *Neptune-2*ada, Anda tidak dapat membuat kueri federasi. Alasannya adalah bahwa tidak *Neptune-1*dapat mengambil kredensi IAM Anda dan meneruskannya *Neptune-2*untuk mengotorisasi bagian kedua dari kueri.