문서 홈 → 보기 & 데이터 분석 → BI 커넥터
샘플링 유형 충돌
이 페이지의 내용
버전 2.6에서 변경되었습니다.
MongoDB의 유연한 스키마 모델은 주어진 필드에 여러 유형의 데이터를 포함할 수 있도록 허용하는 반면, relational database는 열을 단일 데이터 유형으로 제한합니다. BI Connector는 MongoDB에서 데이터를 샘플링하여 관계형 스키마 모델을 생성하지만, BI Connector가 MongoDB 문서의 필드에서 다양한 데이터 유형을 샘플링할 때는 유형 변환 충돌이 발생할 수 있습니다.
여러 데이터 유형이 있을 때 발생할 수 있는 유형 변환 충돌에는 스칼라 유형 간의 충돌과 문서 및 배열과 같은 복합 유형과 관련된 충돌, 이렇게 두 가지 주요 카테고리가 있습니다.
참고
BI Connector는 샘플링된 데이터의 하위 집합만 사용하여 스키마 생성 중 유형 충돌을 검색합니다. 데이터 세트에 필드에서 유형 충돌이 포함되어 있고 충돌하는 유형이 샘플에 모두 존재하지 않는 경우, 생성된 스키마는 이러한 충돌을 해결할 준비가 되지 않아 쿼리 지연 시간이 증가할 수 있습니다.
--samplesize
및 --schemaRefreshIntervalSecs
설정과 같은 샘플링 구성에 대한 자세한 내용은 스키마 옵션을 참조하세요.
스칼라-스칼라 충돌
스칼라-스칼라 충돌이 발생하면 BI Connector는 다음 격자를 사용하여 두 가지 데이터 유형 중 최소 상한을 결정합니다.
예제
지정된 필드에 int
, double
및 string
유형이 포함된 경우 최소 상한은 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
테이블에 행을 삽입합니다.