Табличные функции
Табличные функции — это способы создания таблиц.
| Страница | Описание |
|---|---|
| azureBlobStorage | Предоставляет табличный интерфейс для выбора и вставки файлов в Azure Blob Storage. Аналогична функции s3. |
| azureBlobStorageCluster | Позволяет обрабатывать файлы из Azure Blob Storage параллельно на нескольких узлах заданного кластера. |
| clusterAllReplicas | Позволяет получать доступ ко всем сегментам кластера (настроенным в разделе remote_servers), не создавая Distributed таблицу. |
| deltaLake | Предоставляет табличный интерфейс только для чтения к таблицам Delta Lake в Amazon S3. |
| deltaLakeCluster | Это расширение табличной функции deltaLake. |
| словарь | Отображает данные словаря как таблицу ClickHouse. Работает аналогично движку Dictionary. |
| executable | Табличная функция executable создаёт таблицу на основе вывода пользовательской функции (UDF), определённой в скрипте, который выводит строки в stdout. |
| file | Движок таблиц, предоставляющий табличный интерфейс для выполнения операций SELECT и INSERT с файлами, аналогично табличной функции s3. Используйте file() при работе с локальными файлами и s3() при работе с бакетами в объектном хранилище, таком как S3, GCS или MinIO. |
| fileCluster | Обеспечивает одновременную обработку файлов, соответствующих заданному пути (шаблону), на нескольких узлах кластера. Инициатор устанавливает соединения с рабочими узлами, расширяет шаблоны glob в пути к файлам и делегирует задачи чтения файлов рабочим узлам. Каждый рабочий узел запрашивает у инициатора следующий файл для обработки и повторяет этот запрос, пока все задачи не будут выполнены (все файлы не будут прочитаны). |
| format | Разбирает данные, переданные в аргументах, в соответствии с указанным входным форматом. Если аргумент structure не указан, его значение извлекается из данных. |
| gcs | Предоставляет табличный интерфейс для выполнения операций SELECT и INSERT с данными в Google Cloud Storage. Требуется роль IAM Storage Object User. |
| fuzzJSON | Вносит в строку JSON случайные вариации. |
| fuzzQuery | Случайным образом изменяет переданную строку запроса. |
| generateRandom | Генерирует случайные данные на основе заданной схемы. Позволяет заполнять тестовые таблицы этими данными. Не все типы поддерживаются. |
| mergeTreeIndex | Представляет содержимое файлов индекса и меток таблиц MergeTree. Может использоваться для внутреннего анализа. |
| mergeTreeProjection | Представляет содержимое определённой проекции в таблицах MergeTree. Может использоваться для внутреннего анализа. |
| hdfs | Создаёт таблицу на основе файлов в HDFS. Эта табличная функция аналогична табличным функциям url и file. |
| hdfsCluster | Позволяет параллельно обрабатывать файлы из HDFS на множестве узлов указанного кластера. |
| ytsaurus | Табличная функция позволяет читать данные из кластера YTsaurus. |
| hudi | Предоставляет табличный интерфейс только для чтения к таблицам Apache Hudi в Amazon S3. |
| Табличная функция 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. Функция используется для удобства при написании тестов и проведении демонстраций. |
| prometheusQueryRange | Оценивает запрос Prometheus на основе данных из таблицы TimeSeries. |
| timeSeriesData | timeSeriesData возвращает таблицу данных, используемую таблицей db_name.time_series_table с движком TimeSeries. |
| timeSeriesMetrics | timeSeriesMetrics возвращает таблицу метрик, используемую таблицей db_name.time_series_table, движком которой является TimeSeries. |
| timeSeriesSelector | Считывает временные ряды из таблицы TimeSeries, отфильтрованные по селектору и с временными метками в заданном интервале. |
| timeSeriesTags | Табличная функция timeSeriesTags возвращает таблицу тегов, используемую таблицей db_name.time_series_table с движком TimeSeries. |
| zeros | Используется для тестовых целей как наиболее быстрый способ сгенерировать большое число строк. Аналогична системным таблицам system.zeros и system.zeros_mt. |
| 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 | Предоставляет табличный интерфейс для выборки и вставки файлов в 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 с нескольких узлов в указанном кластере. |
| values | создаёт временное хранилище, заполняющее столбцы значениями. |
| view | Преобразует подзапрос в таблицу. Функция реализует представления. |
| loop | Табличная функция loop в ClickHouse используется для возврата результатов запроса в режиме бесконечного цикла. |
Использование
Табличные функции могут использоваться в разделе FROM
команды SELECT. Например, вы можете выполнить SELECT данных из файла на локальной
машине, используя табличную функцию file.
Можно также использовать табличные функции для создания временной таблицы, доступной только в текущем запросе. Например:
Таблица удаляется после завершения запроса.
Табличные функции можно использовать для создания таблиц, используя следующий синтаксис:
Например:
Наконец, табличные функции можно использовать для операции INSERT данных в таблицу. Например,
мы можем снова использовать табличную функцию file, чтобы записать содержимое таблицы,
созданной в предыдущем примере, в файл на диске:
Нельзя использовать табличные функции, если параметр allow_ddl отключён.