Amazon Neptune 엔진 버전 1.2.1.0(2023년 3월 8일) - Amazon Neptune

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

Amazon Neptune 엔진 버전 1.2.1.0(2023년 3월 8일)

2023년 3월 8일부터 엔진 버전 1.2.1.0이 정식으로 배포되고 있습니다. 모든 리전에서 새 릴리스를 사용할 수 있게 되려면 며칠이 걸립니다.

참고

1.2.0.0 이전 엔진 버전에서 업그레이드하는 경우

  • 엔진 릴리스 1.2.0.0에서는 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹을 위한 새로운 형식을 도입했습니다. 따라서 1.2.0.0 이전 엔진 버전에서 엔진 버전 1.2.0.0 이상으로 업그레이드하는 경우 파라미터 그룹 패밀리 neptune1.2를 사용하여 기존의 모든 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹을 다시 생성해야 합니다. 이전 릴리스에서는 파라미터 그룹 패밀리 neptune1을 사용했으며, 이러한 파라미터 그룹은 릴리스 1.2.0.0 이상에서는 작동하지 않습니다. 자세한 정보는 Amazon Neptune 파라미터 그룹 섹션을 참조하십시오.

  • 엔진 릴리스 1.2.0.0에는 실행 취소 로그에 대한 새로운 형식도 도입되었습니다. 따라서 이전 엔진 버전에서 생성된 모든 실행 취소 로그를 삭제하고 UndoLogsListSize CloudWatch 지표가 0으로 떨어져야 1.2.0.0 이전 버전에서 업그레이드를 시작할 수 있습니다. 업데이트를 시작하려고 할 때 실행 취소 로그 기록이 너무 많으면(20만 개 이상), 실행 취소 로그 제거가 완료될 때까지 기다리는 동안 업그레이드를 시도하는 제한 시간이 초과될 수 있습니다.

    제거가 이루어지는 클러스터의 라이터 인스턴스를 업그레이드하여 제거 속도를 높일 수 있습니다. 업그레이드를 시도하기 전에 이렇게 하면 시작하기 전에 실행 취소 로그의 수가 줄어들 수 있습니다. 라이터의 크기를 24XL 인스턴스 유형으로 늘리면 제거 속도가 시간당 백만 개 이상으로 증가할 수 있습니다.

    UndoLogsListSize CloudWatch 지표가 매우 큰 경우 지원 사례를 열면 이를 줄이기 위한 추가 전략을 모색하는 데 도움이 될 수 있습니다.

  • 마지막으로, 릴리스 1.2.0.0에는 IAM 인증과 함께 Bolt 프로토콜을 사용하던 이전 코드에 영향을 미치는 주요 변경 사항이 적용되었습니다. 릴리스 1.2.0.0부터 Bolt는 IAM 서명을 위한 리소스 경로가 필요합니다. Java에서 리소스 경로를 설정하면 request.setResourcePath("/openCypher"));처럼 보일 수 있습니다. 다른 언어에서는 엔드포인트 URI에 /openCypher를 추가할 수 있습니다. Bolt 프로토콜 사용의 예제를 참조하세요.

이 릴리스의 후속 패치 릴리스

