Табличные функции
Табличные функции — это методы для построения таблиц.
| Страница | Описание |
|---|---|
| azureBlobStorage | Предоставляет интерфейс, подобный таблице, для выбора/вставки файлов в Azure Blob Storage. Аналогично функции s3. |
| azureBlobStorageCluster | Позволяет обрабатывать файлы из Azure Blob Storage параллельно на множестве узлов в заданном кластере. |
| clusterAllReplicas | Позволяет получить доступ ко всем шардов (настройки в разделе remote_servers) кластера без создания распределенной таблицы. |
| deltaLake | Предоставляет интерфейс, подобный таблице, для только чтения к таблицам Delta Lake в Amazon S3. |
| deltaLakeCluster | Это расширение для табличной функции deltaLake. |
| dictionary | Отображает данные словаря как таблицу ClickHouse. Работает так же, как и движок Dictionary. |
| executable | Табличная функция executable создает таблицу на основе вывода пользовательской функции (UDF), которую вы определяете в скрипте, который выводит строки в stdout. |
| file | Табличный движок, который предоставляет интерфейс, подобный таблице, для выбора из и вставки в файлы, аналогично табличной функции s3. Используйте file(), когда работаете с локальными файлами, и s3(), когда работаете с корзинами в облачном хранилище, таком как S3, GCS или MinIO. |
| fileCluster | Обеспечивает одновременную обработку файлов, соответствующих заданному пути, на нескольких узлах в пределах кластера. Инициатор устанавливает соединения с рабочими узлами, расширяет шаблоны в пути к файлам и делегирует задачи чтения файлов рабочим узлам. Каждый рабочий узел запрашивает у инициатора следующий файл для обработки, повторяя до тех пор, пока все задачи не будут завершены (все файлы прочитаны). |
| 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 Table Function | Расширение для табличной функции hudi. Позволяет обрабатывать файлы из таблиц Apache Hudi в Amazon S3 параллельно на множестве узлов в заданном кластере. |
| iceberg | Предоставляет интерфейс, похожий на таблицу, для только чтения таблиц Apache Iceberg в Amazon S3, Azure, HDFS или локально сохраненных. |
| icebergCluster | Расширение для табличной функции iceberg, которое позволяет обрабатывать файлы из Apache Iceberg параллельно на множестве узлов в заданном кластере. |
| 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), содержащей целые числа от начала до конца включительно. |
| odbc | Возвращает таблицу, подключенную через ODBC. |
| postgresql | Позволяет выполнять запросы SELECT и INSERT к данным, хранящимся на удаленном сервере PostgreSQL. |
| redis | Эта табличная функция позволяет интегрировать ClickHouse с Redis. |
| remote, remoteSecure | Табличная функция remote позволяет обращаться к удаленным серверам «на лету», т.е. без создания распределенной таблицы. Табличная функция 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 с заданным форматом и структурой |
| urlCluster | Позволяет обрабатывать файлы из URL параллельно на множестве узлов в заданном кластере. |
| view | Превращает подзапрос в таблицу. Функция реализует представления. |
| values | создает временное хранилище, которое заполняет колонки значениями. |
| loop | Табличная функция loop в ClickHouse используется для возврата результатов запроса в бесконечном цикле. |
Использование
Табличные функции могут использоваться в FROM
части запроса SELECT. Например, вы можете SELECT данные из файла на вашем локальном компьютере, используя табличную функцию file.
Вы также можете использовать табличные функции для создания временной таблицы, которая доступна только в текущем запросе. Например:
Таблица удаляется после завершения запроса.
Табличные функции можно использовать как способ создания таблиц, используя следующий синтаксис:
Например:
Наконец, табличные функции можно использовать для INSERT данных в таблицу. Например,
мы могли бы записать содержимое таблицы, которую мы создали в предыдущем примере,
в файл на диске, используя снова табличную функцию file:
Вы не можете использовать табличные функции, если настройка allow_ddl отключена.