Skip to main content
Apify est une plateforme de web scraping et d’automatisation. Vous créez, exécutez et faites évoluer des programmes serverless dans le cloud appelés Actors. Les Actors extraient des données de sites web, parcourent le web, traitent des données ou automatisent des workflows. Chaque exécution d’un Actor produit une sortie structurée stockée dans des Datasets (collections d’objets JSON). Chargez les données extraites ou traitées dans ClickHouse pour des pipelines d’analyse, de monitoring ou d’enrichissement.

Concepts clés

Guide de configuration

1

Rassemblez vos informations de connexion ClickHouse

Pour vous connecter à ClickHouse via HTTP(S), vous avez besoin des informations suivantes :Les informations de votre service ClickHouse Cloud sont disponibles dans la console ClickHouse Cloud. Sélectionnez un service, puis cliquez sur Connect :
Bouton Connect du service ClickHouse Cloud
Choisissez HTTPS. Les détails de connexion s’affichent dans un exemple de commande curl.
Détails de connexion HTTPS ClickHouse Cloud
Si vous utilisez ClickHouse autogéré, les détails de connexion sont définis par votre administrateur ClickHouse.
2

Prérequis Apify

Vous aurez également besoin de :
3

Installer les dépendances

Installez le client JavaScript Apify et le client JavaScript ClickHouse :
Apify fournit également un client Python. Si vous préférez Python, installez apify-client via pip et utilisez clickhouse-connect pour ClickHouse.
4

Créer une table cible dans ClickHouse

Créez une table pour stocker les données extraites. Le schéma dépend de l’Actor que vous utilisez. Cet exemple utilise MergeTree pour un Actor de scraping de produits :
5

Récupérer le dataset Apify et le charger dans ClickHouse

Le script suivant récupère les résultats d’une exécution d’Actor Apify et les insère dans ClickHouse :
Pour les datasets volumineux, parcourez les résultats par pagination à l’aide des paramètres limit et offset du point de terminaison List dataset items. Vous pouvez également passer clean=true pour ne récupérer que les éléments non vides et dédupliqués.
6

Automatiser avec des webhooks

Au lieu d’exécuter le script manuellement, automatisez le pipeline afin que les données soient chargées dans ClickHouse à chaque fin d’exécution d’un Actor :
  1. Dans la Console Apify, accédez à votre Actor et ouvrez l’onglet Integrations.
  2. Ajoutez un nouveau webhook avec :
    • Event type: ACTOR.RUN.SUCCEEDED
    • Action: une requête HTTP POST vers votre point de terminaison de chargement, ou le déclenchement d’un autre Actor chargé de l’insertion dans ClickHouse.
  3. Le payload du webhook inclut defaultDatasetId, que vous pouvez utiliser pour récupérer les résultats de l’exécution.
Consultez la documentation des webhooks Apify pour plus de détails sur le payload et les options de configuration.Une autre approche consiste à utiliser les Apify Schedules pour exécuter des Actors selon une planification de type cron, combinée à des webhooks pour l’étape de chargement.

Bonnes pratiques

Récupération de données depuis Apify

Utilisez la bibliothèque client Apify (apify-client pour JavaScript ou Python) plutôt que des appels HTTP directs. Elle gère pour vous la pagination, les tentatives de nouvelle exécution et l’authentification. Pour les datasets volumineux, parcourez les résultats avec pagination à l’aide des paramètres limit et offset de l’endpoint List dataset items.

Chargement dans ClickHouse

Utilisez le format JSONEachRow pour insérer des données dans ClickHouse. Il correspond directement à la sortie JSON d’Apify, sans nécessiter de transformation. Faites correspondre le schéma de votre table ClickHouse aux champs de sortie de l’Actor. Vérifiez le schéma de sortie de l’Actor sur sa page Apify Store ou dans l’onglet Dataset après l’exécution.

Performances

Pour des insertions à haut débit depuis le client JavaScript, consultez les conseils d’optimisation des performances. Regroupez les lignes dans des insertions de plus grande taille plutôt que d’insérer une ligne à la fois, et envisagez les insertions asynchrones lorsque le batching côté client n’est pas pratique.

Sécurité

Les exemples de cette page utilisent l’utilisateur et la base de données default pour faire simple. En production, créez un utilisateur dédié avec le minimum de privilèges nécessaires pour insérer dans votre table cible, et stockez les identifiants de manière sécurisée (par exemple, dans des variables d’environnement ou un gestionnaire de secrets, plutôt que de les versionner dans le code source). Consultez la gestion des accès Cloud pour plus d’informations.
Dernière modification le 24 juillet 2026