lookup 연산자
차원 테이블에서 조회된 값을 사용하여 팩트 테이블의 열을 확장합니다.
FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2
여기서 결과는 후자의 테이블에서 각 쌍(,)을 사용하여 이전 테이블의 각 쌍(CommonColumn
,Col
)을 조회하여 (에서 참조$right
)의 데이터 DimensionTable
로 (CommonColumn1
)를 확장하는 FactTable
테이블입니다.Col2
$left
팩트 테이블과 차원 테이블 간의 차이점은 팩트 테이블과 차원 테이블을 참조하세요.
lookup
연산자는 다음과 같은 차이점이 있는 조인 연산자와 유사한 작업을 수행합니다.
- 결과는 조인 작업의 기초가 되는 테이블의
$right
열을 반복하지 않습니다. - 두 가지 종류의 조회만 지원되며,
leftouter
및inner
leftouter
는 기본값입니다. - 성능 측면에서 시스템은 기본적으로 테이블이
$left
더 큰(팩트) 테이블이고$right
테이블이 더 작은(차원) 테이블이라고 가정합니다. 이는 연산자가 사용하는 가정과 정확히 반대입니다join
. - 연산자는
lookup
테이블을 테이블에$left
자동으로 브로드캐스트$right
합니다(기본적으로 는 지정된 것처럼hint.broadcast
동작). 이렇게 하면 테이블의 크기가 제한됩니다$right
.
참고
조회의 오른쪽이 수십MB보다 크면 쿼리가 실패합니다.
다음 쿼리를 실행하여 오른쪽의 크기를 바이트 단위로 추정할 수 있습니다.
rightSide
| summarize sum(estimate_data_size(*))
Syntax
LeftTable|
lookup
[kind
=
(leftouter
|inner
)] (
RightTable)
on
조건
구문 규칙에 대해 자세히 알아보세요.
매개 변수
속성 | 형식 | 필수 | 설명 |
---|---|---|---|
LeftTable | 문자열 | ✓ | 조회의 기초가 되는 테이블 또는 테이블 형식 식입니다. $left 로 표시됩니다. |
RightTable | 문자열 | ✓ | 팩트 테이블의 새 열을 "채우기"하는 데 사용되는 테이블 또는 테이블 형식 식입니다. $right 로 표시됩니다. |
특성 | 문자열 | ✓ | LeftTable의 행이 RightTable의 행과 일치하는 방식을 설명하는 하나 이상의 규칙의 쉼표로 구분된 목록입니다. 여러 규칙은 and 논리 연산자를 사용하여 평가됩니다. 규칙을 참조하세요. |
kind |
문자열 | RightTable에서 일치하는 항목이 없는 LeftTable의 행을 처리하는 방법을 결정합니다. 기본적으로 leftouter 가 사용됩니다. 즉, 연산자가 추가한 RightTable 열의 누락 값에 사용되는 null 값이 있는 모든 행이 출력에 표시됩니다. 가 사용되는 경우 inner 이러한 행은 출력에서 생략됩니다. 다른 종류의 조인은 연산자에서 lookup 지원되지 않습니다. |
규칙
규칙 종류 | Syntax | Predicate |
---|---|---|
이름 기준 같음 | ColumnName | where LeftTable. Columnname== RightTable. Columnname |
값 기준 같음 | $left. LeftColumn== $right. RightColumn |
where $left. LeftColumn== $right. *RightColumn |
참고
'값별 같음'의 경우 열 이름은 및 $right
표기법으로 표시된 $left
해당 소유자 테이블로 한정되어야 합니다.
반환
다음을 포함하고 있는 테이블:
- 일치하는 키를 포함하여 두 테이블 각각의 모든 열에 대한 열. 이름 충돌이 있는 경우 오른쪽 열의 이름이 자동으로 바뀝니다.
- 입력된 테이블 간의 모든 일치 항목에 대한 행. 일치 항목은 한 테이블에서 선택된 행이며 모든
on
필드에 대해 다른 테이블의 행과 같은 값을 가지고 있습니다. - 특성(조회 키)은 출력 테이블에 한 번만 표시됩니다.
kind
가 지정되지 않은 경우 또는kind=leftouter
이면 내부 일치 항목 외에도 일치하는 항목이 없더라도 왼쪽(및/또는 오른쪽)의 모든 행에 대한 행이 있습니다. 이 경우 일치하지 않는 출력 셀에는 null 값이 포함되어 있습니다.- 이면
kind=inner
출력에 왼쪽과 오른쪽에서 일치하는 행의 모든 조합에 대한 행이 있습니다.
예제
let FactTable=datatable(Row:string,Personal:string,Family:string) [
"1", "Bill", "Gates",
"2", "Bill", "Clinton",
"3", "Bill", "Clinton",
"4", "Steve", "Ballmer",
"5", "Tim", "Cook"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
"Bill", "Gates", "billg",
"Bill", "Clinton", "billc",
"Steve", "Ballmer", "steveb",
"Tim", "Cook", "timc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family
행 | Personal | 패밀리 | Alias |
---|---|---|---|
1 | Bill | 게이트 | billg |
2 | Bill | 클린턴 | billc |
3 | Bill | 클린턴 | billc |
4 | Steve | 발머 | steveb |
5 | 팀 | 요리 | timc |
피드백
다음에 대한 사용자 의견 제출 및 보기