기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Neptune 엔진 버전 1.4.1.0(2024-11-21)
2024-11-21부터 엔진 버전 1.4.1.0이 정식으로 배포되고 있습니다. 모든 리전에서 새 릴리스를 사용할 수 있게 되려면 며칠이 걸립니다.
주의
쿼리에서 숫자 유형 파라미터의 중복 사용을 처리하는 버그로 인해 숫자 파라미터 값과 관련된 파라미터화된 쿼리를 실행하는 사용 사례에 대해 쿼리 계획 캐시가 일시적으로 지원되지 않습니다. 예시:
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n UNION MATCH (n:show) WHERE n.duration>=$minutes RETURN n parameters={"minutes":130}
문 또는 사전 인덱스에 대한 인덱스 검색을 많이 수행하는 쿼리는 5%의 성능 회귀를 볼 수 있습니다. 예를 들어, 모든 버텍스 수를 가져오거나 모든 버텍스id
의를 가져오는 것은 영향을 받지 않습니다. 모든 버텍스의 모든 속성을 가져오면 최대 5% 회귀가 표시될 수 있습니다.
이 엔진 릴리스의 새로운 기능
-
정의된 범위 내에서 작업을 실행할 수 있도록 읽기 전용
CALL
하위 쿼리가 있는 하위 쿼리에 대한 지원이 추가되었습니다.CALL
하위 쿼리는 수신되는 각 행에 대해 한 번 실행되며 하위 쿼리에 반환된 변수는 엔클로징 쿼리의 외부 범위에 사용할 수 있습니다. 외부 범위의 변수는 가져오기WITH
절을 사용하여CALL
하위 쿼리로 가져올 수 있습니다. 자세한 내용은 Neptune의 CALL 하위 쿼리 지원을 참조하세요.MATCH (origin:airport {code:"AUS"})-[:route]->(stopover) CALL { WITH stopover MATCH (stopover)-[r:route]->(destination) RETURN destination ORDER BY r.dist DESC LIMIT 2 } RETURN stopover, destination
-
openCypher 함수가 추가되었습니다. 문자열, 컬렉션 작업 및 컬렉션 정렬에 도움이 되는 8가지 새로운 함수를 소개합니다. 여기에는
textIndexOf
,collToSet
,collSubtract
, ,collIntersection
,collSort
collSortMaps
, 및collSortMulti
가 포함됩니다collSortNodes
. 설명, 입력 파라미터, 출력 및 예제는 Neptune openCypher 함수를 참조하세요.
이 엔진 릴리스의 개선 사항
Gremlin 개선 사항
-
새 랩 모드 파라미터
AccurateQRCMemoryEstimation
. Gremlin 쿼리 결과 캐시를 활성화하면 데이터베이스에서 쿼리 결과를 캐싱할 수 있습니다. 기본적으로 대략적인 추정치는 캐시된 결과의 크기를 결정하는 데 사용됩니다. 이 랩 모드 파라미터가AccurateQRCMemoryEstimation
활성화되면 캐시된 결과의 크기 추정은 근사치 대신 정확한 크기 추정을 사용합니다. -
기본 실행 엔진에서 실행되는 Gremlin 쿼리에서 "not" 필터 최적화 관련 문제를 수정했습니다. 이 문제는 outV()/inV()/otherV() 단계 중 하나와 결합된 not() 단계를 사용하여 엣지를 필터링할 때 쿼리에 영향을 미쳤습니다. 샘플 쿼리에는 다음이 포함됩니다.
-
g.E().hasLabel("knows").not(outV().hasId("5"))
-
g.V().has('airport','code','ROC').outE().where(not(otherV().has(id, within('1','5','7')))).count()
-
openCypher 개선 사항
-
대규모 정적 목록 또는 맵을 사용하는 쿼리의 성능이 개선되었습니다. 속성이 있는 노드를 삽입/업서트하는 데 사용되는 많은 중첩 맵 목록에 대해 UNWIND가 있는 특정 쿼리는 성능이 크게 향상됩니다.
-
쿼리에 사용되는 값에 대해 일관된 데이터 유형을 가정하도록 엔진에 지시하는 새로운 openCypher 쿼리 힌트를 소개합니다. 새 openCypher 쿼리 힌트에 대한 자세한 내용은 AssumeConsistentDataTypes를 참조하세요.
-
텍스트 및 컬렉션 값을 처리하기 위한 새로운 openCypher 함수 세트를 소개합니다.
이 엔진 릴리스에서 해결된 결함
Gremlin 수정 사항
-
"g" 객체에서
withStrategies()/withoutStrategies()/with()
단계가 사용될 때 순회 쿼리의 바이트코드 표현을 빌드하기 위한 TinkerPopGraphTraversalSource
OSS 코드 경로의 문제를 수정했습니다. 이 문제로 인해 동일한 전략에 대한 기존 지침을 대체하는 대신 Bytecode에 새 지침이 잘못 추가되었으며 결과 캐시 무효화 중에 캐시 키 불일치가 발생하여 저장된 결과가 지워졌습니다.
openCypher 수정 사항
-
CREATE/MERGE/MATCH 절
`~id`match
의에 대한 동작을 수정했습니다. null 또는 비문자열 유형과 같은 잘못된`~id`
값을 사용하는 경우 이제 CREATE/MERGE 절의 경우 올바른 예외가 발생하고MATCH
절의 경우 0 결과가 반환됩니다. -
사용자가 집계 함수(예: sum(<string>))와 함께 지원되지 않는 유형의 값을 사용할 때 IFE가 수정되었습니다.
-
많은 쿼리 워크로드의 지연 시간이 짧은 일부 변형 쿼리가 OutOfMemory 오류로 인해 실패하는 문제를 수정했습니다.
SPARQL 수정 사항
-
'%'
문자가 포함된 SPARQL 쿼리를 처리할 때 발생하는 감사 로그 문제를 수정했습니다.
이 릴리스에서 지원되는 쿼리 언어 버전
DB 클러스터를 버전 1.4.1.0으로 업그레이드하기 전에 프로젝트가 다음 쿼리 언어 버전과 호환되는지 확인합니다.
Gremlin 초기 버전 지원:
3.7.1
Gremlin 최신 버전 지원:
3.7.1
openCypher 버전:
Neptune-9.0.20190305-1.0
SPARQL 버전:
1.1
엔진 릴리스 1.4.1.0으로의 업그레이드 경로
엔진 릴리스 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.4.1.0 \ --allow-major-version-upgrade \ --apply-immediately
Windows의 경우:
aws neptune modify-db-cluster ^ --db-cluster-identifier
(your-neptune-cluster)
^ --engine-version 1.4.1.0 ^ --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