다음을 통해 공유


reduce 연산자

적용 대상: ✅Microsoft Fabric

값 유사성에 따라 문자열 집합을 그룹화합니다.

이러한 각 그룹에 대해 연산 pattern자는 , countrepresentative. 가장 좋은 방법은 pattern 문자가 와일드카드를 * 나타내는 그룹을 설명합니다. 이 값은 count 그룹의 값 수이며 representative 그룹의 원래 값 중 하나입니다.

구문

T|reduce [kind= ReduceKind] byExpr [with [threshold= 임계값] [,characters=문자]]

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
Expr string ✔️ 줄일 값입니다.
Threshold real 감소 작업을 트리거하기 위해 그룹화 조건과 일치하는 데 필요한 행의 최소 비율을 결정하는 0에서 1 사이의 값입니다. 기본값은 0.1입니다.

큰 입력에 대해 작은 임계값을 설정하는 것이 좋습니다. 임계값이 작을수록 더 유사한 값이 그룹화되어 더 적지만 더 유사한 그룹이 생성됩니다. 임계값이 클수록 유사성이 낮아지고 유사도가 낮은 그룹이 더 많아집니다. 예제를 참조하세요.
캐릭터 string 용어 간에 구분되는 문자 목록입니다. 기본값은 모든 비-ascii 숫자 문자입니다. 예제는 Characters 매개 변수의 동작을 참조하세요.
ReduceKind string 유효한 값은 .입니다 source. 지정된 경우 source 연산자는 열을 집계하는 대신 테이블의 기존 행에 Pattern추가 Pattern 합니다.

반품

그룹 및 열이 있는 행 수만큼의 행이 있는 테이블입니다patterncountrepresentative. 가장 좋은 방법은 pattern 문자가 와일드카드를 나타내는 그룹 * 또는 임의의 삽입 문자열에 대한 자리 표시자를 설명하는 것입니다. 이 값은 count 그룹의 값 수이며 representative 그룹의 원래 값 중 하나입니다.

예를 들어 결과에 reduce by city 는 다음이 포함될 수 있습니다.

패턴 Count Representative
산* 5,182 산 버나드
성인* 2846 세인트 루시
모스크바 3726 모스크바
*-에-* 2730 일대일
파리 2716 파리

예제

이 섹션의 예제에서는 구문을 사용하여 시작하는 방법을 보여 주었습니다.

이 문서의 예제에서는 샘플 데이터베이스의 StormEvents 테이블과 같은 도움말 클러스터공개적으로 사용할 수 있는 테이블을 사용합니다.

이 문서의 예제에서는 날씨 분석 샘플 데이터StormEvents 테이블과 같이 공개적으로 사용 가능한 테이블을 사용합니다.

작은 임계값

이 쿼리는 숫자 범위를 생성하고, 연결된 문자열과 임의의 정수를 사용하여 새 열을 만든 다음, 특정 감소 매개 변수를 사용하여 새 열별로 행을 그룹화합니다.

range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText  with threshold=0.001 , characters = "X" 

출력

패턴 Count Representative
MachineLearning* 1000 MachineLearningX4

큰 임계값

이 쿼리는 숫자 범위를 생성하고, 연결된 문자열과 임의의 정수를 사용하여 새 열을 만든 다음, 특정 감소 매개 변수를 사용하여 새 열별로 행을 그룹화합니다.

range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText  with threshold=0.9 , characters = "X" 

출력

결과에는 MyText 값이 행의% 90개 이상에 표시되는 그룹만 포함됩니다.

패턴 Count Representative
MachineLearning* 177 MachineLearningX9
MachineLearning* 102 MachineLearningX0
MachineLearning* 106 MachineLearningX1
MachineLearning* 96 MachineLearningX6
MachineLearning* 110 MachineLearningX4
MachineLearning* 100 MachineLearningX3
MachineLearning* 99 MachineLearningX8
MachineLearning* 104 MachineLearningX7
MachineLearning* 106 MachineLearningX2

Characters 매개 변수의 동작

Characters 매개 변수가 지정되지 않은 경우 모든 비 ascii 숫자 문자는 용어 구분 기호가 됩니다.

range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str

출력

패턴 Count Representative
기타 10

그러나 "Z"가 구분 기호로 지정되면 str 각 값이 footostring(x)두 개의 용어인 것처럼 표시됩니다.

range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"

출력

패턴 Count Representative
푸* 10 fooZ1

삭제된 입력에 적용 reduce

다음 예제에서는 축소하기 전에 축소되는 열의 GUID를 교체하는 "삭제된" 입력에 reduce 연산자를 적용하는 방법을 보여 줍니다.

추적 테이블에서 몇 가지 레코드로 시작합니다. 그런 다음 임의의 GUID를 포함하는 텍스트 열을 줄입니다. 임의 GUID가 축소 작업을 방해하므로 모두 문자열 "GUID"로 바꿉니다. 이제 축소 작업을 수행합니다. 포함된 '-' 또는 '_' 문자가 포함된 다른 "준 임의" 식별자가 있는 경우 문자를 비기 차단기로 처리합니다.

Trace
| take 10000
| extend Text = replace(@"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "GUID", Text)
| reduce by Text with characters="-_"

참고 항목

연산자의 reduce 구현은 주로 Risto Vaarandi의 이벤트 로그에서 마이닝 패턴에 대한 A 데이터 클러스터링 알고리즘을 기반으로 합니다.