RawBLOB 형식
RawBLOB 형식
RawBLOB 형식은 모든 입력 데이터를 단일 값으로 읽어요. String 또는 유사한 타입의 단일 필드를 가진 테이블만 파싱할 수 있습니다. 결과는 구분자와 이스케이프가 없는 바이너리 형식으로 출력되며, 하나 이상의 값을 출력하면 형식이 모호해져 데이터를 다시 읽을 수 없어요.
출처: 문서
본문
설명 (Description)
RawBLOB 형식은 모든 입력 데이터를 단일 값으로 읽습니다. String 또는 유사한 타입의 단일 필드를 가진 테이블만 파싱할 수 있어요.
결과는 구분자와 이스케이프가 없는 바이너리 형식으로 출력됩니다. 하나 이상의 값을 출력하면 형식이 모호해지고 데이터를 다시 읽을 수 없습니다.
원시 형식 비교 (Raw formats comparison)
아래는 RawBLOB와 TabSeparatedRaw 형식의 비교입니다.
RawBLOB:
- 데이터가 이스케이프 없이 바이너리 형식으로 출력됨;
- 값 사이에 구분자가 없음;
- 각 값 끝에 새 줄이 없음.
TabSeparatedRaw:
- 데이터가 이스케이프 없이 출력됨;
- 행에 탭으로 구분된 값이 포함됨;
- 행의 마지막 값 뒤에 줄 바꿈이 있음.
다음은 RawBLOB와 RowBinary 형식의 비교입니다.
RawBLOB:
- String 필드가 길이를 접두사로 붙이지 않고 출력됨.
RowBinary:
- String 필드가 varint 형식의 길이(부호 없는 [LEB128] (https://en.wikipedia.org/wiki/LEB128)) 다음에 문자열의 바이트로 표현됨.
RawBLOB 입력에 빈 데이터를 전달하면 ClickHouse가 예외를 발생시킵니다:
Code: 108. DB::Exception: No data to insert
사용 예시 (Example usage)
쿼리
$ clickhouse-client --query "CREATE TABLE {some_table} (a String) ENGINE = Memory;"
$ cat {filename} | clickhouse-client --query="INSERT INTO {some_table} FORMAT RawBLOB"
$ clickhouse-client --query "SELECT * FROM {some_table} FORMAT RawBLOB" | md5sum
응답
f9725a22f9191e064120d718e26862a9 -