설명
BSONEachRow 포맷은 데이터 사이에 구분자 없이 연속된 Binary JSON(BSON) 문서 시퀀스로 데이터를 파싱합니다.
각 행은 하나의 문서로 포맷되며, 각 컬럼은 컬럼 이름을 키로 하는 BSON 문서의 단일 필드로 포맷됩니다.
데이터 유형 매핑
입력 시에는 BSON 유형과 ClickHouse 유형 사이에 다음과 같은 대응 관계를 사용합니다:
다른 BSON 타입은 지원되지 않습니다. 또한 서로 다른 정수 타입 간 변환도 수행합니다.
예를 들어 BSON
int32 값은 ClickHouse의 UInt8로 삽입할 수 있습니다.
Int128/UInt128/Int256/UInt256/Decimal128/Decimal256와 같은 큰 정수와 Decimal 값은 \x00 binary subtype의 BSON Binary 값에서 파싱할 수 있습니다.
이 경우 이 포맷은 binary 데이터의 크기가 예상되는 값의 크기와 같은지 검증합니다.
이 포맷은 Big-Endian 플랫폼에서 올바르게 작동하지 않습니다.
사용 예시
데이터 삽입
football.bson을 사용합니다:
데이터 읽기
BSONEachRow 포맷으로 데이터를 읽습니다: