Табличные функции
Табличные функции — это способы создания таблиц.
| Страница | Описание |
|---|---|
| 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 | Парсит данные из аргументов в соответствии с указанным входным форматом. Если аргумент структуры не задан, структура выводится из данных. |
| gcs | Предоставляет табличный интерфейс для выполнения операций SELECT и INSERT с данными в Google Cloud Storage. Требуется роль IAM Storage Object User. |
| fuzzJSON | Вносит случайные изменения в строку JSON. |
| fuzzQuery | Вносит случайные изменения в заданную строку запроса. |
| generateRandom | Генерирует случайные данные на основе заданной схемы. Позволяет заполнять тестовые таблицы этими данными. Поддерживаются не все типы данных. |
| mergeTreeIndex | Представляет содержимое файлов индексов и меток таблиц MergeTree. Может использоваться для анализа внутреннего состояния. |
| mergeTreeProjection | Отражает содержимое проекций в таблицах MergeTree. Может использоваться для интроспекции. |
| hdfs | Создаёт таблицу из файлов в HDFS. Эта табличная функция похожа на табличные функции url и file. |
| hdfsCluster | Позволяет параллельно обрабатывать файлы из HDFS на многих узлах заданного кластера. |
| hudi | Предоставляет интерфейс в виде таблицы только для чтения к таблицам Apache Hudi в Amazon S3. |
| ytsaurus | Табличная функция позволяет считывать данные из кластера YTsaurus. |
| Табличная функция hudiCluster | Расширение табличной функции Hudi. Позволяет обрабатывать файлы из таблиц Apache Hudi в 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. Функция предназначена для удобства при написании тестов и проведении демонстраций. |
| numbers | Возвращает таблицы с единственным столбцом number, содержащим задаваемые целые числа. |
| prometheusQuery | Вычисляет результат запроса Prometheus на основе данных из таблицы TimeSeries. |
| 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. |
| 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 отключён.