Skip to main content
Apify — это платформа для веб-скрейпинга и автоматизации. Вы создаёте, запускаете и масштабируете бессерверные облачные программы под названием Actors. Actors собирают данные с веб-сайтов, сканируют веб, обрабатывают данные или автоматизируют рабочие процессы. Каждый запуск Actor создаёт структурированный результат, который сохраняется в датасетах (коллекциях объектов JSON). Загружайте собранные или обработанные данные в ClickHouse для аналитики, мониторинга или конвейеров обогащения.

Ключевые понятия

Руководство по настройке

1

Подготовьте сведения о подключении к ClickHouse

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

Необходимые условия для Apify

Также вам понадобятся:
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:
Для больших датасетов получайте результаты постранично с помощью параметров limit и offset конечной точки Список элементов датасета. Также можно передать clean=true, чтобы получать только непустые дедуплицированные элементы.
6

Автоматизируйте процесс с помощью вебхуков

Вместо ручного запуска скрипта автоматизируйте конвейер, чтобы данные загружались в ClickHouse каждый раз, когда Actor завершает работу:
  1. В консоли Apify перейдите к нужному Actor и откройте вкладку Integrations.
  2. Добавьте новый вебхук со следующими параметрами:
    • Тип события: ACTOR.RUN.SUCCEEDED
    • Действие: HTTP POST на конечную точку вашего загрузчика либо запуск другого Actor, который выполняет вставку в ClickHouse.
  3. Полезная нагрузка вебхука включает defaultDatasetId, который можно использовать для получения результатов запуска.
Подробные сведения о полезной нагрузке и параметрах конфигурации см. в документации Apify по вебхукам.Альтернативный вариант — использовать Apify Schedules для запуска Actors по cron-подобному расписанию в сочетании с вебхуками для этапа загрузки.

Рекомендации по лучшей практике

Получение данных из Apify

Используйте клиентскую библиотеку Apify (apify-client для JavaScript или Python) вместо прямых HTTP-запросов. Она сама обрабатывает пагинацию, повторные попытки и аутентификацию. Для больших датасетов постранично получайте результаты с помощью параметров limit и offset конечной точки Список элементов датасета.

Загрузка данных в ClickHouse

При вставке данных в ClickHouse используйте формат JSONEachRow. Он напрямую соответствует JSON-выводу Apify, поэтому никакого преобразования не требуется. Схема таблицы ClickHouse должна соответствовать выходным полям Actor. Проверить выходную схему Actor можно на его странице в Apify Store или на вкладке Dataset после выполнения.

Производительность

Для высокопроизводительных вставок из JavaScript-клиента следуйте рекомендациям в разделе Советы по оптимизации производительности. Собирайте строки в более крупные батчи для вставки вместо того, чтобы вставлять их по одной, и рассмотрите асинхронные вставки, если батчинг на стороне клиента непрактичен.

Безопасность

В примерах на этой странице для простоты используются пользователь и база данных default. В рабочей среде создайте отдельного пользователя с минимальными привилегиями, необходимыми для вставки данных в целевую таблицу, и храните учетные данные в безопасном месте (например, в переменных окружения или менеджере secrets, а не добавляйте их в исходный код). Рекомендации см. в разделе Cloud access management.
Последнее изменение 24 июля 2026 г.