View a markdown version of this page

Model kolam renang untuk RDF - AWS Bimbingan Preskriptif

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

Model kolam renang untuk RDF

Resource Description Framework (RDF) memiliki konsep grafik bernama, yang menyediakan cara logis untuk memisahkan data. Di Amazon Neptunus, Anda memiliki grafik bernama default dan grafik bernama yang ditentukan pengguna. Anda dapat membuat grafik bernama sebanyak yang Anda inginkan. Secara kolektif, mereka disebut dataset RDF. Semua grafik bernama, default atau yang ditentukan pengguna, didefinisikan oleh Internationalized Resource Identifier (IRI) dalam dataset RDF. Di Neptunus, kecuali pengguna mendeklarasikan grafik bernama saat menulis data, semua tripel dianggap sebagai bagian dari grafik bernama default.

Ada beberapa kasus penggunaan untuk grafik bernama:

  • Partisi data dan isolasi data

  • Asal data

  • Penentuan versi

  • Inferensi

Panduan ini berfokus pada kasus penggunaan partisi data. Sebaiknya buat satu grafik bernama yang ditentukan pengguna untuk setiap penyewa.

Opsi kueri SPARQL menggunakan Protokol HTTP Graph Store

Contoh query berikut menggunakan SPARQL Protocol dan RDF Query Language (SPARQL) dan Graph Store HTTP Protocol untuk query atau membuat grafik bernama untuk penyewa.

  • HTTP GETUntuk mengambil grafik tertentu dari penyewa:

    curl --request GET 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'
  • HTTP PUTUntuk membuat atau mengganti grafik bernama tertentu dengan muatan yang ditentukan dalam permintaan:

    curl --request PUT -H "Content-Type: text/turtle" \ --data-raw "@prefix ex: http://example.com/ . ex:subject ex:predicate ex:object ." \ 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'

    Dalam RDF, sebuah objek adalah rangkap tiga.

  • HTTP POSTUntuk membuat grafik bernama baru jika tidak ada, atau bergabung dengan grafik yang ada:

    curl --request POST -H "Content-Type: text/turtle" \ --data-raw "@prefix ex: http://example.com/ . ex:subject ex:predicate ex:object ." \ 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'

Isolasi penyewa untuk RDF

Untuk isolasi logis data dengan pagar pembatas yang diperlukan di lapisan aplikasi, buat pemetaan antara grafik bernama penyewa dan yang ditentukan pengguna. Saat Anda merancang multi-tenancy untuk kumpulan data RDF, perhatikan aspek-aspek RDF dan SPARQL berikut:

  • Di Neptunus, ketika Anda menanyakan tanpa menentukan grafik bernama, ia mengambil semua tiga kali lipat yang cocok dengan pola di semua grafik bernama dalam database.

  • Dalam RDF, tidak ada kendala di sekitar koneksi antara node dari grafik bernama yang berbeda. Misalnya, pada diagram sebelumnya, simpul di :G1 dapat dihubungkan ke simpul di: G2 melalui tepi.

Misalnya, jika pengguna akhir penyewa tertentu mengirimkan kueri ke API, API harus memvalidasi persyaratan berikut sebelum mengirimkan kueri ke database Neptunus:

  • Setiap kueri yang dicakup pada penyewa tunggal harus menentukan grafik bernama. Jika tidak, Anda berisiko membocorkan data di seluruh penyewa.

  • Perbarui atau Hapus kueri harus selalu menentukan grafik bernama.

  • Node di kedua sisi tepi atau hubungan harus selalu milik grafik bernama yang benar.

Untuk informasi tambahan tentang praktik terbaik, lihat dokumentasi Neptunus.