요약 및 조인 연산자에 대한 Log Analytics 쿼리 언어 권장 사항
게시된 날짜: 5월 29, 2018
이 업데이트는 요약 및 조인 연산자에 대한 Azure Log Analytics 및 Application Insights 쿼리 언어 구문 권장 사항을 설명합니다. 기존 구문이 여전히 지원되기는 하지만, 결과 모호성을 방지하려면 저장된 검색 및 경고에서 해당하는 경우 쿼리 구문을 수정하는 것이 좋습니다.
이러한 권장 사항에 대한 질문이 있는 경우 문의해 주세요.
요약 연산자의 시간당 자동 범주화
현재 날짜/시간 키로 집계된 데이터는 자동으로 시간당 계급구간으로 그룹화됩니다. 이 예제에서는 요약 연산자에 사용된 TimeGenerated 열이 자동으로 시간당 계급구간으로 반올림되었습니다.
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID == 4625
| summarize count() by TimeGenerated
쿼리 결과는 다음과 같습니다.
TimeGenerated [UTC] |
count_ |
2018-02-04T09:00:00.000 2018-02-04T10:00:00.000 2018-02-04T11:00:00.000 2018-02-04T12:00:00.000 2018-02-04T13:00:00.000 2018-02-04T14:00:00.000 2018-02-04T15:00:00.000 2018-02-04T16:00:00.000 2018-02-04T17:00:00.000 2018-02-04T18:00:00.000 |
1,205 1,268 1,234 1,173 1,007 1,042 1,041 1,049 1,090 1,113 |
권장 작업:
- 저장된 검색이나 경고에서 자동 범주화 기능을 사용하지 않는 경우(예: summarize by TimeGenerated):
- 아무런 작업도 필요하지 않습니다.
- 자동 범주화 기능을 모르는 경우 쿼리가 의도하지 않은 시간당 집계가 포함된 결과를 반환할 수 있습니다.
- 날짜/시간 키를 이용한 데이터 집계를 사용하고 있는지 확인합니다(예: summarize by TimeGenerated). 그렇다면, 명시적 범주화를 사용하도록 쿼리를 수정합니다(예: summarize by bin(TimeGenerated, 1h)).
- 자동 범주화 기능을 알고 있고 사용하는 경우:
- 명시적 범주화를 사용하도록 쿼리를 수정합니다(예: summarize by bin(TimeGenerated, 1h)).
조인 연산자의 같음 식
현재 언어 구문에서는 원치 않는 결과를 생성하는, 모호한 같음 식을 조인 특성으로 사용할 수 있습니다(예: key1 == key2). 이 동작을 방지하려면 모호한 같음 식을 변경하는 것이 좋습니다.
다음은 모호한 조인 식의 예입니다(컴퓨터당 일일 세션 기간 합계).
SecurityEvent
| where EventID == 4624
| join kind= inner (
SecurityEvent
| where EventID == 4634
) on TargetLogonId == TargetLogonId
| extend Duration = LogoffTime - LogonTime
| summarize sum(Duration) by bin(LogonTime, 1d), Computer
권장 작업:
- 저장된 검색이나 경고에서 조인 연산자에 같음 식을 사용하지 않는 경우:
- 아무런 작업도 필요하지 않습니다.
- 조인 연산자에 같음 식을 사용하는 경우:
- 조인 연산자 구문을 수정합니다.
- 쿼리를 수정합니다. 열 이름은
$left
및$right
표기법으로 표시된 해당하는 소유자 테이블로 한정되어야 합니다. 예시:
| join … on $left.Col1 == $right.Col2
| join … on X (equivalent to: | join … on $left.X == $right.X)