다음을 사용하여 Neptune 그래프에 액세스하기 openCypher - Amazon Neptune

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

다음을 사용하여 Neptune 그래프에 액세스하기 openCypher

Neptune은 현재 그래프 데이터베이스를 사용하는 개발자에게 가장 많이 사용되는 쿼리 언어 중 하나인 Neptune을 openCypher 사용하여 그래프 애플리케이션 구축을 지원합니다. 개발자, 비즈니스 분석가, 데이터 과학자는 SQL 에서 영감을 받은 구문을 좋아합니다openCypher. 그래프 애플리케이션용 쿼리를 작성할 수 있는 친숙한 구조를 제공하기 때문입니다.

openCypher는 속성 그래프를 위한 선언적 쿼리 언어로, Neo4j에서 처음 개발한 후 2015년에 오픈 소스로 제공되었으며 Apache 2 오픈 소스 라이선스에 따라 openCypher프로젝트에 기여했습니다. 이 구문은 Cypher 쿼리 언어 참조(버전 9)에 문서화되어 있습니다.

사양에 대한 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 취합니다. 이러한 맵을 수정, 조작 및 강화하는 주요 방법은 키/값 페어에서 패턴 매칭, 삽입, 업데이트, 삭제와 같은 작업을 수행하는 절을 사용하는 것입니다.

그래프에서 데이터 패턴을 찾기 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 구문 치트시트를 찾을 수 있습니다.