Descripción
Los formatos RawBLOB leen todos los datos de entrada como un único valor. Solo se puede analizar una tabla con un único campo de tipo String o similar.
El resultado se genera en un formato binario, sin delimitadores ni caracteres de escape. Si se genera más de un valor, el formato es ambiguo y será imposible volver a leer los datos.
Comparación de formatos Raw
A continuación se comparan los formatos RawBLOB y TabSeparatedRaw.
RawBLOB:
- los datos se generan en formato binario, sin caracteres de escape;
- no hay delimitadores entre los valores;
- no hay salto de línea al final de cada valor.
TabSeparatedRaw:
- los datos se generan sin caracteres de escape;
- las filas contienen valores separados por tabulaciones;
- hay un salto de línea después del último valor de cada fila.
A continuación se comparan los formatos RawBLOB y RowBinary.
RawBLOB:
- los campos String se generan sin prefijo de longitud.
RowBinary:
- los campos String se representan como una longitud en formato varint (LEB128 sin signo), seguida de los bytes de la cadena.
Cuando se pasan datos vacíos a la entrada RawBLOB, ClickHouse lanza una excepción:
Code: 108. DB::Exception: No data to insertEjemplo de uso
$ 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" | md5sumf9725a22f9191e064120d718e26862a9 -