기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
RDF용 풀 모델
리소스 설명 프레임워크(RDF)에는 데이터를 분리하는 논리적 방법을 제공하는 명명된 그래프 개념이 있습니다. Amazon Neptune에는 기본 명명된 그래프와 사용자 정의 명명된 그래프가 있습니다. 원하는 수만큼 명명된 그래프를 생성할 수 있습니다. 집합적으로 RDF 데이터 세트라고 합니다. 기본 또는 사용자 정의의 모든 명명된 그래프는 RDF 데이터 세트 내의 국제화된 리소스 식별자(IRI)로 정의됩니다. Neptune에서 사용자가 데이터를 쓸 때 명명된 그래프를 선언하지 않는 한 모든 트리플
명명된 그래프에는 여러 사용 사례가 있습니다.
-
데이터 파티셔닝 및 데이터 격리
-
데이터 출처
-
버전 관리
-
Inference
이 가이드는 데이터 파티셔닝 사용 사례에 중점을 둡니다. 각 테넌트에 대해 사용자 정의 명명된 그래프를 하나씩 생성하는 것이 좋습니다.
Graph Store HTTP 프로토콜을 사용한 SPARQL 쿼리 옵션
다음 예제 쿼리는 SPARQL 프로토콜 및 RDF 쿼리 언어(SPARQL) 및 그래프 스토어 HTTP 프로토콜을 사용하여 테넌트에 대한 명명된 그래프를 쿼리하거나 생성합니다.
-
HTTP GET‒ 테넌트의 특정 그래프를 검색하려면:curl --request GET 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1' -
HTTP PUT‒ 명명된 특정 그래프를 생성하거나 요청에 지정된 페이로드로 바꾸려면: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'RDF에서 객체는 트리플입니다.
-
HTTP POST‒ 그래프가 없는 경우 명명된 새 그래프를 생성하거나 기존 그래프와 병합하려면: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'
RDF에 대한 테넌트 격리
애플리케이션 계층에 필요한 가드레일이 있는 데이터를 논리적으로 격리하려면 테넌트와 사용자 정의 명명된 그래프 간에 매핑을 생성합니다. RDF 데이터 세트에 대한 다중 테넌시를 설계할 때는 RDF 및 SPARQL
-
Neptune에서는 명명된 그래프를 지정하지 않고 쿼리하면 데이터베이스의 명명된 모든 그래프에서 패턴과 일치하는 모든 트리플을 검색합니다.
-
RDF에는 이름이 지정된 그래프가 다른 노드 간의 연결에 대한 제약이 없습니다. 예를 들어 이전 다이어그램에서의 노드는 엣지를 통해
G2의 노드에 연결할:G1수 있습니다.
예를 들어 특정 테넌트의 최종 사용자가 API에 쿼리를 제출하는 경우 API는 Neptune 데이터베이스에 쿼리를 제출하기 전에 다음 요구 사항을 검증해야 합니다.
-
단일 테넌트로 범위가 지정된 모든 쿼리는 명명된 그래프를 지정해야 합니다. 그렇지 않으면 테넌트 간에 데이터가 유출될 위험이 있습니다.
-
쿼리 업데이트 또는 삭제는 항상 명명된 그래프를 지정해야 합니다.
-
엣지 또는 관계의 양쪽에 있는 노드는 항상 올바른 명명된 그래프에 속해야 합니다.
모범 사례에 대한 자세한 내용은 Neptune 설명서를 참조하세요.