Neo4j에서 Amazon Neptune으로 마이그레이션 - Amazon Neptune

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

Neo4j에서 Amazon Neptune으로 마이그레이션

Neo4j와 Amazon Neptune은 모두 그래프 데이터베이스로서, 레이블이 지정된 속성 그래프 데이터 모델을 지원하는 온라인 트랜잭션 그래프 워크로드용으로 설계되었습니다. 이러한 유사성 때문에 현재 Neo4j 애플리케이션을 마이그레이션하려는 고객은 Neptune을 가장 많이 선택합니다. 그러나 두 데이터베이스 간에는 언어 및 기능 지원, 운영 특성, 서버 아키텍처 및 스토리지 기능에 차이가 있기 때문에 이러한 마이그레이션은 단순히 리프트 앤드 시프트가 아닙니다.

이 페이지는 마이그레이션 프로세스를 구성하고 Neo4j 그래프 애플리케이션을 Neptune으로 마이그레이션하기 전에 고려해야 할 사항을 제시합니다. 이러한 고려 사항은 일반적으로 커뮤니티, 엔터프라이즈 또는 Aura 데이터베이스를 기반으로 하는 모든 Neo4j 그래프 애플리케이션에 적용됩니다. 각 솔루션은 고유하고 추가 절차가 필요할 수 있지만 모든 마이그레이션은 동일한 일반 패턴을 따릅니다.

다음 섹션에 설명된 각 단계에는 마이그레이션 프로세스를 단순화하기 위한 고려 사항 및 권장 사항이 포함되어 있습니다. 또한 오픈 소스 도구, 프로세스를 설명하는 블로그 게시물, 권장 아키텍처 옵션이 포함된 기능 호환성 섹션도 있습니다.

Neo4j에서 Neptune으로의 마이그레이션에 대한 일반 정보

openCypher 쿼리 언어에 대한 Neptune 지원을 통해 Bolt 프로토콜 또는 HTTPS를 사용하는 대부분의 Neo4j 워크로드를 Neptune으로 이동할 수 있습니다. 그러나 openCypher는 Neo4j와 같은 다른 데이터베이스에서 지원하는 대부분의 기능을 포함하지만 전부는 아닌 대부분의 기능을 포함하는 오픈 소스 사양입니다.

여러 면에서 호환이 가능함에도 불구하고 Neptune은 Neo4j의 드롭인 대안이 아닙니다. Neptune은 Neo4j와 구조적으로 다른 고가용성 및 높은 내구성과 같은 엔터프라이즈 기능을 갖춘 완전 관리형 그래프 데이터베이스 서비스입니다. Neptune은 단일 기본 작성기 인스턴스와 최대 15개의 읽기 전용 복제본 인스턴스를 포함하는 인스턴스 기반이므로 읽기 용량을 수평적으로 확장할 수 있습니다. Neptune Serverless를 사용하면 쿼리 볼륨에 따라 컴퓨팅 파워를 자동으로 확장 및 축소할 수 있습니다. 이는 데이터를 추가하면 자동으로 확장되는 Neptune 스토리지와는 별개입니다.

Neptune은 오픈 소스 openCypher 표준 사양 버전 9를 지원합니다. AWS에서는 오픈소스가 모두에게 유익하다고 믿으며 고객에게 오픈소스의 가치를, 오픈소스 커뮤니티에 AWS의 운영상의 우수성을 제공하기 위해 최선을 다하고 있습니다.

그러나 Neo4j에서 실행되는 많은 애플리케이션은 오픈 소스가 아니며 Neptune이 지원하지 않는 독점 기능도 사용합니다. 예를 들어 Neptune은 APOC 프로시저, 일부 Cypher 관련 절 및 함수,Char, Date, 또는 Duration 데이터 유형을 지원하지 않습니다. Neptune은 누락된 데이터 유형을 지원되는 데이터 유형으로 자동 캐스팅합니다.

openCypher 외에도 Neptune은 속성 그래프에 대한 Apache TinkerPop Gremlin 쿼리 언어(RDF 데이터용 SPARQL 포함)도 지원합니다. Gremlin은 동일한 속성 그래프에서 openCypher와 상호 운용할 수 있으며, 대부분의 경우 Gremlin을 사용하여 openCypher가 제공하지 않는 기능을 제공할 수 있습니다. 다음은 두 언어를 간단히 비교한 것입니다.

openCypher Gremlin

스타일

선언적

명령형

조건

패턴 일치

Match p=(a)-[:route]->(d) WHERE a.code='ANC' RETURN p

트래버스 기반

g.V().has('code', 'ANC'). out('route').path(). by(elementMap())

사용 편의성

SQL 기반으로 프로그래머가 아니어도 읽을 수 있음

Java와 같은 프로그래밍 언어와 비슷한 가파른 학습 곡선

유연성

낮음

높음

쿼리 지원

문자열 기반 쿼리

클라이언트 라이브러리가 지원하는 문자열 기반 쿼리 또는 인라인 코드

클라이언트

HTTPS 및 Bolt

HTTPS 및 Websockets

Neo4j와 Neptune은 모두 레이블이 지정된 속성 그래프(LPG) 데이터를 지원하기 때문에 일반적으로 Neo4j에서 Neptune으로 마이그레이션하기 위해 데이터 모델을 변경할 필요는 없습니다. 그러나 Neptune에는 성능을 최적화하는 데 활용할 수 있는 몇 가지 아키텍처 및 데이터 모델 차이점이 있습니다. 예:

  • Neptune ID는 우선적으로 취급됩니다.

  • Neptune은 AWS Identity and Access Management(IAM) 정책을 사용하여 유연하고 세분화된 방식으로 그래프 데이터에 대한 액세스를 보호합니다.

  • Neptune은 Jupyter Notebook을 사용하여 쿼리를 실행하고 결과를 시각화하는 여러 가지 방법을 제공합니다. Neptune은 타사 시각화 도구와도 호환됩니다.

  • >Neptune은 Neo4j 그래프 데이터 과학(GDS) 라이브러리를 대체할 수 있는 드롭인을 제공하지 않지만, 현재 Neptune은 다양한 솔루션을 통해 그래프 분석을 지원합니다. 예를 들어, 여러 샘플 노트북은 Python 환경 내에서 AWS Pandas SDK와 Neptune의 통합을 활용하여 그래프 데이터에 대한 분석을 실행하는 방법을 보여줍니다.

질문이 있는 경우 AWS 지원 팀에 문의하거나 AWS 계정 팀에 문의하세요. 피드백을 바탕으로 필요에 맞는 새로운 기능의 우선순위를 정합니다.