기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
openCypher 사용 시작하기
로드 방식에 관계없이 openCypher를 통해 Neptune에서 속성 그래프 데이터를 쿼리할 수 있지만, openCypher를 사용하여 RDF로 로드된 데이터를 쿼리할 수는 없습니다.
Neptune 대량 로더는 Gremlin의 경우 CSV 형식, openCypher의 경우 CSV 형식의 속성 그래프 데이터를 받아들입니다. 물론 Gremlin 및/또는 openCypher 쿼리를 사용하여 그래프에 속성 데이터를 추가할 수도 있습니다.
Cypher 쿼리 언어를 학습하는 데 사용할 수 있는 온라인 자습서가 많이 있습니다. 여기서는 openCypher 쿼리의 몇 가지 간단한 예제를 통해 언어에 대한 아이디어를 얻을 수 있지만, openCypher를 사용하여 Neptune 그래프를 쿼리하기 시작하는 가장 쉽고 좋은 방법은 Neptune 워크벤치의 openCypher 노트북을 사용하는 것입니다. 워크벤치는 오픈 소스로 제공되며, GitHub의 https://github.com/aws-samples/amazon-neptune-samples
openCypher 노트북은 GitHub Neptune 그래프 노트북 리포지토리
openCypher에서 처리하는 데이터는 정렬되지 않은 일련의 키/값 맵의 형태를 취합니다. 이러한 맵을 수정, 조작 및 강화하는 주요 방법은 키/값 페어에서 패턴 매칭, 삽입, 업데이트, 삭제와 같은 작업을 수행하는 절을 사용하는 것입니다.
openCypher에는 그래프에서 데이터 패턴을 찾기 위한 몇 가지 절이 있는데, 그중 MATCH
가 가장 흔히 사용됩니다. MATCH
를 활용하면 그래프에서 찾으려는 노드, 관계, 필터의 패턴을 지정할 수 있습니다. 예:
-
모든 노드 가져오기
MATCH (n) RETURN n
-
연결된 노드 찾기
MATCH (n)-[r]->(d) RETURN n, r, d
-
경로 찾기
MATCH p=(n)-[r]->(d) RETURN p
-
레이블이 있는 모든 노드 가져오기
MATCH (n:airport) RETURN n
참고로 위의 첫 번째 쿼리는 그래프의 모든 단일 노드를 반환하고, 다음 두 쿼리는 관계가 있는 모든 노드를 반환합니다. 일반적으로 권장되지는 않습니다. 대부분의 경우 반환되는 데이터의 범위를 좁히는 것이 좋습니다. 네 번째 예와 같이 노드 또는 관계 레이블과 속성을 지정하여 반환되는 데이터의 범위를 좁힐 수 있습니다.
Neptune GitHub 샘플 리포지토리