Skip to main content
Функция url создаёт таблицу по URL с указанными format и structure. Функция url может использоваться в запросах SELECT и INSERT для работы с данными в таблицах URL.

Синтаксис

Параметры

Возвращаемое значение

Таблица в указанном формате и с указанной структурой, содержащая данные из заданного URL.

Примеры

Получение первых 3 строк таблицы, содержащей столбцы типа String и UInt32, с HTTP-сервера, который возвращает данные в формате CSV.
Вставка данных из URL в таблицу:

Маршрутизация по схеме URL

Функция url выступает как единая обёртка над другими табличными функциями для файловых и объектных хранилищ: она перенаправляет вызов в нужный backend в зависимости от схемы URL. Это позволяет читать данные из любого поддерживаемого источника, используя единый синтаксис. Перенаправление выполняется только для тех схем S3, которые преобразователь S3 URI может разрешить в конкретную конечную точку без дополнительной конфигурации (s3, а также gs/gcs/oss). Другие схемы S3-совместимых провайдеров (cos, obs, eos, …) зависят от региона и не имеют сопоставления с конечной точкой по умолчанию, поэтому URL вида cos://… рассматривается как URL с нераспознанной схемой и возвращает ошибку; для таких backend используйте функцию s3 напрямую (с настроенным url_scheme_mappers). Для file:// относительный путь (file://data.csv) разрешается внутри каталога user_files, а абсолютный путь (file:///home/user/data.csv) должен, как обычно, указывать внутрь него. Аргументы format, structure и compression_method, а также настройка url_base работают одинаково независимо от цели перенаправления.
Поддержка схем URL в urlCluster пока не реализована: если передать в urlCluster схему, отличную от http(s), функция вернёт ошибку. Для таких backend-соединений используйте соответствующую кластерную функцию (s3Cluster, azureBlobStorageCluster, hdfsCluster, …).

Глоб-шаблоны в URL

Шаблоны в { } используются для генерации набора сегментов или для указания адресов аварийного переключения. Поддерживаемые типы шаблонов и примеры см. в описании функции remote. Символ | внутри шаблонов используется для указания адресов аварийного переключения. Они перебираются в том же порядке, в котором перечислены в шаблоне. Количество сгенерированных адресов ограничено настройкой glob_expansion_max_elements. Сведения о синтаксисе глоб-шаблонов в пути URL (например, *, {a,b}, {N..M} и **) см. в разделе Глоб-шаблоны в пути. Обратите внимание, что ? начинает строку запроса в URL и не может использоваться как подстановочный знак в компоненте пути.

Подстановочные шаблоны с HTTP-страницами индекса

Для url и движка таблицы URL ClickHouse может разворачивать подстановочные шаблоны, получая HTTP-страницы индекса (HTML или plaintext) и извлекая URL из тела ответа. Это позволяет использовать шаблоны вида /**/, если сервер предоставляет листинг каталогов. Примечания:
  • Относительные URL разрешаются относительно URL страницы индекса.
  • Шаблоны URL разворачиваются до получения страниц индекса, включая раскрытие сегментов, заданных через запятые и числовые диапазоны, а также варианты аварийного переключения | вне компонента пути.
  • Шаблоны аварийного переключения | внутри компонента пути не поддерживаются при раскрытии HTTP-страниц индекса.
  • Сопоставление с подстановочными шаблонами применяется к компоненту пути URL.
  • Если URL в списке уже содержит строку запроса или фрагмент, они имеют приоритет над значениями из исходного URL. В противном случае используются строка запроса и фрагмент из исходного URL.
  • Пустой список допустим; HTTP-ошибки (например, 404) для страниц индекса вызывают исключения.
  • Максимальный размер страницы индекса ограничен параметром max_http_index_page_size.
  • Максимальное количество каталогов, считываемых при рекурсивном раскрытии, ограничено параметром url_wildcard_max_directories_to_read.
Пример:

Виртуальные столбцы

  • _path — Путь к URL. Тип: LowCardinality(String).
  • _file — Имя ресурса URL. Тип: LowCardinality(String).
  • _size — Размер ресурса в байтах. Тип: Nullable(UInt64). Если размер неизвестен, значение — NULL.
  • _time — Время последнего изменения файла. Тип: Nullable(DateTime). Если время неизвестно, значение — NULL.
  • _headers - Заголовки HTTP-ответа. Тип: Map(LowCardinality(String), LowCardinality(String)).

настройка use_hive_partitioning

Если настройка use_hive_partitioning имеет значение 1, ClickHouse распознаёт партиционирование в стиле Hive в пути (/name=value/) и позволяет использовать столбцы партиций в качестве виртуальных столбцов в запросе. Эти виртуальные столбцы будут иметь те же имена, что и в пути с партициями. Пример Используйте виртуальный столбец, созданный при партиционировании в стиле Hive

Разрешение относительных URL

Настройка url_base позволяет передавать в функцию url относительный URL. Когда задан url_base и аргумент функции представляет собой относительную ссылку, она разрешается относительно базового URL в соответствии с RFC 3986. Правила разрешения:
  • Относительный путь (например, data.csv): объединяется с путем базового URL — всё после последнего / в базовом пути заменяется. Наличие завершающего слеша имеет значение: https://example.com/dir/ + data.csv дает https://example.com/dir/data.csv, а https://example.com/dir + data.csv дает https://example.com/data.csv. Сегменты с точками (./ и ../) нормализуются.
  • Относительный к хосту (например, /test/data.csv): разрешается с использованием схемы и хоста базового URL.
  • Относительный к схеме (например, //other.com/test/data.csv): разрешается с использованием схемы базового URL.
  • Только запрос (например, ?x=1): добавляется к полному базовому пути, заменяя существующие запрос или фрагмент.
  • Только фрагмент (например, #frag): добавляется к базовому URL с сохранением запроса и заменой существующего фрагмента.
  • Пустой: возвращает базовый URL без фрагмента.
  • Абсолютный URL: передается без изменений; url_base игнорируется.
Пример

Настройки хранилища

  • engine_url_skip_empty_files - позволяет пропускать пустые файлы при чтении. По умолчанию отключено.
  • enable_url_encoding - позволяет включать и отключать декодирование/кодирование пути в URI. По умолчанию включено.
  • url_base - базовый URL для разрешения относительных URL, передаваемых в функцию url.

Разрешения

Для функции url требуется разрешение CREATE TEMPORARY TABLE. Поэтому она не будет работать для пользователей с настройкой readonly = 1. Требуется значение readonly не ниже 2.
Последнее изменение 24 июля 2026 г.