이 엔진 릴리스의 새로운 기능

  • TinkerPop 3.6.2에 대한 지원이 추가되어 새로운 mergeV(), mergeE(), element(), fail() 단계와 같은 많은 새로운 Gremlin 기능이 추가되었습니다. mergeV()mergeE() 단계는 업서트와 유사한 작업을 수행할 수 있도록 오랫동안 기다려온 선언적 옵션을 제공한다는 점에서 특히 주목할 만합니다. 이 옵션을 사용하면 기존 코드 패턴을 크게 단순화하고 Gremlin을 더 쉽게 읽을 수 있습니다. 또한 3.6.x 버전에는 regex 조건자가 추가되어 Map을 사용하는 property() 단계에 새로운 오버로드가 적용되었으며, 이를 사용하는 모든 단계에서 훨씬 더 일관된 by() 변조 동작이 주요한 수정 사항입니다.

    버전 3.6의 변경 사항 및 업그레이드 시 고려해야 할 사항에 대한 정보는 TinkerPop 변경 로그업그레이드 페이지를 참조하시기 바랍니다.

    조건부 삽입에 fold().coalesce(unfold(), <mutate>)를 사용하는 경우 여기여기에 설명된 새 mergeV/E() 구문으로 마이그레이션하는 것이 좋습니다. Neptune은 Coalesce보다 Merge에서 더 제한된 잠금 패턴을 사용하므로 동시 수정 예외(CME)를 줄일 수 있습니다.

    이번 TinkerPop 릴리스에서 사용할 수 있는 새로운 기능에 대한 자세한 내용은 Stephen Mallette의 블로그의 Amazon Neptune에서 제공되는 Apache TinkerPop 3.6.x의 새로운 기능 살펴보기를 참조하시기 바랍니다.

  • 3세대 Intel Xeon 스케일러블 프로세서 기반 R6i 인스턴스 유형에 대한 지원이 추가되었습니다. 메모리 집약적인 워크로드에 적합하며, 동급 R5 인스턴스 유형보다 최대 15% 더 우수한 가격 대비 컴퓨팅 성능과 vCPU당 최대 20% 더 높은 메모리 대역폭을 제공합니다.

  • 속성 그래프와 RDF 그래프 모두에 그래프 요약 API 엔드포인트가 추가되어 그래프에 대한 간단한 요약 보고서를 확인할 수 있습니다.

    속성(PG) 그래프의 경우 그래프 요약 API는 노드, 엣지, 속성의 개수와 함께 노드 및 엣지 레이블과 속성 키의 읽기 전용 목록을 제공합니다. RDF 그래프의 경우 쿼드, 주제, 조건자와 함께 클래스 및 조건자 키 목록을 제공합니다.

    새 그래프 요약 API와 함께 다음과 같은 변경 사항이 적용되었습니다.

    • GetGraphSummary 데이터 영역 작업이 새로 추가되었습니다.

    • 더 이상 지원되지 않는 sparql/statistics 엔드포인트를 대체할 새 rdf/statistics 엔드포인트가 추가되었습니다.

    • 통계 상태 응답의 summary 필드 이름을 signatureInfo로 변경하여 그래프 요약 정보와 혼동하지 않도록 했습니다. 이전 엔진 버전은 JSON 응답에서 summary를 계속 사용합니다.

    • 통계 상태 응답의 date 필드 정밀도가 분에서 밀리초로 변경되었습니다. 이전은 2020-05-07T23:13Z(분 정밀도) 형식이고 이제 2023-01-24T00:47:43.319Z(밀리초 정밀도) 형식으로 변경되었습니다. 둘 다 ISO 8601을 준수하지만 이 변경으로 인해 날짜가 구문 분석되는 방식에 따라 기존 코드가 손상될 수 있습니다.

    • Workbench에 DFE 엔진 통계를 가져올 수 있는 새로운 %statistics 라인 매직이 추가되었습니다.

    • Workbench에 그래프 요약 정보를 가져올 수 있는 새로운 %summary 라인 매직이 추가되었습니다.

  • 지정된 기준값보다 실행 시간이 오래 걸리는 로그 쿼리에 슬로우 쿼리 로깅이 추가되었습니다. 두 개의 새로운 동적 파라미터, 즉 neptune_enable_slow_query_logneptune_slow_query_log_threshold를 사용하여 슬로우 쿼리 로깅을 사용하고 제어할 수 있습니다.

  • 두 개의 동적 파라미터, 즉 새 클러스터 파라미터인 neptune_enable_slow_query_logneptune_slow_query_log_threshold에 대한 지원이 추가되었습니다. 동적 파라미터를 변경하면 인스턴스가 재부팅 없이 즉시 적용됩니다.

  • 맵에서 지정된 키를 제거하고 결과로 생성되는 새 맵을 반환하는 Neptune 전용 openCypher removeKeyFromMap() 함수가 추가되었습니다.

