기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SPARQL SERVICE
확장을 사용하는 Neptune의 페더레이션 쿼리
Amazon Neptune은 SERVICE
키워드를 사용하는 SPARQL 페더레이션 쿼리 확장을 완전히 지원합니다. (자세한 내용은 SPARQL 1.1 페더레이션 쿼리를
참고
이 기능은 릴리스 1.0.1.0.200463.0(2019년 10월 15일)에서 사용할 수 있습니다.
SERVICE
키워드는 SPARQL 쿼리 엔진에 원격 SPARQL 엔드포인트에 대해 쿼리의 일부를 실행하고 최종 쿼리 결과를 작성하도록 지시합니다. READ
작업만 가능합니다. WRITE
및 DELETE
작업은 지원되지 않습니다. Neptune은 가상 프라이빗 클라우드() 내에서 액세스할 수 있는 SPARQL 엔드포인트에 대해서만 페더레이션 쿼리를 실행할 수 있습니다VPC. 그러나 의 역방향 프록시를 사용하여 내에서 외부 데이터 소스에 액세스할 수 VPC 있습니다VPC.
참고
SPARQL SERVICE
를 사용하여 동일한 의 두 개 이상의 Neptune 클러스터에 쿼리를 페더레이션하는 경우 VPC모든 Neptune 클러스터가 서로 통신할 수 있도록 보안 그룹을 구성해야 합니다.
중요
SPARQL 1.1 Federation은 쿼리와 파라미터를 외부 SPARQL 엔드포인트에 전달할 때 사용자를 대신하여 서비스 요청을 합니다. 외부 SPARQL 엔드포인트가 애플리케이션의 데이터 처리 및 보안 요구 사항을 충족하는지 확인하는 것은 사용자의 책임입니다.
Neptune 페더레이션 쿼리의 예제
다음 간단한 예제에서는 SPARQL 페더레이션 쿼리의 작동 방식을 보여줍니다.
고객이 http://neptune-1:8182/sparql
에서 Neptune-1에 다음과 같은 쿼리를 보낸다고 가정해 보겠습니다.
SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
Neptune-1은 첫 번째 쿼리 패턴(Q-1)인
?person rdf:type foaf:Person
을 평가하고 결과를 바탕으로 Q-2(?person foaf:knows ?friend
)에서?person
을 해결한 다음, 결과 패턴을http://neptune-2:8182/sparql
의 Neptune-2에 전달합니다.Neptune-2는 Q-2를 평가하고 그 결과를 Neptune-1에 다시 전송합니다.
Neptune-1은 두 패턴 모두에 대한 솔루션을 조인하여 결과를 고객에게 다시 전송합니다.
이 흐름은 다음 다이어그램에 나와 있습니다.
참고
기본적으로 옵티마이저는 SERVICE
명령이 실행되는 쿼리 실행 시점을 결정합니다. joinOrder 쿼리 힌트를 사용하여 이 배치를 재정의할 수 있습니다.
Neptune의 페더레이션 쿼리에 대한 액세스 제어
Neptune은 인증 및 권한 부여에 AWS Identity and Access Management (IAM)를 사용합니다. 페더레이션 쿼리에 대한 액세스 제어에는 Neptune DB 인스턴스가 하나 이상 관여할 수 있습니다. 이들 인스턴스는 액세스 제어에 대한 요구 사항이 서로 다를 수 있습니다. 어떤 경우에는 이로 인해 연동 쿼리를 구성하는 능력이 제한될 수 있습니다.
이전 섹션에 제시된 간단한 예를 생각해 봅시다. Neptune-1은 호출에 사용한 것과 동일한 보안 인증 정보로 Neptune-2를 호출합니다.
Neptune-1에 IAM 인증 및 권한이 필요하지만 Neptune-2에 권한이 없는 경우 Neptune-1이 페더레이션 쿼리를 생성하는 데 필요한 적절한 IAM 권한만 있으면 됩니다.
Neptune-1과 Neptune-2 모두에 IAM 인증과 권한이 필요한 경우 페더레이션 쿼리를 만들 수 있도록 두 데이터베이스에 대한 IAM 권한을 연결해야 합니다. 두 클러스터 모두 동일한 AWS 계정과 동일한 리전에 있어야 합니다. 크로스 리전 및/또는 크로스 계정 페더레이션 쿼리 아키텍처는 현재 지원되지 않습니다.
그러나 Neptune-1이 IAM활성화되지 않았지만 Neptune-2가 활성화되어 있는 경우 페더레이션 쿼리를 만들 수 없습니다. 그 이유는 Neptune-1이 자격 IAM 증명을 검색하여 Neptune-2에 전달하여 쿼리의 두 번째 부분을 승인할 수 없기 때문입니다.