다음을 통해 공유


Null 값

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Kusto의 모든 스칼라 데이터 형식에는 누락된 값을 나타내는 특수 값이 있습니다. 이 값을 null 값 또는 null이라고 부릅니다.

참고 항목

데이터 형식은 string null 값을 지원하지 않습니다.

Null 리터럴

스칼라 형식 T 의 null 값은 null 리터럴 T(null)로 쿼리 언어로 표시됩니다.

다음 쿼리는 null 값으로 가득 찬 단일 행을 반환합니다.

print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)

null 값에 대한 조건자

스칼라 함수 isnull() 를 사용하여 스칼라 값이 null 값인지 확인할 수 있습니다. 해당 함수 isnotnull() 를 사용하여 스칼라 값이 null 값이 아닌지 확인할 수 있습니다.

참고 항목

형식은 string null 값을 지원하지 않으므로 함수와 isnotempty() 함수를 isempty() 사용하는 것이 좋습니다.

Null 값의 같음 및 같지 않음

  • 같음 (==): 두 null 값에 같음 연산자를 적용하면 생성됩니다 bool(null). null 값에 같음 연산자를 적용하면 null이 아닌 값이 생성됩니다 bool(false).
  • 같지 않음 (!=): 두 null 값에 같지 않음 연산자를 적용하면 생성됩니다 bool(null). null 값에 같지 않음 연산자를 적용하면 null이 아닌 값이 생성됩니다 bool(true).

예시:

datatable(val:int)[5, int(null)]
| extend IsBiggerThan3 = val > 3
| extend IsBiggerThan3OrNull = val > 3 or isnull(val)
| extend IsEqualToNull = val == int(null)
| extend IsNotEqualToNull = val != int(null)

출력

val IsBiggerThan3 IsBiggerThan3OrNull IsEqualToNull IsNotEqualToNull
5 true true false true
null null true null null

Null 값 및 집계 함수

null 값을 포함하는 엔터티에 다음 연산자를 적용하면 null 값이 무시되고 계산에 포함되지 않습니다.

Null 값 및 연산자 where

where 연산자는 부울 식을 사용하여 각 입력 레코드를 출력에 내보내는지 여부를 결정합니다. 이 연산자는 null 값을 마치 null 값으로 처리합니다 bool(false). 조건자가 null 값을 반환하는 레코드는 삭제되고 출력에 표시되지 않습니다.

예시:

datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5

출력

ival sval
null b

Null 값 및 이진 연산자

이진 연산자는 두 스칼라 값을 허용하고 세 번째 값을 생성하는 스칼라 연산자입니다. 예를 들어 보다 큼(>) 및 부울 AND(&>)는 이진 연산자입니다.

이 규칙에 대한 예외에 명시된 경우를 제외하고 모든 이진 연산자의 경우 규칙은 다음과 같습니다.

이진 연산자에 입력된 값 중 하나 또는 둘 다 null 값인 경우 이진 연산자의 출력도 null 값입니다. 즉, null 값은 "고정"입니다.

이 규칙에 대한 예외

  • 같음(==) 및 같지 않음(!=) 연산자의 경우 값 중 하나가 null이고 다른 값이 null이 아니면 결과는 각각 또는 bool(false) bool(true)그 결과입니다.
  • 논리 AND(&> 연산자)의 경우 값 bool(false)중 하나가 있으면 결과는 다음과 같습니다 bool(false).
  • 논리 OR(||) 연산자의 경우 값 bool(true)중 하나가 있으면 결과는 다음과 같습니다 bool(true).

예시:

datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10

출력

val 추가 곱하기
5 15 50
null null null

Null 값 및 논리 NOT(!) 연산자

인수가 null 값인 경우 논리 NOT 연산 자 not() 는 값을 bool(null) 생성합니다.

Null 값 및 연산자 in

  • in 연산자는 같음 비교의 논리적 OR처럼 동작합니다.
  • 연산자는 !in 같지 않음 비교의 논리 AND 처럼 동작합니다.

Null 값 및 데이터 수집

대부분의 데이터 형식에서 데이터 원본의 누락된 값은 해당 테이블 셀에 null 값을 생성합니다. 그러나 형식 string 및 CSV(또는 CSV와 유사한) 데이터 형식의 열은 이 규칙의 예외이며 누락된 값은 빈 문자열을 생성합니다.

예시:

.create table T(a:string, b:int)

.ingest inline into table T
[,]
[ , ]
[a,1]

T
| project a, b, isnull_a=isnull(a), isempty_a=isempty(a), stlen_a=strlen(a), isnull_b=isnull(b)

출력

a b isnull_a isempty_a strlen_a isnull_b
    false true 0 true
    false false 1 true
a 1 false false 1 false

참고 항목

  • Kusto.Explorer에서 위의 쿼리를 실행하면 모든 true 값이 로 1표시되고 모든 false 값이 표시됩니다 0.
  • Kusto는 테이블의 열에 null 값이 없도록 제한하는 방법을 제공하지 않습니다. 즉, SQL NOT NULL 의 제약 조건과 동일하지 않습니다.

참고 항목

Kusto는 테이블의 열에 null 값이 없도록 제한하는 방법을 제공하지 않습니다. 즉, SQL NOT NULL 의 제약 조건과 동일하지 않습니다.