기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다음을 사용하여 Neptune 그래프에 액세스하기 openCypher
Neptune은 현재 그래프 데이터베이스를 사용하는 개발자에게 가장 많이 사용되는 쿼리 언어 중 하나인 Neptune을 openCypher 사용하여 그래프 애플리케이션 구축을 지원합니다. 개발자, 비즈니스 분석가, 데이터 과학자는 SQL 에서 영감을 받은 구문을 좋아합니다openCypher. 그래프 애플리케이션용 쿼리를 작성할 수 있는 친숙한 구조를 제공하기 때문입니다.
openCypher는 속성 그래프를 위한 선언적 쿼리 언어로, Neo4j에서 처음 개발한 후 2015년에 오픈 소스로 제공되었으며 Apache 2 오픈 소스 라이선스에 따라 openCypher
사양에 대한 Neptune 지원의 한계 및 차이점에 대해서는 openCypher 을 참조하십시오. openCypher Amazon Neptune의 사양 규정 준수
참고
Cypher 쿼리 언어의 현재 Neo4j 구현은 몇 가지 측면에서 사양과 다릅니다. openCypher 현재 Neo4j Cypher 코드를 Neptune으로 마이그레이션하는 경우 자세한 내용은 Neo4j에 대한 Neptune의 호환성 및 Neptune의 OpenCypher에서 실행되도록 Cypher 쿼리를 재작성을 참조하세요.
엔진 릴리스 1.1.1.0부터 Neptune에서 프로덕션 환경에서 사용할 수 있습니다. openCypher
그렘린 vs.: 유사점과 차이점 openCypher
Gremlin과 openCypher 은 둘 다 속성 그래프 쿼리 언어이며 여러 면에서 상호 보완적입니다.
Gremlin은 프로그래머에게 도움이 되고 코드에 적합하도록 설계되었습니다. 따라서 Gremlin은 설계 상 반드시 필요한 반면, 선언적 구문은 경험이 있거나 경험이 있는 사람에게는 더 openCypher 친숙하게 느껴질 수 있습니다. SQL SPARQL Gremlin은 Jupyter 노트북에서 Python을 사용하는 데이터 과학자에게는 더 자연스러워 보일 openCypher 수 있지만, 배경 지식이 있는 비즈니스 사용자에게는 더 직관적으로 보일 수 있습니다. SQL
좋은 점은 Gremlin과 openCypher Neptune에서 둘 중 하나를 선택할 필요가 없다는 것입니다. 두 언어 중 무엇을 사용하여 데이터를 입력했는지에 관계없이 두 언어로 된 쿼리가 동일한 그래프에서 작동합니다. 하는 일에 따라 어떤 용도에는 그렘린을 사용하고 다른 용도에는 그렘린을 사용하는 것이 더 편리할 수도 있습니다. openCypher
Gremlin은 명령형 구문을 사용하여 일련의 단계에서 그래프 이동 방식을 제어할 수 있습니다. 각 단계는 데이터 스트림을 받아 필터, 맵 등을 사용하여 그래프에 대한 작업을 수행한 후 결과를 다음 단계로 출력합니다. Gremlin 쿼리는 일반적으로 g.V()
형식을 취하고, 그 다음에 추가 단계를 거칩니다.
openCypher에서는 에서 영감을 SQL 받아 그래프에서 찾을 노드와 관계 패턴을 지정하는 선언적 구문을 사용합니다 (예:). ()-[]->()
openCypher 쿼리는 주로 MATCH
절로 시작하고,, 같은 WHERE
다른 절이 뒤에 옵니다. WITH
RETURN
openCypher 사용 시작하기
를 사용하여 Neptune에서 속성 그래프 데이터를 로드한 방식에 openCypher 관계없이 쿼리할 수 있지만, 로 로드된 데이터를 쿼리하는 데는 사용할 openCypher 수 없습니다. RDF
Neptune 벌크 로더는 Gremlin용 형식과 형식의 CSV 속성 그래프 데이터를 수용합니다. CSV openCypher 물론 Gremlin 및/또는 쿼리를 사용하여 그래프에 속성 데이터를 추가할 수도 있습니다. openCypher
Cypher 쿼리 언어를 학습하는 데 사용할 수 있는 온라인 자습서가 많이 있습니다. 여기서는 몇 가지 간단한 openCypher 쿼리 예제를 통해 언어를 이해하는 데 도움이 될 수 있지만, 지금까지 Neptune 그래프 쿼리를 시작하는 가장 쉽고 좋은 방법은 Neptune 워크벤치의 노트북을 사용하는 openCypher 것입니다. 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 샘플 리포지토리에서 편리한 openCypher 구문 치트시트를 찾을 수 있습니다.