다음을 통해 공유


lookup 연산자

적용 대상: ✅Microsoft Fabric

차원 테이블에서 조회된 값을 사용하여 팩트 테이블의 열을 확장합니다.

예를 들어 다음 쿼리는 조회를 수행하여 FactTable($left)를 DimensionTable($right)의 데이터로 확장하는 테이블을 만듭니다. 조회는 FactTable 각 쌍(CommonColumn, Col1)을 DimensionTable각 쌍(CommonColumn, Col2)과 일치합니다. 팩트 테이블과 차원 테이블의 차이점은 팩트 테이블과 차원 테이블을 참조 하세요.

FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2

lookup 산자는 다음과 같은 차이점이 있는 조인 연산 자와 유사한 작업을 수행합니다.

  • 결과는 조인 작업의 기초가 $right 되는 테이블의 열을 반복하지 않습니다.
  • 두 종류의 조회만 지원 leftouter 되며 innerleftouter 기본값이 됩니다.
  • 성능 측면에서 시스템은 기본적으로 테이블이 $left 더 큰(팩트) 테이블이고 $right 테이블이 더 작은(차원) 테이블이라고 가정합니다. 이는 연산자가 사용하는 가정과 정확히 반대입니다 join .
  • 연산자는 lookup 테이블을 테이블로 $right 자동으로 브로드캐스트 $left 합니다(기본적으로 지정된 것처럼 hint.broadcast 동작). 이렇게 하면 테이블의 크기가 제한됩니다 $right .

참고 항목

조회의 오른쪽이 수십MB보다 크면 쿼리가 실패합니다.

다음 쿼리를 실행하여 오른쪽의 크기를 바이트 단위로 추정할 수 있습니다.

rightSide
| summarize sum(estimate_data_size(*))

구문

LeftTable|lookup [kind= (leftouter|inner)] (RightTable)on특성

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

매개 변수

이름 Type 필수 설명
LeftTable string ✔️ 조회의 기초가 되는 테이블 또는 테이블 형식 식입니다. $left로 표시됩니다.
RightTable string ✔️ 팩트 테이블의 새 열을 "채우기"하는 데 사용되는 테이블 또는 테이블 형식 식입니다. $right로 표시됩니다.
특성 string ✔️ LeftTable의 행을 RightTable의 행과 일치시키는 방법을 설명하는 하나 이상의 규칙의 쉼표로 구분된 목록입니다. 여러 규칙은 and 논리 연산자를 사용하여 평가됩니다. 규칙을 참조하세요.
kind string RightTable에서 일치하는 항목이 없는 LeftTable 의 행을 처리하는 방법을 결정합니다. 기본적으로 leftouter 사용됩니다. 즉, 해당 모든 행이 출력에 null 값이 사용되어 연산자가 추가한 RightTable 열의 누락 값에 사용됩니다. 사용되는 경우 inner 이러한 행은 출력에서 생략됩니다. 다른 종류의 조인은 연산자가 lookup 지원하지 않습니다.

규칙

규칙 종류 구문 Predicate
이름별 같음 ColumnName where LeftTable.ColumnName== RightTable입니다.ColumnName
값별 같음 $left. LeftColumn==$right.RightColumn where $left. LeftColumn==$right.*RightColumn

참고 항목

'값별 같음'의 경우 열 이름은 $right.

반품

다음이 포함된 테이블:

  • 일치하는 키를 포함하여 두 테이블의 각 열에 대한 열입니다. 이름 충돌이 있는 경우 오른쪽 열의 이름이 자동으로 바뀝니다.
  • 입력 테이블 간의 모든 일치 항목에 대한 행입니다. 일치 항목은 한 테이블에서 선택된 행이며 모든 on 필드에 대해 다른 테이블의 행과 같은 값을 가지고 있습니다.
  • 특성(조회 키)는 출력 테이블에 한 번만 나타납니다.
  • kind 지정되지 않았거나 kind=leftouter내부 일치 항목 외에도 일치하는 항목이 없더라도 왼쪽(및/또는 오른쪽)의 모든 행에 대한 행이 있습니다. 이 경우 일치하지 않는 출력 셀에는 null 값이 포함되어 있습니다.
  • 이 경우 kind=inner출력에는 왼쪽과 오른쪽에서 일치하는 행의 모든 조합에 대한 행이 있습니다.

예제

다음 예제에서는 PersonalFamily 열의 일치 값에 따라 FactTableDimTable간에 왼쪽 외부 조인을 수행하는 방법을 보여 줍니다.

let FactTable=datatable(Row:string,Personal:string,Family:string) [
  "1", "Rowan",   "Murphy",
  "2", "Ellis",   "Turner",
  "3", "Ellis",   "Turner",
  "4", "Maya",  "Robinson",
  "5", "Quinn",    "Campbell"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
  "Rowan",  "Murphy",   "rowanm",
  "Ellis",  "Turner", "ellist",
  "Maya", "Robinson", "mayar",
  "Quinn",   "Campbell",    "quinnc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family

출력

Row 개인적 패밀리 Alias
1 마가목 머피 rowanm
2 엘리스 터너 ellist
3 엘리스 터너 ellist
4 마야 주 로빈슨 mayar
5 캠벨 quinnc