Ключевые понятия
Руководство по настройке
1
Подготовьте сведения о подключении к ClickHouse
Чтобы подключиться к ClickHouse по HTTP(S), вам понадобится следующая информация:
Выберите HTTPS. Сведения о подключении будут показаны в примере команды 
Если вы используете самоуправляемый ClickHouse, сведения о подключении задаёт ваш администратор ClickHouse.
Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud.
Выберите сервис и нажмите Connect:

curl.
2
Необходимые условия для Apify
Также вам понадобятся:
- Учетная запись Apify (доступен бесплатный уровень).
- API-токен Apify, который можно найти в разделе Settings > Integrations в консоли Apify.
- Локально установленный Node.js 18+ (для примеров на JavaScript).
3
Установите зависимости
Установите JavaScript-клиент Apify и JavaScript-клиент ClickHouse:
Apify также предоставляет клиент Python. Если вы предпочитаете Python, установите
apify-client через pip и используйте clickhouse-connect для ClickHouse.4
Создайте целевую таблицу в ClickHouse
Создайте таблицу для хранения собранных данных. Схема зависит от используемого Actor. В этом примере для Actor, собирающего данные о товарах, используется MergeTree:
5
Получите датасет Apify и загрузите его в ClickHouse
Следующий скрипт получает результаты запуска Actor в Apify и вставляет их в ClickHouse:
6
Автоматизируйте процесс с помощью вебхуков
Вместо ручного запуска скрипта автоматизируйте конвейер, чтобы данные загружались в ClickHouse каждый раз, когда Actor завершает работу:
- В консоли Apify перейдите к нужному Actor и откройте вкладку Integrations.
- Добавьте новый вебхук со следующими параметрами:
- Тип события:
ACTOR.RUN.SUCCEEDED - Действие: HTTP POST на конечную точку вашего загрузчика либо запуск другого Actor, который выполняет вставку в ClickHouse.
- Тип события:
- Полезная нагрузка вебхука включает
defaultDatasetId, который можно использовать для получения результатов запуска.
Рекомендации по лучшей практике
Получение данных из Apify
apify-client для JavaScript или Python) вместо прямых HTTP-запросов. Она сама обрабатывает пагинацию, повторные попытки и аутентификацию. Для больших датасетов постранично получайте результаты с помощью параметров limit и offset конечной точки Список элементов датасета.
Загрузка данных в ClickHouse
JSONEachRow. Он напрямую соответствует JSON-выводу Apify, поэтому никакого преобразования не требуется.
Схема таблицы ClickHouse должна соответствовать выходным полям Actor. Проверить выходную схему Actor можно на его странице в Apify Store или на вкладке Dataset после выполнения.
Производительность
Безопасность
default. В рабочей среде создайте отдельного пользователя с минимальными привилегиями, необходимыми для вставки данных в целевую таблицу, и храните учетные данные в безопасном месте (например, в переменных окружения или менеджере secrets, а не добавляйте их в исходный код). Рекомендации см. в разделе Cloud access management.