* Typo fix. * Links fix. * Fixed links in docs. * More fixes. * docs/en: cleaning some files * docs/en: cleaning data_types * docs/en: cleaning database_engines * docs/en: cleaning development * docs/en: cleaning getting_started * docs/en: cleaning interfaces * docs/en: cleaning operations * docs/en: cleaning query_lamguage * docs/en: cleaning en * docs/ru: cleaning data_types * docs/ru: cleaning index * docs/ru: cleaning database_engines * docs/ru: cleaning development * docs/ru: cleaning general * docs/ru: cleaning getting_started * docs/ru: cleaning interfaces * docs/ru: cleaning operations * docs/ru: cleaning query_language * docs: cleaning interfaces/http * Update docs/en/data_types/array.md decorated ``` Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/nyc_taxi.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/ontime.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/interfaces/formats.md fixed error Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/custom_partitioning_key.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/dicts/external_dicts_dict_sources.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/date_time_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/jdbc.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * docs: fixed error * docs: fixed error
2.8 KiB
input
input(structure)
- табличная функция, позволяющая эффективно преобразовывать и вставлять отправленные на сервер данные,
имеющие структуру structure
, в таблицу другой структуры.
structure
- структура отправляемых на сервер данных в формате 'column1_name column1_type, column2_name column2_type, ...'
.
Например: 'id UInt32, name String'
.
Данная функция может быть использована только в запросе INSERT SELECT
и только один раз, но в остальном ведет себя
как обычная табличная функция (можно указать в подзапросе и т.д.).
Данные можно отправлять любым стандартным способом как для обычного INSERT
запроса и в любом
доступном формате, который указывается в конце
запроса (в отличие от обычного INSERT SELECT
).
Главная особенность данной функции в том, что сервер при получении данных от клиента
одновременно преобразует их в соответствии со списком выражений в SELECT
части и вставляет в целевую таблицу. Временная таблица
со всеми переданными данными не создается.
Примеры
- Пусть у таблицы
test
следующая структура(a String, b String)
, а в файлеdata.csv
данные имеют другую структуру(col1 String, col2 Date, col3 Int32)
. Запрос для вставки данных из файлаdata.csv
в таблицуtest
с одновременным преобразованием и использованием функций выглядит так:
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT lower(col1), col3 * col3 FROM input('col1 String, col2 Date, col3 Int32') FORMAT CSV";
- Если в
data.csv
лежат данные той же структурыtest_structure
, что и у таблицыtest
, то следующие два запроса эквивалентны:
$ cat data.csv | clickhouse-client --query="INSERT INTO test FORMAT CSV"
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT * FROM input('test_structure') FORMAT CSV"