Skip to main content
Apify es una plataforma de web scraping y automatización. En ella puedes crear, ejecutar y escalar programas serverless en la nube llamados Actors. Los Actors extraen datos de sitios web, rastrean la web, procesan datos o automatizan flujos de trabajo. Cada ejecución de un Actor genera una salida estructurada almacenada en Datasets (colecciones de objetos JSON). Carga en ClickHouse los datos extraídos o procesados para análisis, monitoreo o pipelines de enriquecimiento.

Conceptos clave

Guía de configuración

1

Recopila los detalles de conexión de ClickHouse

Para conectarse a ClickHouse con HTTP(S), necesita esta información:Los detalles de su servicio de ClickHouse Cloud están disponibles en la consola de ClickHouse Cloud. Seleccione un servicio y haga clic en Connect:
Botón Connect del servicio de ClickHouse Cloud
Elija HTTPS. Los detalles de conexión se muestran en un comando curl de ejemplo.
Detalles de conexión HTTPS de ClickHouse Cloud
Si usa ClickHouse autogestionado, los detalles de conexión los establece su administrador de ClickHouse.
2

Requisitos previos de Apify

También necesitarás lo siguiente:
3

Instala las dependencias

Instala el cliente de JavaScript de Apify y el cliente de JavaScript de ClickHouse:
Apify también ofrece un cliente de Python. Si prefieres Python, instala apify-client con pip y usa clickhouse-connect para ClickHouse.
4

Crea una tabla de destino en ClickHouse

Crea una tabla para almacenar los datos extraídos. El esquema depende del Actor que uses. Este ejemplo usa MergeTree para un Actor de scraping de productos:
5

Obtén el dataset de Apify y cárgalo en ClickHouse

El siguiente script obtiene los resultados de una ejecución de un Actor de Apify y los inserta en ClickHouse:
Para datasets grandes, pagina los resultados con los parámetros limit y offset del endpoint List dataset items. También puedes pasar clean=true para recuperar solo elementos no vacíos y deduplicados.
6

Automatiza con webhooks

En lugar de ejecutar el script manualmente, automatiza el pipeline para que los datos se carguen en ClickHouse cada vez que termine un Actor:
  1. En la Apify Console, ve a tu Actor y abre la pestaña Integrations.
  2. Añade un webhook nuevo con:
    • Event type: ACTOR.RUN.SUCCEEDED
    • Action: un HTTP POST a tu endpoint de carga, o activa otro Actor que gestione la inserción en ClickHouse.
  3. El payload del webhook incluye defaultDatasetId, que puedes usar para obtener los resultados de la ejecución.
Consulta la documentación de webhooks de Apify para ver los detalles del payload y las opciones de configuración.Otra alternativa es usar Apify Schedules para ejecutar Actors con una programación tipo cron, combinado con webhooks para el paso de carga.

Buenas prácticas

Recuperación de datos de Apify

Utiliza la biblioteca cliente de Apify (apify-client para JavaScript o Python) en lugar de hacer solicitudes HTTP directas. Se encarga de la paginación, los reintentos y la autenticación por ti. Para datasets grandes, pagina los resultados con los parámetros limit y offset del endpoint List dataset items.

Carga en ClickHouse

Utiliza el formato JSONEachRow al insertar datos en ClickHouse. Se corresponde directamente con la salida JSON de Apify, sin necesidad de realizar ninguna transformación. Haz que el esquema de la tabla de ClickHouse coincida con los campos de salida del Actor. Consulta el esquema de salida del Actor en su página de Apify Store o en la pestaña Dataset después de una ejecución.

Rendimiento

Para inserciones de alto rendimiento desde el cliente de JavaScript, siga los Consejos para optimizar el rendimiento. Agrupe las filas en lotes de inserción más grandes en lugar de insertarlas una por una, y considere las inserciones asíncronas cuando la agrupación en lotes del lado del cliente no sea viable.

Seguridad

Los ejemplos de esta página usan el usuario y la base de datos default para simplificar. En producción, cree un usuario específico con los privilegios mínimos necesarios para insertar datos en la tabla de destino y almacene las credenciales de forma segura (por ejemplo, en variables de entorno o en un gestor de secretos, en lugar de subirlas al código fuente). Consulte Gestión de acceso a Cloud para obtener más información.
Última modificación el 24 de julio de 2026