Data Ingestion
14 Mai 2026
Un pipeline d'ingestion qui fonctionne en environnement de recette échoue tôt ou tard en production si la planification et la supervision n'ont pas été pensées dès la conception. Entre les data streams natifs, les jobs Bulk API et les orchestrations externes, il existe plusieurs niveaux de monitoring à combiner pour garantir la fiabilité d'un pipeline d'ingestion Data Cloud dans la durée.
Planifier : les options natives de Data Cloud
Chaque data stream dans Data Cloud dispose de sa propre configuration de fréquence de rafraîchissement, définie lors de sa création ou modifiable a posteriori dans Setup > Data Cloud > Data Streams :
- Refresh manuel : déclenchement à la demande, utile en phase de développement ou pour des chargements ponctuels.
- Refresh planifié : intervalle fixe (toutes les 15 minutes, toutes les heures, une fois par jour) configuré nativement, adapté aux connecteurs batch et CRM.
- Refresh événementiel : déclenché par l'arrivée d'un fichier (connecteurs S3/SFTP) ou par un événement CDC, pour les besoins proches du temps réel.
Un principe simple à respecter : la fréquence de rafraîchissement doit correspondre à un besoin métier réel et documenté, pas au maximum technique disponible. Une fréquence trop agressive sur un data stream à faible valeur ajoutée consomme inutilement des ressources de calcul et complique le diagnostic en cas d'incident.
Orchestrer au-delà de Data Cloud
Pour des pipelines impliquant plusieurs étapes dépendantes (extraction source, transformation, ingestion, validation), un orchestrateur externe reste souvent nécessaire :
- Scheduled Flow / Scheduled Apex côté Salesforce, pour des logiques de contrôle légères directement dans l'org.
- Outils d'orchestration externes (Airflow, Control-M, AWS Step Functions, ou l'orchestrateur MuleSoft) pour des chaînes de dépendances complexes multi-systèmes.
- Chaînage explicite des jobs : ne jamais lancer une étape d'ingestion avant confirmation du succès complet de l'étape d'extraction amont — un déclenchement "au mieux" basé uniquement sur l'horaire est une source classique d'incidents silencieux.
extract_erp >> validate_export >> upload_to_s3 >> trigger_datacloud_refresh >> validate_ingestion
Ce type de DAG explicite, typique d'Airflow, matérialise les dépendances réelles entre étapes et permet de localiser immédiatement le point de rupture en cas d'échec, plutôt que de devoir reconstituer la chaîne a posteriori dans les logs.
Superviser : les signaux à collecter
La supervision efficace d'un pipeline d'ingestion repose sur la combinaison de plusieurs sources de signal, aucune n'étant suffisante isolément :
- Data Stream Run History dans Data Cloud : historique natif de chaque exécution, avec statut, nombre de lignes traitées, nombre d'erreurs et durée.
- Bulk API Job Status : pour les chargements Bulk, le suivi programmatique via
GET /jobs/ingest/{jobId} permet une intégration avec un outil de monitoring externe (Datadog, CloudWatch, Grafana).
- Logs applicatifs côté orchestrateur : traces d'exécution des jobs amont (extraction, transformation) qui ne sont pas visibles depuis Data Cloud lui-même.
- Contrôles de complétude métier : comparaison du volume ingéré à un volume attendu (basé sur l'historique ou une source de vérité), plus révélateur qu'un simple statut technique "Success".
Définir des seuils d'alerte pertinents
Un monitoring qui alerte sur tout finit par n'alerter sur rien (fatigue d'alerte). Il faut calibrer les seuils selon la criticité réelle du flux :
- Échec technique (job en erreur, timeout) : alerte immédiate, criticité haute, sur tous les flux sans exception.
- Dérive de volume (nombre de lignes ingérées significativement inférieur ou supérieur à la moyenne mobile) : alerte différée avec seuil de tolérance, par exemple ±20% par rapport à la moyenne des 7 derniers jours.
- Retard de fraîcheur (dernier enregistrement ingéré plus ancien que le SLA attendu) : alerte basée sur un contrôle périodique indépendant du job lui-même, car un job "silencieux" ne se déclenche jamais.
- Taux d'erreur ligne à ligne (proportion de records rejetés dans un job Bulk) : alerte si le taux dépasse un seuil, par exemple 1%, révélateur d'un problème de qualité de données amont.
Le silence n'est pas un signal de succès. Un data stream qui ne s'exécute plus du tout (connecteur désactivé par erreur, credentials expirés) ne génère aucune erreur visible — seul un contrôle actif de fraîcheur permet de le détecter.
Documenter et outiller la reprise sur incident
Au-delà de la détection, la vitesse de résolution dépend de la qualité de la documentation opérationnelle :
- Une runbook par pipeline critique, décrivant les étapes de diagnostic (où regarder en premier), les contacts responsables côté source et côté Data Cloud, et la procédure de rejeu.
- Des jobs idempotents (upsert plutôt qu'insert) permettant un rejeu sans risque de doublon en cas d'incident partiel.
- Un tableau de bord centralisé regroupant l'état de tous les data streams critiques, pour donner une vue d'ensemble en quelques secondes plutôt que de naviguer flux par flux dans Setup.
Investir dans la planification et la supervision dès la conception d'un pipeline d'ingestion coûte moins cher que de gérer des incidents de données en production, souvent découverts bien après coup par les équipes métier qui constatent des chiffres incohérents dans leurs tableaux de bord.
Besoin d'aide sur ce sujet ?
Notre équipe DevToSpace accompagne vos projets d'ingestion de données vers Data Cloud et Marketing Cloud Next.
Parler à un expert