이 엔진 릴리스의 개선 사항

  • 로컬 범위가 있는 limit 단계에 대한 Gremlin DFE 지원으로 확대되었습니다.

  • DFE 엔진의 Gremlin DedupGlobalStep에 대한 by() 변조 지원이 추가되었습니다.

  • Gremlin SelectStepSelectOneStep에 대한 DFE 지원이 추가되었습니다.

  • repeat, coalesce, store, aggregate 등 다양한 Gremlin 연산자의 성능이 개선되고 정확성이 수정되었습니다.

  • MERGEOPTIONAL MATCH와 관련된 openCypher 쿼리의 성능이 개선되었습니다.

  • 리터럴 값의 맵 목록에 있는 UNWIND와 관련된 openCypher 쿼리의 성능이 개선되었습니다.

  • idIN 필터가 있는 openCypher 쿼리의 성능이 개선되었습니다. 예제:

    MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  • BASE 문을 사용하여 SPARQL 쿼리의 기본 IRI를 지정하는 기능이 추가되었습니다(쿼리 IRI 및 업데이트의 기본 기반 참조).

  • Gremlin 및 openCypher 엣지 전용 대량 로드의 로드 처리 대기 시간이 단축되었습니다.

  • 재개 시도가 실패하기 전에 Amazon S3 연결 문제로 인한 긴 대기 시간을 피하기 위해 Neptune이 다시 시작될 때 대량 로드가 비동기적으로 재개되도록 했습니다.

  • describeMode 쿼리 힌트가 "CBD"(간결하고 제한된 설명)로 설정되어 있고 많은 수의 빈 노드가 포함되는 SPARQL DESCRIBE 쿼리의 처리가 개선되었습니다.

이 엔진 릴리스에서 수정된 결함

  • Bolt 및 SPARQL-JSON에서 쿼리가 null 값 대신 "null" 문자열을 반환하는 openCypher 버그가 수정되었습니다.

  • 목록 요소에 제공된 값이 아닌 null 값을 생성하는 목록 이해 도구의 openCypher 버그가 수정되었습니다.

  • 바이트 값이 올바르게 직렬화되지 않는 openCypher 버그가 수정되었습니다.

  • 하위 순회 내에서 입력이 엣지 순회일 때 발생하는 UnionStep의 Gremlin 버그가 수정되었습니다.

  • UnionStep과 관련된 단계 레이블이 각 하위 순회의 마지막 단계로 제대로 전파되지 않던 Gremlin 버그가 수정되었습니다.

  • repeat 단계 뒤에 레이블이 있는 dedup 단계에서 dedup 단계에 연결된 레이블을 더 이상 쿼리에 사용할 수 없던 Gremlin 버그가 수정되었습니다.

  • 내부 오류로 인해 union 단계 내에서 repeat 단계를 변환하지 못하는 Gremlin 버그가 수정되었습니다.

  • TinkerPop으로 폴백하여 비통합 단계의 하위 순회로 limit를 사용하는 DFE 쿼리의 Gremlin 정확성 문제가 수정되었습니다. 영향을 받는 양식의 쿼리는 다음과 같습니다.

    g.withSideEffect('Neptune#useDFE', true).V().as("a").select("a").by(out().limit(1))
  • SPARQL GRAPH 패턴이 FROM NAMED 절에서 제공하는 데이터 세트 고려하지 않는 SPARQL 버그가 수정되었습니다.

  • 일부 FROM 또는 FROM NAMED 절을 포함하는 SPARQL DESCRIBE가 기본 그래프의 데이터를 항상 올바르게 사용하지 않고 예외를 발생시키는 SPARQL 버그가 수정되었습니다. SPARQLDESCRIBE디폴트 그래프와 관련된 동작를 참조하세요.

  • null 문자가 거부될 때 올바른 예외 메시지가 반환되도록 SPARQL 버그가 수정되었습니다.

  • PipelinedHashIndexJoin 연산자가 포함된 플랜에 영향을 주던 SPARQL 설명 버그가 수정되었습니다.

  • 상수 값을 반환하는 쿼리를 반환할 때 내부 오류가 발생할 수 있는 버그가 수정되었습니다.

  • 가끔 엔진이 응답하지 않던 교착 상태 탐지기 로직 관련 문제가 수정되었습니다.

이 릴리스에서 지원되는 쿼리 언어 버전

DB 클러스터를 버전 1.2.1.0으로 업그레이드하기 전에 프로젝트가 다음 쿼리 언어 버전과 호환되는지 확인합니다.

  • Gremlin 초기 버전 지원: 3.6.2

  • Gremlin 최신 버전 지원: 3.6.2

  • openCypher 버전: Neptune-9.0.20190305-1.1

  • SPARQL 버전: 1.1

엔진 릴리스 1.2.1.0에 대한 업그레이드 경로

버전 1.1.0.0 이상의 모든 이전 Neptune 엔진 릴리스를 이 릴리스 버전으로 수동 업그레이드할 수 있습니다.

참고

