아마존 넵튠 엔진 버전 1.3.2.1 (2024-06-20) - Amazon Neptune

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

아마존 넵튠 엔진 버전 1.3.2.1 (2024-06-20)

2024-06-20년부터 엔진 버전 1.3.2.1이 일반적으로 배포되고 있습니다. 모든 리전에서 새 릴리스를 사용할 수 있게 되려면 며칠이 걸립니다.

참고

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

이번 엔진 릴리스에서 결함이 수정되었습니다.

openCypher 수정
  • SKIPLIMITWITH 매개변수로 포함하는 내부 절이 포함된 매개 변수화된 쿼리의 쿼리 계획 캐시 기능에서 버그가 감지되었습니다. SKIP/LIMIT값이 제대로 매개 변수화되지 않았기 때문에 이후에 동일한 캐시된 쿼리 계획을 다른 매개 변수 값으로 실행해도 첫 번째 실행과 동일한 결과가 반환되었습니다. 이 문제가 수정되었습니다.

    # insert some nodes UNWIND range(1, 10) as i CREATE (s {name: i}) RETURN s # sample query MATCH (p) WITH p ORDER BY p.name SKIP $s LIMIT $l RETURN p.name as res # first time executing with {"s": 2, "l": 1} { "results" : [ { "res" : 3 } ] } # second time executing with {"s": 2, "l": 10} # due to bug, produces { "results" : [ { "res" : 3 } ] } # with fix, produces correct results: { "results" : [ { "res" : 3 }, { "res" : 4 }, { "res" : 5 }, { "res" : 6 }, { "res" : 7 }, { "res" : 8 }, { "res" : 9 }, { "res" : 10 } ] }%
  • 전달된 파라미터가 데이터베이스에 아직 InternalFailureException 없을 때 파라미터화된 뮤테이션 쿼리가 호출되는 버그를 수정했습니다.

  • 쿼리 리소스 정리 중에 매개 변수화된 Bolt 쿼리가 경쟁 조건에 도달한 후 중단되는 버그를 수정했습니다.

1.3.2.1의 변경 사항이 1.3.2.0에서 그대로 적용되었습니다.

엔진 릴리스 1.3.2.0에서 이월된 개선 사항

일반적인 개선 사항
  • 암호 제품군 TLS _ AES _128_ _ 및 _ _256_ GCM _를 포함한 TLS 버전 1.3을 지원합니다. SHA256 TLS AES GCM SHA384 TLS1.3은 옵션입니다. 1.2는 여전히 최소 버전입니다. TLS

  • openCypher 이 버전의 lab_mode에서는 날짜시간 형식에 대한 확장 지원이 제공됩니다. 테스트해 보는 것이 좋습니다.

그렘린 개선 사항
  • TinkerPop 3.7.x 업그레이드

  • StrictTimeoutValidation(labmode를 통해 StrictTimeoutValidation 포함시켜 활성화한 경우에만StrictTimeoutValidation=enabled): StrictTimeoutValidation 매개 변수 값이 인 경우enabled, 요청 옵션 또는 쿼리 힌트로 지정된 쿼리당 제한 시간 값이 매개 변수 그룹에 전체적으로 설정된 값을 초과할 수 없습니다. 이 경우 Neptune은 하나를 던질 것입니다. InvalidParameterException 이 설정은 값이 일 때 /status 엔드포인트의 응답에서 확인할 수 있으며 Neptune 버전 1.3.2.0 및 1.3.2.1에서는 이 매개변수의 기본값이 다음과 disabled 같습니다. Disabled

openCypher 개선 사항
  • Amazon Neptune 엔진 버전 1.3.2.0은 이전 엔진 릴리스보다 최대 9배 더 빠르고 10배 더 높은 쿼리 처리량을 openCypher 제공합니다.

  • 지연 시간이 짧은 쿼리 및 처리량 성능 개선: 지연 시간이 짧은 쿼리의 전반적인 성능이 개선되었습니다. openCypher 또한 새 버전은 이러한 쿼리의 처리량을 개선합니다. 매개변수화된 쿼리를 사용할 경우 개선이 더욱 두드러집니다.

  • 쿼리 계획 캐시 지원: 쿼리가 Neptune에 제출되면 쿼리 문자열이 구문 분석되고 최적화되고 쿼리 계획으로 변환된 다음 엔진에서 실행됩니다. 애플리케이션은 서로 다른 값으로 인스턴스화되는 일반적인 쿼리 패턴을 기반으로 하는 경우가 많습니다. 쿼리 계획 캐시는 쿼리 계획을 캐시하여 이러한 반복 패턴에 대한 구문 분석 및 최적화를 피함으로써 전체 대기 시간을 줄일 수 있습니다. 자세한 내용은 Amazon Neptune의 쿼리 플랜 캐시 섹션을 참조하세요.

  • DISTINCT집계 쿼리의 성능 개선.

  • null을 허용하는 변수를 포함하는 조인의 성능이 향상되었습니다.

  • not equals와 id (노드/관계) 조건자를 포함하는 쿼리의 성능이 향상되었습니다.

  • datetime 기능에 대한 지원 확대 (다음을 포함하여 랩 모드를 통해서만 사용 가능) DatetimeMillisecond DatetimeMillisecond=enabled 자세한 내용은 Neptune 구현의 임시 지원 ( openCypher Neptune Analytics 및 Neptune 데이터베이스 1.3.2.0 이상) 단원을 참조하십시오.

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

