RawBLOB
描述
RawBLOB
格式将所有输入数据读取为单个值。它可以仅解析具有 String
或类似类型的单个字段的表。结果以二进制格式输出,不带分隔符和转义。如果输出多个值,则格式不明确,并且将无法读取回数据。
Raw 格式比较
以下是 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
示例用法
查询
$ 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 -