Neptune 쿼리 엔진과 함께 그렘린 사용 DFE - Amazon Neptune

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

Neptune 쿼리 엔진과 함께 그렘린 사용 DFE

DB 클러스터 파라미터를 DFEQueryEngine=enabled 로 DFE neptune_lab_mode 설정하여 인랩 모드라고 하는 Neptune 대체 쿼리 엔진을 완전히 활성화하면 Neptune은 읽기 전용 Gremlin 쿼리/탐색을 중간 논리적 표현으로 변환하여 가능하면 엔진에서 실행합니다. DFE

하지만 아직 모든 Gremlin 단계를 DFE 지원하지는 않습니다. 에서 기본적으로 단계를 실행할 수 없는 경우 Neptune은 DFE 해당 단계를 대신 실행합니다 TinkerPop . explainprofile 보고서에는 이러한 상황이 발생할 경우 경고를 표시합니다.

참고

엔진 릴리스 1.0.5.0부터 기본 지원 없이 Gremlin 단계를 처리하는 기본 DFE 동작이 변경되었습니다. 이전에는 Neptune Gremlin DFE 엔진에서 엔진이 후퇴했지만 이제는 바닐라 엔진으로 대체됩니다. TinkerPop

엔진에서 기본적으로 지원되는 그렘린 스텝 DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • 텍스트 및 Without 조건자가 없는 경우를 제외하고 속성, ids 및 레이블의 버텍스와 엣지에 대한 HasStep 필터링 지원.

  • Path 범위 필터와 함께 WherePredicateStep(ByModulation, SideEffect 또는 Map 조회는 지원하지 않음).

  • ByModulation, SideEffect, Map 조회 지원을 제외한 DedupGlobalStep.

쿼리 계획 인터리빙

번역 프로세스에서 해당하는 네이티브 DFE 연산자가 없는 Gremlin 단계를 발견하면 Tinkerpop을 사용하기 전에 엔진에서 기본적으로 실행할 수 있는 다른 중간 쿼리 부분을 찾으려고 합니다. DFE 이는 최상위 순회에 인터리빙 로직을 적용하여 수행합니다. 결과적으로 지원되는 단계는 가능한 모든 곳에서 사용됩니다.

이러한 모든 중간 비접두사 쿼리 변환은 explainprofile 출력에서 NeptuneInterleavingStep을 사용하여 표현됩니다.

성능 비교를 위해 엔진을 사용하여 접두사 부분을 실행하면서 쿼리의 인터리빙을 끄는 것이 좋습니다. DFE 또는 접두사가 아닌 쿼리 실행에만 TinkerPop 엔진만 사용할 수도 있습니다. 이를 위해 disableInterleaving 쿼리 힌트를 사용할 수 있습니다.

값이 1인 사용 DFE 쿼리 힌트는 에서 쿼리가 DFE 전혀 실행되지 false 않도록 하는 것처럼 값이 값인 disableInterleaving 쿼리 힌트는 쿼리 번역에 대한 DFE 인터리빙을 true 끕니다. 예:

g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')

Gremlin explainprofile 출력 업데이트

Gremlin Explain은 Neptune이 쿼리를 실행하는 데 사용하는 최적화된 순회에 대한 세부 정보를 제공합니다. DFE엔진이 활성화되었을 때 출력이 어떻게 보이는지에 대한 예는 샘플 DFE explainexplain 출력을 참조하십시오.

그렘린 profile API는 지정된 Gremlin 순회를 실행하고, 실행에 대한 다양한 지표를 수집하며, 자세한 최적화된 쿼리 계획 및 다양한 연산자의 런타임 통계 정보가 포함된 프로필 보고서를 생성합니다. DFE엔진이 활성화되었을 때 profile 출력이 어떻게 보이는지에 대한 예는 샘플 DFE profile 출력을 참조하십시오.

참고

DFE엔진은 랩 모드에서 출시된 실험용 기능이므로 explainprofile 출력의 정확한 형식은 변경될 수 있습니다.