유형 변환 모드
이 페이지의 내용
버전 2.6에 새로 추가됨
BI 용 MongoDB Connector는 SQL 쿼리를 MongoDB 집계 파이프라인 으로 변환하려고 시도합니다. BI Connector 가 쿼리 를 집계 파이프라인 으로 변환할 수 없는 경우 메모리에서 쿼리 를 실행하여 지연 시간 이 증가합니다. 버전 2.6 이전에는 mongosqld
에서 유형 변환을 집계 표현식으로 변환할 수 없어 유형 변환에 의존하는 쿼리 를 변환할 수 없었습니다.
버전 2.6부터 mongosql
유형 변환 모드는 표현식 성능을 개선하기 위해 버전 4.0 이상을 실행하는 MongoDB Server로 모든 유형 변환을 푸시합니다. 이 모드는 기본적으로 활성화되어 있지만 type_conversion_mode
세션 변수를 다음 값 중 하나로 설정하여 세션별로 구성할 수 있습니다.
모드 | 설명 |
---|---|
| 기본값. 모든 유형 변환을 버전 4.0 이상을 실행하는 MongoDB Server로 푸시합니다. 4.0 이전 버전의 MongoDB의 경우 BI Connector는 메모리에서 유형 변환을 수행합니다. |
| MySQL의 유형 변환 의미 체계와 최대한 일치하도록 BI Connector에 지시합니다. BI Connector가 애그리게이션 언어에서 MySQL의 유형 캐스팅 동작을 재현할 수 있는 경우, 표현식을 실행을 위해 MongoDB 서버로 푸시합니다. 그렇지 않으면 |
다음 예에서는 type_conversion_mode
변수를 mysql
로 설정합니다.
SET SESSION type_conversion_mode = 'mysql';
중요
mongosql
는 MySQL의 동작을 모방해야 하는 경우를 제외하고는 권장되는 타입 캐스팅 모드입니다. 위의 예에서는 mongosql
이 기본값이고 명시적으로 설정할 필요가 없기 때문에 mysql
유형 변환 모드를 설정합니다.
유형 변환 모드는 다음 두 가지 모두에 적용됩니다.
명시적 유형 변환. 예를 들면 다음과 같습니다.
CAST("123" AS unsigned) 암시적 유형 변환. 예를 들면 다음과 같습니다.
"123" + 456
모드 비교 표
다음 표는 MySQL의 유형 변환 동작이 BI Connector의 기본 유형 변환 동작(mongosql
모드)과 어떻게 다른지에 대한 개요를 제공합니다.
시작 유형 | 입력 대상 | MySQL 동작 | mongosql -mode 동작 |
---|---|---|---|
Varchar | 숫자 | 다양한 형식의 string 에서 숫자를 구문 분석합니다. 자세한 내용은 MySQL 숫자 리터럴 을 참조하세요. 문서화. | 선택적 선행 기호 문자를 사용하여 10진수 형식의 문자열에서 숫자를 구문 분석합니다. |
Varchar | 타임스탬프 | 다양한 형식의 string 에서 날짜를 구문 분석합니다. 자세한 내용은 MySQL 날짜 및 시간 리터럴 을 참조하세요. . |
|
Int | 타임스탬프 | int의 varchar 표현에서 날짜를 구문 분석하려고 시도합니다. 예를 들어 정수 | 유닉스 시간 이후의 입력을 밀리초로 처리합니다. 예를 들어 |
타임스탬프 | Long | 타임스탬프를 | 유닉스 시간 이후의 밀리초를 나타내는 long으로 타임스탬프를 구문 분석합니다. 예를 들어 |
타임스탬프 | Varchar | 타임스탬프를 | 타임스탬프를 |
참고
mongosql
는 MySQL의 동작을 가깝게 복제해야 하는 경우를 제외하고 권장되는 타입 캐스팅 모드입니다.