Перейти к основному содержанию
Возможность Query API Endpoints позволяет создавать API-конечные точки напрямую из любого сохранённого SQL-запроса в консоли ClickHouse Cloud. Вы сможете обращаться к API-конечным точкам по HTTP, чтобы выполнять сохранённые запросы без необходимости подключаться к своему сервису ClickHouse Cloud через нативный драйвер.

Предварительные требования

Прежде чем продолжить, убедитесь, что у вас есть:
  • API-ключ с соответствующими разрешениями
  • роль Admin в консоли
Если у вас ещё нет API-ключа, воспользуйтесь этим руководством, чтобы создать API-ключ.
Минимальные разрешенияЧтобы отправлять запросы к конечной точке API, API-ключу нужна роль организации Member с доступом к сервису Query Endpoints. Роль базы данных настраивается при создании конечной точки.
1

Создание сохраненного запроса

Если у вас уже есть сохраненный запрос, этот шаг можно пропустить.Откройте новую вкладку запроса. Для примера мы будем использовать датасет YouTube, который содержит примерно 4,5 миллиарда записей. Следуйте инструкциям в разделе “Create table”, чтобы создать таблицу в вашем сервисе Cloud и вставить в нее данные.
Ограничьте количество строк с помощью LIMITВ руководстве по этому датасету выполняется вставка большого объема данных — 4,65 миллиарда строк, и это может занять некоторое время. Для целей этого руководства рекомендуем использовать предложение LIMIT, чтобы вставить меньший объем данных, например 10 миллионов строк.
В качестве примера мы получим 10 лучших загрузчиков по среднему числу просмотров на видео с параметром year, который задает пользователь.
Обратите внимание, что этот запрос содержит параметр (year), который выделен в примере выше. Параметры запроса можно задавать в формате { } вместе с типом параметра. Редактор запросов в консоли SQL автоматически распознает выражения параметров в запросах к ClickHouse и показывает отдельное поле ввода для каждого параметра.Давайте быстро выполним этот запрос, чтобы убедиться, что он работает: укажите год 2010 в поле переменных запроса справа в редакторе SQL:Затем сохраните запрос:Дополнительную информацию о сохраненных запросах можно найти в разделе “Saving a query”.
2

Настройка конечной точки Query API

Конечные точки Query API можно настраивать прямо из представления запроса: нажмите кнопку Share и выберите API Endpoint. Затем вам будет предложено указать, какие ключ API смогут обращаться к этой конечной точке:После выбора ключа API вам будет предложено:
  • Выбрать роль базы данных, которая будет использоваться для выполнения запроса (Full access, Read only или Create a custom role)
  • Указать разрешенные домены CORS
После выбора этих параметров конечная точка Query API будет создана автоматически.Затем будет показан пример команды curl, чтобы вы могли отправить тестовый запрос:Для удобства ниже приведена команда curl, отображаемая в интерфейсе:
3

Параметры Query API

Параметры в запросе можно задавать с помощью синтаксиса {parameter_name: type}. Эти параметры будут автоматически обнаружены, а пример тела запроса будет содержать объект queryVariables, через который их можно передавать.
4

Тестирование и мониторинг

После создания конечной точки Query API вы можете проверить его работу с помощью curl или любого другого HTTP-клиента:После отправки первого запроса сразу справа от кнопки Share должна появиться новая кнопка. При нажатии на нее откроется выдвижная панель с данными мониторинга по запросу:

Подробности реализации

Эта конечная точка выполняет запросы к вашим сохранённым эндпоинтам Query API. Она поддерживает несколько версий, гибкие форматы ответов, параметризованные запросы и опциональную потоковую передачу ответов (только в версии 2). Конечная точка:

HTTP-методы

Когда использовать GET:
  • Простые запросы без сложных вложенных данных
  • Параметры легко передаются в URL-кодировке
  • Кэширование использует преимущества семантики HTTP GET
Когда использовать POST:
  • Сложные переменные запроса (массивы, объекты, длинные строки)
  • Когда тело запроса предпочтительнее с точки зрения безопасности и конфиденциальности
  • Потоковая загрузка файлов или больших объёмов данных

Аутентификация

Требуется: Да Метод: Basic Auth с помощью OpenAPI Key/Secret Разрешения: Соответствующие разрешения для эндпоинта запроса

Настройка запроса

Параметры URL

Параметры запроса

Заголовки


Тело запроса

Параметры

Поддерживаемые форматы


Ответы

Успех

Статус: 200 OK Запрос успешно выполнен.

Коды ошибок

Рекомендации по обработке ошибок

  • Убедитесь, что запрос содержит действительные учетные данные для аутентификации
  • Проверьте queryEndpointId и queryVariables перед отправкой
  • Реализуйте корректную обработку ошибок с понятными сообщениями

Обновление версий конечных точек

Чтобы перейти с версии 1 на версию 2:
  1. Добавьте заголовок x-clickhouse-endpoint-upgrade со значением 1
  2. Добавьте заголовок x-clickhouse-endpoint-version со значением 2
Это дает доступ к возможностям версии 2, включая:
  • Поддержку всех форматов ClickHouse
  • Возможность потоковой передачи ответов
  • Более высокую производительность и расширенную функциональность

Примеры

Простой запрос

SQL для эндпоинта Query API:

Версия 1

Версия 2

Ответ

Запрос с переменными запроса и версией 2 в формате JSONCompactEachRow

SQL для эндпоинта Query API:
Ответ

Запрос с массивом в параметрах запроса для вставки данных в таблицу

SQL таблицы:
SQL для эндпоинта Query API:

Запрос с настройкой ClickHouse max_threads, равной 8

SQL для эндпоинта Query API:

Запрос и разбор потокового ответа

SQL для эндпоинта Query API:
Вывод

Вставка потока из файла в таблицу

Создайте файл ./samples/my_first_table_2024-07-11.csv со следующим содержимым:
SQL-запрос CREATE TABLE:
SQL-код для эндпоинта Query API:
Последнее изменение 2 июля 2026 г.