mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Added RawBLOB format description
This commit is contained in:
parent
12bb7a05ba
commit
ee890e7689
@ -57,6 +57,7 @@ The supported formats are:
|
||||
| [XML](#xml) | ✗ | ✔ |
|
||||
| [CapnProto](#capnproto) | ✔ | ✗ |
|
||||
| [LineAsString](#lineasstring) | ✔ | ✗ |
|
||||
| [RawBLOB](#rawblob) | ✔ | ✔ |
|
||||
|
||||
You can control some format processing parameters with the ClickHouse settings. For more information read the [Settings](../operations/settings/settings.md) section.
|
||||
|
||||
@ -1338,4 +1339,41 @@ Result:
|
||||
└───────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 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.
|
||||
When an empty value is passed to the input, ClickHouse generates an exception:
|
||||
|
||||
``` text
|
||||
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**
|
||||
|
||||
``` bash
|
||||
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
. "$CURDIR"/../shell_config.sh
|
||||
|
||||
${CLICKHOUSE_CLIENT} -n --query "
|
||||
DROP TABLE IF EXISTS t;
|
||||
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:
|
||||
|
||||
``` text
|
||||
f9725a22f9191e064120d718e26862a9 -
|
||||
```
|
||||
|
||||
[Original article](https://clickhouse.tech/docs/en/interfaces/formats/) <!--hide-->
|
||||
|
@ -39,6 +39,7 @@ ClickHouse может принимать (`INSERT`) и отдавать (`SELECT
|
||||
| [XML](#xml) | ✗ | ✔ |
|
||||
| [CapnProto](#capnproto) | ✔ | ✗ |
|
||||
| [LineAsString](#lineasstring) | ✔ | ✗ |
|
||||
| [RawBLOB](#rawblob) | ✔ | ✔ |
|
||||
|
||||
Вы можете регулировать некоторые параметры работы с форматами с помощью настроек ClickHouse. За дополнительной информацией обращайтесь к разделу [Настройки](../operations/settings/settings.md).
|
||||
|
||||
@ -1143,4 +1144,41 @@ SELECT * FROM line_as_string;
|
||||
└───────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## RawBLOB {#rawblob}
|
||||
|
||||
Этот формат объединяет все входные данные в одно значение. Этот формат может парсить только таблицу с одним полем типа [String](../sql-reference/data-types/string.md) или подобным ему.
|
||||
При передаче на вход пустого значения ClickHouse сгенерирует исключение:
|
||||
|
||||
``` text
|
||||
Code: 108. DB::Exception: No data to insert
|
||||
```
|
||||
|
||||
Результат выводится в двоичном формате без разделителей и экранирования. При выводе более одного значения формат неоднозначен и будет невозможно прочитать данные снова.
|
||||
|
||||
**Пример**
|
||||
|
||||
``` bash
|
||||
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
. "$CURDIR"/../shell_config.sh
|
||||
|
||||
${CLICKHOUSE_CLIENT} -n --query "
|
||||
DROP TABLE IF EXISTS t;
|
||||
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;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
``` text
|
||||
f9725a22f9191e064120d718e26862a9 -
|
||||
```
|
||||
|
||||
[Оригинальная статья](https://clickhouse.tech/docs/ru/interfaces/formats/) <!--hide-->
|
||||
|
Loading…
Reference in New Issue
Block a user