Menggunakan SPARQL UPDATE UNLOAD untuk menghapus data dari Neptune - Amazon Neptune

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

Menggunakan SPARQL UPDATE UNLOAD untuk menghapus data dari Neptune

Neptune juga menyediakan operasi SPARQL kustom, UNLOAD, untuk menghapus data yang ditentukan dalam sumber remote. UNLOAD dapat dianggap sebagai mitra untuk operasi LOAD. Sintaksnya adalah:

catatan

Fitur ini tersedia mulai dari Rilis mesin Neptune 1.0.4.1.

UNLOAD SILENT (URL of the remote data to be unloaded) FROM GRAPH (named graph from which to remove the data)
  • SILENT   –   (Opsional) Menyebabkan operasi mengembalikan sukses bahkan jika ada kesalahan selama pemrosesan data.

    Hal ini dapat berguna ketika transaksi tunggal berisi beberapa pernyataan seperti "LOAD ...; LOAD ...; UNLOAD ...; LOAD ...;" dan Anda ingin transaksinya selesai bahkan jika beberapa data jarak jauh tidak dapat diproses.

  • URL of the remote data to be unloaded- (Wajib) Menentukan file data jarak jauh yang berisi data yang akan diturunkan dari grafik.

    File jarak jauh harus memiliki salah satu ekstensi berikut (ini adalah format yang sama yang didukung UPDATE-LOAD):

    • .ntuntuk NTriples.

    • .nquntuk NQuads.

    • .trig untuk Trig.

    • .rdf untuk RDF/XML.

    • .ttl untuk Turtle.

    • .n3 untuk N3.

    • .jsonld untuk JSON-LD.

    Semua data yang berisi file ini akan dihapus dari klaster DB Anda oleh operasi UNLOAD.

    Otentikasi Amazon S3 harus disertakan dalam URL untuk data yang akan batal dimuat. Anda dapat melakukan pre-sign pada file Amazon S3 lalu menggunakan URL yang dihasilkan untuk mengaksesnya dengan aman. Sebagai contoh:

    aws s3 presign --expires-in (number of seconds) s3://(bucket name)/(path to file of data to unload)

    Kemudian:

    curl https://(a Neptune endpoint URL):8182/sparql \ --data-urlencode 'update=unload (pre-signed URL of the remote Amazon S3 data to be unloaded) \ from graph (named graph)'

    Untuk informasi lebih lanjut, lihat Melakukan Autentikasi Permintaan: Menggunakan Parameter Kueri.

  • FROM GRAPH (named graph from which to remove the data)— (Opsional) Menentukan grafik bernama dari mana data jarak jauh harus diturunkan.

    Neptune mengasosiasikan setiap tripel dengan grafik bernama. Anda dapat menentukan grafik bernama default menggunakan URI grafik bernama fallback, http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph, seperti ini:

    FROM GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph>

Dengan cara yang sama saat LOAD sesuai dengan INSERT DATA { (inline data) }, UNLOAD sesuai dengan DELETE DATA { (inline data) }. Seperti halnya DELETE DATA, UNLOAD tidak berfungsi pada data yang berisi simpul kosong.

Sebagai contoh, jika server web lokal melayani file bernama data.nt yang berisi 2 triple berikut:

<http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> .

Perintah UNLOAD berikut akan menghapus dua triple tersebut dari grafik bernama, <http://example.org/graph1>:

UNLOAD <http://localhost:80/data.nt> FROM GRAPH <http://example.org/graph1>

Hal ini akan memiliki efek yang sama seperti menggunakan perintah DELETE DATA berikut:

DELETE DATA { GRAPH <http://example.org/graph1> { <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> . } }
Pengecualian yang dilemparkan oleh perintah UNLOAD
  • InvalidParameterException   –   Ada simpul kosong dalam data. Status HTTP: 400 Permintaan Buruk.

    Pesan: Blank nodes are not allowed for UNLOAD

     

  • InvalidParameterException   –   Ada sintaks yang rusak dalam data. Status HTTP: 400 Permintaan Buruk.

    Pesan: Invalid syntax in the specified file.

     

  • UnloadUrlAccessDeniedException   –   Akses ditolak. Status HTTP: 400 Permintaan Buruk.

    Pesan: Update failure: Endpoint (Neptune endpoint) reported access denied error. Please verify access.

     

  • BadRequestException   –   Data jarak jauh tidak dapat diambil. Status HTTP: 400 Permintaan Buruk.

    Pesan: (tergantung respons HTTP).