RawBLOB 형식

RawBLOB 형식

RawBLOB 형식은 모든 입력 데이터를 단일 값으로 읽어요. String 또는 유사한 타입의 단일 필드를 가진 테이블만 파싱할 수 있습니다. 결과는 구분자와 이스케이프가 없는 바이너리 형식으로 출력되며, 하나 이상의 값을 출력하면 형식이 모호해져 데이터를 다시 읽을 수 없어요.

출처: 문서

본문

설명 (Description)

RawBLOB 형식은 모든 입력 데이터를 단일 값으로 읽습니다. String 또는 유사한 타입의 단일 필드를 가진 테이블만 파싱할 수 있어요.

결과는 구분자와 이스케이프가 없는 바이너리 형식으로 출력됩니다. 하나 이상의 값을 출력하면 형식이 모호해지고 데이터를 다시 읽을 수 없습니다.

원시 형식 비교 (Raw formats comparison)

아래는 RawBLOB와 TabSeparatedRaw 형식의 비교입니다.

RawBLOB:

  • 데이터가 이스케이프 없이 바이너리 형식으로 출력됨;
  • 값 사이에 구분자가 없음;
  • 각 값 끝에 새 줄이 없음.

TabSeparatedRaw:

  • 데이터가 이스케이프 없이 출력됨;
  • 행에 탭으로 구분된 값이 포함됨;
  • 행의 마지막 값 뒤에 줄 바꿈이 있음.

다음은 RawBLOB와 RowBinary 형식의 비교입니다.

RawBLOB:

  • String 필드가 길이를 접두사로 붙이지 않고 출력됨.

RowBinary:

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  -

형식 설정 (Format settings)

더 알아보기 (Learn more)