문서 메뉴

문서 홈보기 & 데이터 분석BI 커넥터

샘플링 유형 충돌

이 페이지의 내용

  • 스칼라-스칼라 충돌
  • 복합 충돌

버전 2.6에서 변경되었습니다.

MongoDB의 유연한 스키마 모델은 주어진 필드에 여러 유형의 데이터를 포함할 수 있도록 허용하는 반면, relational database는 열을 단일 데이터 유형으로 제한합니다. BI Connector는 MongoDB에서 데이터를 샘플링하여 관계형 스키마 모델을 생성하지만, BI Connector가 MongoDB 문서의 필드에서 다양한 데이터 유형을 샘플링할 때는 유형 변환 충돌이 발생할 수 있습니다.

여러 데이터 유형이 있을 때 발생할 수 있는 유형 변환 충돌에는 스칼라 유형 간의 충돌과 문서 및 배열과 같은 복합 유형과 관련된 충돌, 이렇게 두 가지 주요 카테고리가 있습니다.

참고

스칼라-스칼라 충돌이 발생하면 BI Connector는 다음 격자를 사용하여 두 가지 데이터 유형 중 최소 상한을 결정합니다.

스칼라-스칼라 유형 격자
클릭하여 확대

예제

지정된 필드에 int, doublestring 유형이 포함된 경우 최소 상한은 string 입니다.

스칼라-스칼라 충돌이 발생하면 BI Connector는 information_schema.COLUMNS 테이블에 행을 삽입하고 COLUMN_COMMENT 열에 다양한 샘플링된 유형을 나열합니다.

복합 충돌은 문서 또는 배열과 관련된 유형 변환 충돌입니다. 다음 섹션에서는 BI Connector가 두 가지 유형의 복합 충돌을 해결하는 방법에 대해 설명합니다.

문서와 관련된 충돌이 발생하면 BI Connector는 점 표기법을 사용하여 문서 유형의 필드를 별도의 열로 표시합니다. 예를 들어, conflict collection에는 다음 문서가 포함되어 있습니다.

{ _id: 0, a: "foo" } // "a" is scalar (string)
{ _id: 1, a: { a: "bar", b: "baz" } } // "a" is composite (document)

BI Connector는 스칼라-복합 충돌을 감지하고 다음과 같은 관계형 스키마를 생성합니다.

테이블: conflict

_id
a
aa
ab
0
"foo"
NULL
NULL
1
NULL
"bar"
"baz"

문서와 관련된 충돌이 발생하면 BI Connector는 information_schema.COLUMNS 테이블에 행을 삽입하고 COLUMN_COMMENT 열에 다양한 샘플링된 유형을 나열합니다.

배열과 관련된 충돌이 발생하면 BI Connector는 충돌 필드에 외래 키, 배열 인덱스 및 값에 대한 열이 있는 새 테이블을 만듭니다. BI Connector는 배열을 새 테이블의 여러 행으로 풀고 그에 따라 열을 채웁니다. 예를 들어, conflict collection에는 다음 문서가 포함되어 있습니다.

{ _id: 0, a: "foo" } // "a" is scalar (string)
{ _id: 1, a: ["bar", "baz"] } // "a" is composite (array)

BI Connector는 위의 내용을 다음 두 테이블로 렌더링합니다.

테이블: conflict

_id
0
1

테이블: conflict_a

_id
a_idx
a
0
NULL
"foo"
1
0
"bar"
1
1
"baz"

배열과 관련된 충돌이 발생하면 BI Connector는 다음을 수행합니다.

  • information_schema.COLUMNS 테이블에 행을 삽입하고 COLUMN_COMMENT 열에서 샘플링된 다양한 유형을 나열합니다.

  • 배열이 information_schema.COLUMNS 테이블의 행에 매핑되는 방식에 대한 정보가 포함된 information_schema.TABLES 테이블에 행을 삽입합니다.

← 지리 공간 데이터