기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Neptune 엔진 버전 1.4.0.0(2024-11-06)
2024-11-06부터 엔진 버전 1.4.0.0이 일반적으로 배포되고 있습니다. 모든 리전에서 새 릴리스를 사용할 수 있게 되려면 며칠이 걸립니다.
참고
엔진 릴리스 1.3.0.0에서는 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹을 위한 새로운 형식을 도입했습니다. 따라서 1.3.0.0 이전 엔진 버전에서 엔진 버전 1.3.0.0 이상으로 업그레이드하는 경우 파라미터 그룹 패밀리 neptune1.3
를 사용하여 기존의 모든 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹을 다시 생성해야 합니다. 이전 릴리스에서는 파라미터 그룹 패밀리 neptune1
또는 neptune1.2
을 사용했으며, 이러한 파라미터 그룹은 릴리스 1.3.0.0 이상에서는 작동하지 않습니다. 자세한 내용은 Amazon Neptune 파라미터 그룹 섹션을 참조하세요.
주의
쿼리에서 숫자 유형 파라미터의 중복 사용을 처리하는 버그로 인해 숫자 파라미터 값과 관련된 파라미터화된 쿼리를 실행하는 사용 사례에 대해 쿼리 계획 캐시가 일시적으로 지원되지 않습니다. 예제:
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% 회귀가 표시될 수 있습니다.
이 엔진 릴리스의 새로운 기능
-
명시적 ID가 없는 속성 그래프에 엣지가 추가되면 기본적으로 서버는 딕셔너리에 저장된 UUID 기반 엣지 ID를 할당합니다. 이제
neptune_enable_server_generated_edge_id = 1
서버는 새 클러스터 파라미터를 설정하여 사전 오버헤드 없이 내부 관리형 8바이트 정수를 사용하여 IDs를 할당합니다. 따라서 쿼리를 변경하지 않고도 스토리지를 절약하고 쿼리 성능을 높일 수 있습니다. 이 기능은 현재 Gremlin 쿼리 언어를 통한 삽입에만 지원됩니다. -
DFE 엔진에 대한 중첩 순회에서 Gremlin limit() 단계 실행에 대한 지원이 추가되었습니다.
g.V().project("foo").by(out().order().by(T.id).limit(1))
이 엔진 릴리스의 개선 사항
일반 개선 사항
-
Neptune은 트랜잭션이 완료되고 로그가 더 이상 복구에 필요하지 않은 경우 대용량 트랜잭션에 보관된 실행 취소 스토리지를 자동으로 회수합니다.
-
글로벌 데이터베이스 존속 가능 복제본 지원. 이 기능을 사용하면 기본 클러스터에서 라이터 인스턴스를 다시 시작하는 동안 보조 클러스터가 여전히 읽기 요청을 처리할 수 있습니다. 이전에는 라이터 인스턴스가 다시 시작되었을 때 보조 클러스터의 모든 리더 인스턴스도 다시 시작되었습니다. 이 릴리스에서는 보조 클러스터 리더 인스턴스가 라이터 인스턴스를 다시 시작하는 동안 읽기 요청을 계속 처리하여 클러스터의 읽기 가용성을 개선합니다.
-
이제 감사 로그가 동기식으로 작성되므로 모든 쿼리가 로깅됩니다. 이는 특히 큰 쿼리(>100kb) 또는 높은 처리량 워크로드(>1000qps)의 성능에 영향을 미칠 수 있습니다.
Gremlin 개선 사항
-
쿼리당 제한 시간은 기본적으로 클러스터 수준 제한 시간보다 작게 적용됩니다. 이전 릴리스에서는이 검사가 도입되었지만 랩 모드 파라미터 'StrictTimeoutValidation'를 통해 명시적으로 활성화해야 했습니다. 이 릴리스에서는 'StrictTimeoutValidation'가 기본적으로 활성화되며 이전 동작을 유지하려면 명시적으로 비활성화해야 합니다.
openCypher 개선
-
이전 릴리스에서는 랩 모드 파라미터를 통해 활성화된 확장된 날짜/시간 형식 지원을 도입했습니다
DatetimeMillisecond
. 이제이 확장된 날짜/시간 형식 지원이 기본적으로 활성화됩니다.
SPARQL 개선
-
쿼리 권한에 대한 새로운 명시적 IAM 작업입니다.
Previously: COPY: WriteDataViaQuery & ReadDataViaQuery MOVE: WriteDataViaQuery & DeleteDataViaQuery DELETEINSERT: ReadDataViaQuery & DeleteDataViaQuery Now, COPY: WriteDataViaQuery & ReadDataViaQuery & DeleteDataViaQuery MOVE: WriteDataViaQuery & ReadDataViaQuery & DeleteDataViaQuery DELETEINSERT: ReadDataViaQuery, WriteDataViaQuery if there is INSERT clause, DeleteDataViaQuery if there is DELETE clause.
이 엔진 릴리스에서 결함 수정
일반 수정 사항
-
확장하는 동안 데이터베이스가 다시 시작될 수 있는 Serverless 인스턴스 관련 문제를 해결했습니다.
-
감사 로그 파일 관리와 관련하여 다운로드 또는 교체를 위해 로그 파일에 액세스할 수 없게 되고 경우에 따라 CPU 사용량이 증가할 수 있는 문제를 해결했습니다.
-
DFE 엔진에서 맵 출력 생성 지연 최적화와 관련된 쿼리 문제를 수정했습니다.
-
감사 로그와 느린 쿼리 로그 간에 타임스탬프가 일치하지 않는 문제를 수정했습니다.
Gremlin 수정 사항
-
Gremlin WebSocket 연결 관리에서 연결 유휴 제한 시간을 초과하여 실행 중인 쿼리가 조기에 종료되는 문제를 해결했습니다. 이는 특히 AIOHTTP 전송을 사용하는 Python Gremlin 클라이언트에 영향을 미쳤습니다.
openCypher 수정
-
collect(distinct(n)) 쿼리 구성 중에 null 값이 존재할 때 내부 실패 예외가 발생하는 수집 단계의 문제를 수정했습니다.
-
쿼리 계획 캐시가 활성화된 경우 쿼리에서가 발생할
NullPointerException
수 있는 문제를 수정했습니다. -
쿼리에 LIMIT 절이 포함된 경우 필요한 것보다 많은 데이터를 평가한 문제를 수정했습니다.
-
쿼리 계획 캐시가 있는 파라미터화된 쿼리에서 범위 작업(<, <=, >, >=)을 사용하면 중복 결과가 발생하는 문제를 수정했습니다.
-
볼트 연결을 사용하여 UNION 및 UNION ALL 작업을 수행할 때 결과 열을 트랜스포지션하는 문제를 수정했습니다.
이 릴리스에서 지원되는 쿼리 언어 버전
DB 클러스터를 버전 1.4.0.0으로 업그레이드하기 전에 프로젝트가 다음 쿼리 언어 버전과 호환되는지 확인합니다.
Gremlin 초기 버전 지원:
3.7.1
Gremlin 최신 버전 지원:
3.7.1
openCypher 버전:
Neptune-9.0.20190305-1.0
SPARQL 버전:
1.1
엔진 릴리스 1.4.0.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.0.0 \ --allow-major-version-upgrade \ --apply-immediately
Windows의 경우:
aws neptune modify-db-cluster ^ --db-cluster-identifier
(your-neptune-cluster)
^ --engine-version 1.4.0.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 프리미엄