SPARQL UPDATE UNLOAD를 사용하여 Neptune에서 데이터 삭제 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SPARQL UPDATE UNLOAD를 사용하여 Neptune에서 데이터 삭제

Neptune은 원격 소스에서 지정된 데이터를 제거하기 위한 사용자 지정 SPARQL 작업 UNLOAD도 제공합니다. UNLOADLOAD 작업에 대응하는 것으로 생각하면 됩니다. 구문은 다음과 같습니다.

참고

이 기능은 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   –   (선택 사항) 데이터를 처리할 때 오류가 발생했더라도 작업이 성공을 반환하도록 합니다.

    이는 단일 트랜잭션에 "LOAD ...; LOAD ...; UNLOAD ...; LOAD ...;"와 같이 여러 문이 포함되어 있고 일부 원격 데이터를 처리할 수 없는데 트랜잭션을 완료하려는 경우에 유용할 수 있습니다.

  • 언로드할 원격 데이터의 URL   –   (필수) 그래프에서 언로드할 데이터가 들어 있는 원격 데이터 파일을 지정합니다.

    원격 파일의 확장자는 다음 중 하나를 가져야 합니다(UPDATE-LOAD에서 지원하는 형식과 동일).

    • NTriples에 대해 .nt

    • NQuads에 대해 .nq

    • Trig에 대해 .trig

    • RDF/XML에 대해 .rdf

    • Turtle에 대해 .ttl

    • N3에 대해 .n3

    • JSON-LD에 대해 .jsonld

    이 파일에 포함된 모든 데이터는 UNLOAD 작업에 의해 DB 클러스터에서 제거됩니다.

    데이터를 언로드하려면 모든 Amazon S3 인증이 URL에 포함되어야 합니다. Amazon S3 파일에 미리 서명한 후 결과로 생성된 URL을 사용하여 안전하게 액세스할 수 있습니다. 예시:

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

    그런 후에 다음 단계를 수행합니다.

    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)'

    자세한 내용은 요청 인증: 쿼리 파라미터 사용을 참조하십시오.

  • FROM GRAPH (데이터를 제거할 명명된 그래프)   –   (선택 사항) 원격 데이터를 언로드해야 하는 명명된 그래프를 지정합니다.

    Neptune은 트리플마다 이름이 있는 그래프를 연결합니다. 다음과 같이 폴백 명명된 그래프 URI(http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph)를 사용하여 기본 명명된 그래프를 지정할 수 있습니다.

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

LOADINSERT DATA { (inline data) }에 해당하듯이, UNLOADDELETE DATA { (inline data) }에 해당합니다. DELETE DATA과 같이 UNLOAD는 빈 노드를 포함한 데이터에는 사용할 수 없습니다.

로컬 웹 서버가 다음 2개의 트리플이 포함된 data.nt 이름의 파일을 제공하는 경우를 예로 들어 보겠습니다.

<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> .

다음 UNLOAD 명령은 명명된 <http://example.org/graph1> 그래프에서 이 두 트리플을 삭제합니다.

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

이렇게 하면 다음 DELETE DATA 명령을 사용하는 것과 같은 효과가 나타납니다.

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> . } }
UNLOAD 명령으로 인한 예외 발생
  • InvalidParameterException   –   데이터에 빈 노드가 있었습니다. HTTP 상태: 400 Bad Request.

    메시지: Blank nodes are not allowed for UNLOAD

     

  • InvalidParameterException   –   데이터 구문이 깨졌습니다. HTTP 상태: 400 Bad Request.

    메시지: Invalid syntax in the specified file.

     

  • UnloadUrlAccessDeniedException   –   액세스가 거부되었습니다. HTTP 상태: 400 Bad Request.

    메시지: Update failure: Endpoint (Neptune endpoint) reported access denied error. Please verify access.

     

  • BadRequestException   –   원격 데이터를 검색할 수 없습니다. HTTP 상태: 400 Bad Request.

    메시지: (HTTP 응답에 따라 다름)