Табличные функции
Табличные функции — это способы создания таблиц.
| Страница | Описание |
|---|---|
| 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 | Обеспечивает одновременную обработку файлов, путь к которым соответствует заданному шаблону, на нескольких узлах кластера. Инициатор устанавливает соединения с узлами-исполнителями, разворачивает glob‑шаблоны в пути к файлам и делегирует им задачи чтения файлов. Каждый узел-исполнитель запрашивает у инициатора следующий файл для обработки и повторяет это до завершения всех задач (пока не будут прочитаны все файлы). |
| format | Разбирает данные из переданных аргументов в соответствии с указанным входным форматом. Если аргумент структуры не задан, структура определяется по данным. |
| gcs | Предоставляет табличный интерфейс для выполнения операций SELECT и INSERT с данными в Google Cloud Storage. Требуется роль IAM Storage Object User. |
| fuzzQuery | Вносит случайные изменения в заданную строку запроса. |
| fuzzJSON | Вносит случайные искажения в JSON-строку. |
| generateRandom | Генерирует случайные данные по заданной схеме. Позволяет заполнять тестовые таблицы этими данными. Поддерживаются не все типы данных. |
| mergeTreeProjection | Представляет содержимое проекции в таблицах MergeTree. Может использоваться для анализа. |
| mergeTreeIndex | Представляет содержимое файлов индекса и меток таблиц MergeTree. Может использоваться для анализа внутреннего устройства. |
| hdfs | Создаёт таблицу из файлов в HDFS. Эта табличная функция аналогична табличным функциям url и file. |
| hdfsCluster | Позволяет параллельно обрабатывать файлы из HDFS на нескольких узлах указанного кластера. |
| hudi | Предоставляет табличный интерфейс только для чтения к таблицам Apache Hudi в Amazon S3. |
| ytsaurus | Табличная функция позволяет считывать данные из кластера YTsaurus. |
| Табличная функция hudiCluster | Расширение табличной функции 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-драйвер. |
| merge | Создаёт временную таблицу типа Merge. Её структура будет определена на основе подлежащих таблиц путём объединения их столбцов и вывода общих типов. |
| mongodb | Позволяет выполнять запросы SELECT к данным, хранящимся на удалённом сервере MongoDB. |
| mysql | Позволяет выполнять запросы SELECT и INSERT к данным, хранящимся на удалённом MySQL-сервере. |
| null | Создаёт временную таблицу указанной структуры с табличным движком Null. Функция используется для удобства при написании тестов и проведении демонстраций. |
| timeSeriesMetrics | timeSeriesMetrics возвращает таблицу метрик, используемую таблицей 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. |
| timeSeriesData | timeSeriesData возвращает таблицу данных, используемую таблицей 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 позволяет получать доступ к удалённым серверам «на лету», то есть без создания распределённой таблицы. Табличная функция remoteSecure аналогична функции remote, но использует защищённое соединение. |
| Табличная функция S3 | Предоставляет табличный интерфейс для выбора и вставки файлов в 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.
Вы также можете использовать табличные функции для создания временной таблицы, доступной только в текущем запросе. Например:
Таблица удаляется после завершения запроса.
Функции таблиц можно использовать для создания таблиц со следующим синтаксисом:
Например:
Наконец, табличные функции можно использовать для выполнения INSERT в таблицу. Например,
мы можем записать содержимое таблицы, которую создали в предыдущем примере,
в файл на диске, повторно используя табличную функцию file:
Нельзя использовать табличные функции, если настройка allow_ddl отключена.