提交 1399f888 编写于 作者: A annvsh

Fixed

上级 8519f665
...@@ -1342,34 +1342,29 @@ Result: ...@@ -1342,34 +1342,29 @@ Result:
## RawBLOB {#rawblob} ## RawBLOB {#rawblob}
This format slurps all input data into a single value. This format can only parse a table with a single field of type [String](../sql-reference/data-types/string.md) or similar. This format slurps all input data into a single value. This format can only parse a table with a single field of type [String](../sql-reference/data-types/string.md) or similar.
When an empty value is passed to the input, ClickHouse generates an exception: The result is output in binary format without delimiters and escaping. If more than one value is output, the format is ambiguous, and it will be impossible to read the data back.
The difference between `RawBLOB` and `TSVRaw`:
- data is output in binary format, no escaping;
- no delimiters between values;
- no newline at the end of each value.
In `Raw BLOB` unlike `Raw Binary` strings are output without their length.
When an empty value is passed to the `RawBLOB` input, ClickHouse generates an exception:
``` text ``` text
Code: 108. DB::Exception: No data to insert Code: 108. DB::Exception: No data to insert
``` ```
The result is output in binary format without delimiters and escaping. If more than one value is output, the format is ambiguous, and it will be impossible to read the data back.
**Example** **Example**
``` bash ``` bash
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) $ clickhouse-client --query "DROP TABLE IF EXISTS {some_table};"
. "$CURDIR"/../shell_config.sh $ clickhouse-client --query "CREATE TABLE {some_table} (a String) ENGINE = Memory;"
$ cat {filename} | clickhouse-client --query="INSERT INTO {some_table} FORMAT RawBLOB"
${CLICKHOUSE_CLIENT} -n --query " $ clickhouse-client --query "SELECT * FROM {some_table} FORMAT RawBLOB" | md5sum
DROP TABLE IF EXISTS t; $ clickhouse-client --query "DROP TABLE {some_table};"
CREATE TABLE t (a LowCardinality(Nullable(String))) ENGINE = Memory;
${CLICKHOUSE_CLIENT} --query "INSERT INTO t FORMAT RawBLOB" < ${BASH_SOURCE[0]}
cat ${BASH_SOURCE[0]} | md5sum
${CLICKHOUSE_CLIENT} -n --query "SELECT * FROM t FORMAT RawBLOB" | md5sum
${CLICKHOUSE_CLIENT} --query "
DROP TABLE t;
"
``` ```
Result: Result:
......
...@@ -1146,35 +1146,30 @@ SELECT * FROM line_as_string; ...@@ -1146,35 +1146,30 @@ SELECT * FROM line_as_string;
## RawBLOB {#rawblob} ## RawBLOB {#rawblob}
Этот формат считывает все входные данные в одно значение. Этот формат может парсить только таблицу с одним полем типа [String](../sql-reference/data-types/string.md) или подобным ему. Этот формат считывает все входные данные в одно значение. Формат может парсить только таблицу с одним полем типа [String](../sql-reference/data-types/string.md) или подобным ему.
При передаче на вход пустого значения ClickHouse сгенерирует исключение: Результат выводится в бинарном виде без разделителей и экранирования. При выводе более одного значения формат неоднозначен и будет невозможно прочитать данные снова.
Отличия между `RawBLOB` и `TabSeparatedRaw`:
- данные выводятся в бинарном виде, без экранирования;
- нет разделителей между значениями;
- нет новой строки в конце каждого значения.
В `RawBLOB`, в отличие от `RowBinary`, строки выводятся без их длины.
При передаче на вход `RawBLOB` пустого значения ClickHouse сгенерирует исключение:
``` text ``` text
Code: 108. DB::Exception: No data to insert Code: 108. DB::Exception: No data to insert
``` ```
Результат выводится в двоичном формате без разделителей и экранирования. При выводе более одного значения формат неоднозначен и будет невозможно прочитать данные снова.
**Пример** **Пример**
``` bash ``` bash
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) $ clickhouse-client --query "DROP TABLE IF EXISTS {some_table};"
. "$CURDIR"/../shell_config.sh $ clickhouse-client --query "CREATE TABLE {some_table} (a String) ENGINE = Memory;"
$ cat {filename} | clickhouse-client --query="INSERT INTO {some_table} FORMAT RawBLOB"
${CLICKHOUSE_CLIENT} -n --query " $ clickhouse-client --query "SELECT * FROM {some_table} FORMAT RawBLOB" | md5sum
DROP TABLE IF EXISTS t; $ clickhouse-client --query "DROP TABLE {some_table};"
CREATE TABLE t (a LowCardinality(Nullable(String))) ENGINE = Memory;
${CLICKHOUSE_CLIENT} --query "INSERT INTO t FORMAT RawBLOB" < ${BASH_SOURCE[0]}
cat ${BASH_SOURCE[0]} | md5sum
${CLICKHOUSE_CLIENT} -n --query "SELECT * FROM t FORMAT RawBLOB" | md5sum
${CLICKHOUSE_CLIENT} --query "
DROP TABLE t;
"
``` ```
Результат: Результат:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册