Перейти к основному содержанию
Табличные функции — это способы создания таблиц.
СтраницаОписание
azureBlobStorageПредоставляет табличный интерфейс для выбора и вставки файлов в Azure Blob Storage. Аналогична функции s3.
azureBlobStorageClusterПозволяет параллельно обрабатывать файлы из Azure Blob Storage на множестве узлов указанного кластера.
clusterAllReplicasПозволяет обращаться ко всем сегментам кластера (настроенным в разделе remote_servers) без создания distributed таблицы.
deltaLakeПредоставляет табличный интерфейс только для чтения для таблиц Delta Lake в Amazon S3.
deltaLakeClusterЭто расширение табличной функции deltaLake.
dictionaryОтображает данные словаря в виде таблицы ClickHouse. Работает так же, как движок Dictionary.
executableТабличная функция executable создаёт таблицу на основе вывода пользовательской функции (UDF), определённой в скрипте, который выводит строки в stdout.
fileДвижок таблицы, предоставляющий табличный интерфейс для SELECT из файлов и INSERT в файлы, аналогично табличной функции s3. Используйте file() при работе с локальными файлами, а s3() — при работе с бакетами в Объектном хранилище, например S3, GCS или MinIO.
fileClusterОбеспечивает одновременную обработку файлов, соответствующих указанному пути, на нескольких узлах кластера. Инициатор устанавливает connections с воркер-узлами, разворачивает глоб-шаблоны в пути к файлам и делегирует задачи чтения файлов воркер-узлам. Каждый воркер-узел запрашивает у инициатора следующий файл для обработки и повторяет это до завершения всех задач (то есть пока не будут прочитаны все файлы).
filesystemПредоставляет доступ к файловой системе для вывода списка файлов и возврата их метаданных и содержимого.
formatРазбирает данные из аргументов в соответствии с указанным входным форматом. Если аргумент structure не указан, она извлекается из данных.
gcsПредоставляет табличный интерфейс для SELECT и INSERT данных из Google Cloud Storage. Требуется роль IAM Storage Object User.
fuzzQueryИскажает заданную строку запроса случайными вариациями.
fuzzJSONИскажает строку JSON случайными вариациями.
generateRandomГенерирует случайные данные по заданной схеме. Позволяет заполнять ими тестовые таблицы. Поддерживаются не все типы.
mergeTreeTextIndexПредставляет словарь текстового индекса в таблице MergeTree. Может использоваться для интроспекции.
mergeTreeProjectionПредставляет содержимое одной из проекций в таблицах MergeTree. Может использоваться для интроспекции.
mergeTreeIndexПредставляет содержимое файлов индекса и marks таблиц MergeTree. Может использоваться для интроспекции.
hdfsСоздаёт таблицу из файлов в HDFS. Эта табличная функция аналогична табличным функциям url и file.
hdfsClusterПозволяет параллельно обрабатывать файлы из HDFS на множестве узлов указанного кластера.
hudiПредоставляет табличный интерфейс только для чтения для таблиц Apache Hudi в Amazon S3.
ytsaurusЭта табличная функция позволяет читать данные из кластера YTsaurus.
hudiCluster Table FunctionРасширение табличной функции hudi. Позволяет параллельно обрабатывать файлы из таблиц Apache Hudi в Amazon S3 на множестве узлов указанного кластера.
icebergПредоставляет табличный интерфейс только для чтения для таблиц Apache Iceberg в Amazon S3, Azure, HDFS или локальном хранилище.
paimonПредоставляет табличный интерфейс только для чтения для таблиц Apache Paimon в Amazon S3, Azure, HDFS или локальном хранилище.
icebergClusterРасширение табличной функции iceberg, которое позволяет параллельно обрабатывать файлы из Apache Iceberg на множестве узлов указанного кластера.
paimonClusterРасширение табличной функции paimon, которое позволяет параллельно обрабатывать файлы из Apache Paimon на множестве узлов указанного кластера.
inputТабличная функция, позволяющая эффективно преобразовывать и вставлять данные, отправленные на сервер с заданной структурой, в таблицу с другой структурой.
jdbcВозвращает таблицу, подключённую через JDBC driver.
mergeСоздаёт временную таблицу Merge. Структура определяется на основе базовых таблиц путём объединения их столбцов и вывода общих типов.
mongodbПозволяет выполнять SELECT-запросы к данным, хранящимся на удалённом сервере MongoDB.
mysqlПозволяет выполнять SELECT- и INSERT-запросы к данным, хранящимся на удалённом сервере MySQL.
nullСоздаёт временную таблицу с указанной структурой, используя движок таблицы Null. Функция используется для удобства написания тестов и демонстраций.
timeSeriesMetricstimeSeriesMetrics возвращает таблицу метрик, которую использует таблица db_name.time_series_table с движком таблицы TimeSeries.
timeSeriesSelectorСчитывает временные ряды из таблицы TimeSeries, отфильтрованные селектором, с временными метками в указанном интервале.
timeSeriesTagsТабличная функция timeSeriesTags возвращает таблицу тегов, которую использует таблица db_name.time_series_table с движком таблицы TimeSeries.
prometheusQueryRangeВычисляет запрос Prometheus, используя данные из таблицы TimeSeries.
zerosИспользуется в целях тестирования как самый быстрый способ сгенерировать много строк. Аналогична системным таблицам system.zeros и system.zeros_mt.
primesВозвращает таблицу с единственным столбцом prime, содержащим простые числа.
timeSeriesDatatimeSeriesData возвращает таблицу данных, которую использует таблица db_name.time_series_table с движком таблицы TimeSeries.
numbersВозвращает таблицу с единственным столбцом number, содержащим последовательность целых чисел.
prometheusQueryВычисляет запрос Prometheus, используя данные из таблицы TimeSeries.
generate_series (generateSeries)Возвращает таблицу с единственным столбцом generate_series (UInt64), содержащим целые числа от start до stop включительно.
odbcВозвращает таблицу, подключённую через ODBC.
postgresqlПозволяет выполнять SELECT- и INSERT-запросы к данным, хранящимся на удалённом сервере PostgreSQL.
redisЭта табличная функция позволяет интегрировать ClickHouse с Redis.
remote, remoteSecureТабличная функция remote позволяет обращаться к удалённым серверам на лету, то есть без создания distributed таблицы. Табличная функция remoteSecure аналогична remote, но работает по защищённому соединению.
s3 Table FunctionПредоставляет табличный интерфейс для выборки и вставки файлов в Amazon S3 и Google Cloud Storage. Эта табличная функция похожа на функцию hdfs, но предоставляет возможности, специфичные для S3.
s3ClusterРасширение табличной функции s3, которое позволяет параллельно обрабатывать файлы из Amazon S3 и Google Cloud Storage на множестве узлов в указанном кластере.
sqliteПозволяет выполнять запросы к данным, хранящимся в базе данных SQLite.
arrowFlightПозволяет выполнять запросы к данным, доступным через сервер Apache Arrow Flight.
urlСоздаёт таблицу из URL с указанными format и structure
urlClusterПозволяет параллельно обрабатывать файлы по URL с множества узлов в указанном кластере.
viewПреобразует подзапрос в таблицу. Функция реализует представления.
valuesСоздаёт временное хранилище, которое заполняет столбцы значениями.
loopТабличная функция loop в ClickHouse используется для возврата результатов запроса в бесконечном цикле.

Использование

Табличные функции можно использовать в секции FROM запроса SELECT. Например, с помощью табличной функции file можно выполнить SELECT данных из файла на локальном компьютере.
Query
echo "1, 2, 3" > example.csv
Response
./clickhouse client
:) SELECT * FROM file('example.csv')
┌─c1─┬─c2─┬─c3─┐
│  1 │  2 │  3 │
└────┴────┴────┘
Вы также можете использовать табличные функции для создания временной таблицы, доступной только в рамках текущего запроса. Например:
Query
SELECT * FROM generateSeries(1,5);
Response
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
Таблица удаляется после завершения запроса. Табличные функции можно использовать для создания таблиц со следующим синтаксисом:
Query
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()
Например:
Query
CREATE TABLE series AS generateSeries(1, 5);
SELECT * FROM series;
Response
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
Наконец, табличные функции можно использовать для INSERT в таблицу. Например, мы можем снова использовать табличную функцию file, чтобы записать содержимое таблицы, которую создали в предыдущем примере, в файл на диске:
Query
INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series;
Query
cat numbers.csv
1
2
3
4
5
Вы не сможете использовать табличные функции, если параметр allow_ddl отключён.
Последнее изменение 10 июня 2026 г.