일반적인 개선 사항
  • Graphlytics 버킷에 대한 액세스를 검증할 때 나타나는 NeptunEML 오류 메시지를 업데이트했습니다.

Gremlin 수정 사항
  • 비경로 기여 단계에 레이블이 포함된 시나리오에서 DFE 쿼리 변환에서 누락된 레이블 정보를 수정했습니다. 예:

    g.withSideEffect('Neptune#useDFE', true). V(). has('name', 'marko'). has("name", TextP.regex("mark.*")).as("p1"). not(out().has("name", P.within("peter"))). out().as('p2'). dedup('p1', 'p2')
  • 쿼리가 두 개의 DFE 프래그먼트에서 실행되고 첫 번째 프래그먼트가 만족스럽지 않은 노드로 최적화될 때 발생하는 DFE 쿼리 변환 NullPointerException 버그를 수정했습니다. 예:

    g.withSideEffect('Neptune#useDFE', true). V(). has('name', 'doesNotExists'). has("name", TextP.regex("mark.*")). inject(1). V(). out(). has('name', 'vadas')
  • 쿼리에 by () 모듈레이터가 내부에 ValueTraversal 포함되어 있고 입력이 InternalFailureException Map인 경우 Neptune이 이벤트를 발생시키는 버그를 수정했습니다. 예:

    g.V(). hasLabel("person"). project("age", "name").by("age").by("name"). order().by("age")
openCypher 수정
  • 메모리 부족 () 상황을 방지하는 데 도움이 되도록 UNWIND 작업 (예: 값 목록을 개별 값으로 확장OOM) 을 개선했습니다. 예:

    MATCH (n)-->(m) WITH collect(m) AS list UNWIND list AS m RETURN m, list
  • 를 통해 UNWIND id가 주입되는 여러 MERGE 작업의 경우 사용자 지정 ID 최적화를 수정했습니다. 예:

    UNWIND [{nid: 'nid1', mid: 'mid1'}, {nid: 'nid2', mid: 'mid2'}] as ids MERGE (n:N {`~id`: ids.nid}) MERGE (m:M {`~id`: ids.mid})
  • 속성 액세스가 포함된 복잡한 쿼리와 양방향 관계가 있는 다중 홉을 계획할 때 발생하는 메모리 폭발 문제를 수정했습니다. 예:

    MATCH (person1:person)-[:likes]->(res)-[:partOf]->(group)-[:knows]-(:entity {name: 'foo'}), (person1)-[:knows]->(person2)-[:likes]-(res2), (comment)-[:presentIn]->(:Group {name: 'barGroup'}), (person1)-[:commented]->(comment2:comment)-[:partOf]->(post:Post), (comment2)-[:presentIn]->(:Group {name: 'fooGroup'}), (comment)-[:contains]->(info:Details)-[:CommentType]->(:CommentType {name: 'Positive'}), (comment2)-[:contains]->(info2:Details)-[:CommentType]->(:CommentType {name: 'Positive'}) WHERE datetime('2020-01-01T00:00') <= person1.addedAfter <= datetime('2023-01-01T23:59') AND comment.approvedBy = comment2.approvedBy MATCH (comment)-[:contains]->(info3:Details)-[:CommentType]->(:CommentType {name: 'Neutral'}) RETURN person1, group.name, info1.value, post.ranking, info3.value
  • 변수별 그룹화가 null인 집계 쿼리를 수정했습니다. 예:

    MATCH (n) RETURN null AS group, sum(n.num) AS result
SPARQL수정
  • 많은 트리플과 큰 토큰을 INSERT DATA 포함하는 것과 같은 대형 쿼리의 파싱 시간을 개선하도록 SPARQL 파서를 수정했습니다.

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

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

  • Gremlin 초기 버전 지원: 3.7.1

  • Gremlin 최신 버전 지원: 3.7.1

  • openCypher 버전: Neptune-9.0.20190305-1.0

  • SPARQL버전: 1.1

엔진 릴리스 1.3.2.1으로의 업그레이드 경로

엔진 릴리스 1.2.0.0 이상에서 이 릴리스로 업그레이드할 수 있습니다.

이 릴리스로 업그레이드

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

Linux, OS X, Unix의 경우:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.3.2.1 \ --allow-major-version-upgrade \ --apply-immediately

Windows의 경우:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.3.2.1 ^ --allow-major-version-upgrade ^ --apply-immediately

--apply-immediately 대신 --no-apply-immediately를 지정할 수 있습니다. 메이저 버전 업그레이드를 수행하려면 allow-major-version-upgrade 파라미터가 필요합니다. 또한 엔진 버전을 반드시 포함해야 합니다. 그렇지 않으면 엔진이 다른 버전으로 업그레이드될 수 있습니다.

클러스터에서 사용자 지정 클러스터 파라미터 그룹을 사용하는 경우 다음 파라미터를 포함하여 지정해야 합니다.

--db-cluster-parameter-group-name (name of the custom DB cluster parameter group)

마찬가지로 클러스터의 인스턴스가 사용자 지정 DB 파라미터 그룹을 사용하는 경우 이 파라미터를 포함하여 지정해야 합니다.

--db-instance-parameter-group-name (name of the custom instance parameter group)

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

새로운 메이저 또는 마이너 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 지원 팀에 문의할 수 있습니다.