뉴렐릭에 저장된 대부분의 데이터는 Transaction 및 TransactionError, PageView 및 PageAction, Log 및 인프라 이벤트 등과 같은 다른 데이터와 관련이 있습니다. 하위 쿼리 조인을 사용하여 이러한 이벤트 간의 상관 관계를 분석하고 계산할 수 있습니다.
하위 쿼리 조인을 작성하는 방법
하위 쿼리 는 다른 쿼리 안에 중첩된 쿼리입니다. 하위 쿼리 조인을 사용하면 하위 쿼리의 결과를 키를 기반으로 하는 외부 쿼리의 결과와 결합하여 데이터 집합 전체에서 분석 및 보강이 가능합니다.
하위 쿼리 조인에는 세 가지 구성 요소, 즉 두 개의 데이터 세트와 이 둘을 함께 연결하는 기본 키가 필요합니다.
FROM Event [INNER|LEFT] JOIN (subquery) ON [key =] key SELECT ...하위 쿼리 조인에는 구문에 대한 간단한 규칙이 포함되어 있습니다.
JOIN절은 항상FROM절 바로 뒤에 와야 합니다.- 조인 유형을
JOIN앞에 붙일 수 있습니다.INNER또는LEFT는 선택사항이며 생략되면 기본값은INNER입니다. - 하위 쿼리가 포함된 괄호는
JOIN절 바로 뒤에 와야 합니다. ON절은 하위 쿼리 바로 뒤에 있어야 하며 두 가지 형식을 갖습니다(자세한 내용은 아래 참조).
하나의 쿼리에 여러 개의 JOIN 절이 있을 수도 있습니다. 예를 들어 이 쿼리는 하위 쿼리 내에서 두 개의 JOIN을 사용합니다.
FROM JavaScriptError JOIN ( FROM PageAction JOIN ( FROM PageView SELECT count(*) FACET session AS pageViewSession, city LIMIT MAX ) ON session = pageViewSession SELECT count(*) FACET city, currentUrl, session AS pageActionSession ) ON session = pageActionSessionSELECT count(*) FACET city, currentUrl, session, errorClass아래 이미지에는 2개의 데이터 세트, 즉 디스플레이 컨테이너(ProcessSample)의 평균 CPU 비율과 컨트롤러별 앱의 평균 기간이 포함되어 있습니다.

종종 다양한 소스의 데이터가 상호 연관되어 있습니다. 이 경우 다음 하위 쿼리 조인을 사용하여 컨테이너의 높은 CPU 사용량으로 인해 트랜잭션 속도가 느려지는지 확인할 수 있습니다.
FROM Transaction JOIN (FROM ProcessSample SELECT average(cpuPercent) AS cpu FACET containerId LIMIT MAX) ON containerIdSELECT average(duration)/latest(cpu) FACET containerId, containerName
이 쿼리를 사용하면 CPU 사용량에 따라 평균 트랜잭션 기간이 더 긴 컨테이너를 볼 수 있고 이상값을 조사하여 수정해야 할 버그나 최적화가 있는지 확인할 수 있습니다.
하위 쿼리 조인 제한
하위 쿼리 조인에는 다음과 같은 제한 사항이 있습니다.
- 조인된 하위 쿼리는 계속해서 기본
LIMIT10을 가지며 최대LIMIT는 5,000입니다. 외부 쿼리의LIMIT는 내부 쿼리에 영향을 주지 않습니다. - 조인된 하위 쿼리에서
TIMESERIES사용은 지원되지 않습니다. 외부 쿼리가TIMESERIES사용하는 경우 조인된 하위 쿼리는 전체 쿼리 시간 범위에 대해 단일 결과를 제공한다는 점에 유의하세요. - 조인된 하위 쿼리에서
COMPARE WITH사용은 지원되지 않습니다. 외부 쿼리가COMPARE WITH를 사용하는 경우 조인된 하위 쿼리는 쿼리 기본 시간 범위를 기반으로 단일 결과를 제공하고 시간 범위와 비교하여 외부 쿼리에 대해 별도의 값을 제공하지 않는다는 점에 유의하십시오. - 모든 하위 쿼리와 마찬가지로 조인된 하위 쿼리는 경고 조건에서 사용할 수 없습니다.
SELECT *는 상위 쿼리에서 지원되지만 조인된 하위 쿼리에서는 지원되지 않습니다.- 조인의 카디널리티는 1:100으로 제한되며, 이는 단일 조인 키가 하위 쿼리 결과에서 100개 이상의 행에 매핑될 수 없음을 의미합니다.
ON절은 동등 조건만 지원합니다.JOIN키는 지표 값과 같은 복잡한 속성일 수 없습니다.JOIN조건에서는 속성 유형을 강제로 적용하지 않습니다.JOIN의ON조건의 왼쪽은ON조건의 오른쪽과 동일한 유형이어야 합니다.- 지표 와일드카드는
JOIN의ON조건에서 지원되지 않습니다. - 하위 쿼리는 메트릭 행별 쿼리일 수 없습니다.
JOIN의ON조건의 오른쪽은 쿼리에 의해 투영된 식별자여야 합니다. 함수나 수학 연산을 사용할 수 없습니다.- 조인된 하위 쿼리는
uniques()결과를 예상할 수 없습니다.
하위 쿼리 조인 예
다음은 몇 가지 하위 쿼리 조인의 예입니다.