엔진 릴리스 1.2.0.0부터 1.2.0.0 이전 엔진 버전에서 사용하던 모든 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹은 이제 파라미터 그룹 패밀리 neptune1.2를 사용하여 다시 만들어야 합니다. 이전 릴리스에서는 파라미터 그룹 패밀리 neptune1이 사용되었으며, 이러한 파라미터 그룹은 1.2.0.0 이후 릴리즈에서는 작동하지 않습니다. 자세한 정보는 Amazon Neptune 파라미터 그룹 섹션을 참조하십시오.

이 메이저 버전 릴리스로 자동으로 업그레이드되지 않습니다.

이 릴리스로 업그레이드

이제 Amazon Neptune 1.2.1.0을 정식 버전으로 이용할 수 있습니다.

DB 클러스터가 이 릴리스에 대한 업그레이드 경로가 있는 엔진 버전을 실행하는 경우 지금 업그레이드할 수 있습니다. 콘솔에서 DB 클러스터 작업을 사용하여 또는 SDK를 사용하여 적격 클러스터를 업그레이드할 수 있습니다. 다음 CLI 명령은 적격 클러스터를 즉시 업그레이드합니다.

Linux, OS X, Unix의 경우:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.2.1.0 \ --apply-immediately

Windows의 경우

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.2.1.0 ^ --apply-immediately

업데이트는 DB 클러스터의 모든 인스턴스에 동시에 적용됩니다. 업데이트하려면 해당 인스턴스에서 데이터베이스를 다시 시작해야 하므로 가동 중지가 20~30초에서 수분까지 발생할 수 있으며, 이후 DB 클러스터 사용을 재개할 수 있습니다.

업그레이드하기 전에 항상 테스트 수행

새로운 메이저 또는 마이너 Neptune 엔진 버전이 릴리스되면 업그레이드하기 전에 먼저 해당 버전에서 항상 Neptune 애플리케이션을 테스트하세요. 마이너 업그레이드이더라도 코드에 영향을 줄 수 있는 새로운 기능이나 동작이 도입될 수 있습니다.

먼저 현재 버전의 릴리스 노트 페이지를 대상 버전의 릴리스 노트 페이지와 비교하여 쿼리 언어 버전에 변경 사항이나 기타 주요 변경 사항이 있는지 확인합니다.

프로덕션 DB 클러스터를 업그레이드하기 전에 새 버전을 테스트하는 가장 좋은 방법은 프로덕션 클러스터를 복제하여 새 엔진 버전을 실행하도록 하는 것입니다. 이렇게 하면 프로덕션 DB 클러스터에 영향을 주지 않고 복제본에서 쿼리를 실행할 수 있습니다.

업그레이드하기 전에 항상 수동 스냅샷 생성

업그레이드하기 전에 항상 DB 클러스터의 수동 스냅샷을 생성하는 것이 좋습니다. 자동 스냅샷은 단기적인 보호 기능만 제공하는 반면, 수동 스냅샷은 명시적으로 삭제하기 전까지는 계속 사용할 수 있습니다.

경우에 따라 Neptune은 업그레이드 프로세스의 일부로 수동 스냅샷을 생성하지만, 여기에 의존해서는 안 되며 항상 자체 수동 스냅샷을 만들어야 합니다.

DB 클러스터를 업그레이드 전 상태로 되돌릴 필요가 없다고 판단되면 직접 만든 수동 스냅샷과 Neptune이 생성한 수동 스냅샷(있는 경우)을 명시적으로 삭제할 수 있습니다. Neptune이 수동 스냅샷을 생성하는 경우 이름은 preupgrade로 시작하고 DB 클러스터 이름, 소스 엔진 버전, 대상 엔진 버전, 날짜가 차례로 뒤따릅니다.

참고

보류 중인 작업이 진행 중인 동안 업그레이드를 시도하면 다음과 같은 오류가 발생할 수 있습니다.

We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.

이 오류가 발생하면 보류 중인 작업이 완료될 때까지 기다리거나, 유지 관리 기간을 즉시 실행하여 이전의 업그레이드를 완료합니다.

엔진 버전 업그레이드에 대한 자세한 내용은 Amazon Neptune DB 클러스터 유지 관리 단원을 참조하십시오. 질문이나 우려 사항이 있는 경우 커뮤니티 포럼 및 AWS Premium Support를 통해 AWS Support 팀에 도움을 요청할 수 있습니다.