Skip to content

Configurer une destination d'export S3

Objectif

Configurer une destination S3 pour exporter les transmissions historisées vers un data lake externe — pour alimenter la BI, la conformité ou l'archivage long terme. À la fin du parcours, vous aurez une destination active, un premier job d'export réussi, et la transaction de référence retrouvable dans l'entrepôt.

Durée estimée : 15 minutes • Rôle requis : platform-governor (le module Export n'est accessible qu'aux administrateurs plateforme)

Avant de commencer

Assurez-vous d'avoir :

  • Un bucket S3 existant (AWS, MinIO, Scaleway, OVH Object Storage, etc.) avec un préfixe dédié à ASACI (ex. asaci/transactions/).
  • Le endpoint S3 correspondant (https://s3.eu-west-3.amazonaws.com, https://minio.entreprise.ci…) et la région du bucket.
  • Une paire de credentials S3 (Access Key Id + Secret Access Key) avec droits d'écriture sur le bucket. Vous les saisirez directement dans le formulaire — la console les persiste en Vault et ne les relit plus ensuite.
  • Un businessDay clôturé (la veille au minimum) pour pouvoir tester un export immédiat.

Credentials non relisibles après création

Le Secret Access Key est un champ password dans le formulaire. Une fois la destination créée, le secret n'est plus relisible depuis la console. Pour le faire tourner, il faudra soit créer une nouvelle destination, soit demander à l'équipe exploitation d'ajuster directement le secret en Vault.

Étape 1 — Ouvrir le module Export

Menu Données ▸ Export des données. Vous arrivez sur l'onglet Destinations.

Onglet Destinations

Si c'est la première destination, la liste est vide et les KPIs en haut affichent 0.

Étape 2 — Créer la destination

En haut à droite, cliquez sur le bouton orange « Nouvelle destination ». Un volet latéral s'ouvre avec la fenêtre « Nouvelle destination ».

Section Identité

ChampValeur d'exemple
Nomdata-lake-prod
DescriptionExport quotidien Parquet vers le data lake BI Production
ActivéeON (par défaut)

Type immuable

Le Type affiché dans le formulaire est Parquet sur S3 (immuable). Aujourd'hui, c'est le seul type d'export proposé — vous ne pouvez pas changer la cible vers un autre format.

Section Cible S3

ChampValeur d'exemple AWSValeur d'exemple MinIO
Endpointhttps://s3.af-south-1.amazonaws.comhttps://minio.entreprise.ci
Régionaf-south-1auto
Bucketasaci-dwh-prodasaci-archive
Préfixeasaci/transactionsasaci/transactions
Path-style accessOFFON (par défaut)

Path-style access

La bascule Path-style access est ON par défaut dans le formulaire — adaptée à MinIO/Ceph et la plupart des fournisseurs S3-compatibles. Ne la passez OFF que si votre fournisseur exige strictement le mode virtual-hosted style (cas rare en 2026 — AWS supporte les deux).

Section Format Parquet

OptionValeur par défautCommentaire
CompressionSNAPPYSNAPPY / GZIP / ZSTD / NONE.
Row group (MiB)128À ajuster selon le moteur d'analyse aval.
Taille fichier cible (MiB)256Évite la fragmentation.
Écrire le manifestONProduit _manifest.json par jour métier.
Dictionary encodingONCompression supplémentaire pour les colonnes à faible cardinalité.

Section Chiffrement

ChampValeur par défautCommentaire
ModeNONEChiffrement Parquet côté client — à ajuster selon votre politique.

Section Credentials

ChampObligatoireCommentaire
Access Key IdClé d'accès S3 (placeholder AKIA…).
Secret Access KeySecret correspondant. Champ password — non relisible après enregistrement.

Étape 3 — Valider

Cliquez sur « Créer » en bas du volet.

La destination apparaît dans la liste avec :

  • Activée : ON
  • Planification : 0 2 * * * (par défaut tous les jours à 02h00, à ajuster ensuite si besoin)
  • Prochain run : J+1 à 02h00
  • Dernier job : Aucun

Le job ne démarre pas tout de suite

La destination devient immédiatement active, mais aucun job n'est lancé tant que le cron ne déclenche pas. Si vous voulez vérifier maintenant, déclenchez un export manuel à l'étape suivante.

Étape 4 — Tester la connexion (recommandé)

Sur la ligne de la destination, cliquez sur 🔌 Tester la connexion dans la colonne Actions. La plateforme tente une opération S3 légère (vérification d'accès au bucket sans écriture) et remonte un message :

  • Connexion OK — le secret Vault est valide, le bucket est accessible. Vous pouvez lancer un export.
  • AccessDenied / NoSuchBucket / SignatureDoesNotMatch → corrigez la configuration ou voir l'équipe exploitation avant de lancer un job (voir l'encadré En cas d'échec plus bas).

Étape 5 — Lancer un export manuel de test

Sur la ligne de la destination, cliquez sur ▶ Lancer maintenant dans la colonne Actions. Le job se met en file d'exécution selon la planification configurée sur la destination — il sera exécuté immédiatement (déclencheur MANUAL) en mode Append par défaut.

Bascule sur l'onglet Exécutions : un nouveau job apparaît, avec :

ColonneValeur attendue
StatutSuccès (🟢) si tout va bien — Partiel (🟠) ou Échec (🔴) en cas de souci.
DéclencheurMANUAL.
ModeAppend (par défaut).
RecordsNombre de transactions effectivement écrites.
BusinessDayJournée métier prise en compte.

Cliquez sur 👁️ pour voir le détail. Vous y trouvez la référence du fichier _manifest.json produit, les compteurs de records et le message d'erreur éventuel.

Mode Overwrite

Si vous devez rejouer un export sur un jour où des fichiers ont déjà été écrits (par exemple parce qu'un mapping a été corrigé après coup), faites une rotation manuelle en mode Overwrite — la destination réécrit le dossier {businessDay} complet sans garder les anciens fichiers.

En cas d'échec

  • AccessDenied ou InvalidAccessKeyId → secret Vault absent ou invalide. Voir l'équipe exploitation.
  • NoSuchBucket → bucket inexistant ou faute de frappe. Vérifiez le champ Bucket de la destination.
  • SignatureDoesNotMatch → endpoint ou région incorrect. Pour AWS, le couple endpoint+région doit être cohérent (s3.eu-west-3.amazonaws.comeu-west-3).
  • Timeout → réseau bloqué entre le cluster ASACI et le bucket. Voir l'équipe réseau.

Étape 6 — Vérifier dans le bucket S3

Depuis votre client S3 (CLI, console AWS, MinIO Browser, S3 Browser…), parcourez le sous-dossier {prefix}/{businessDay}/. Vous y trouverez les fichiers .parquet écrits par le job, et — si l'option Écrire le manifest est ON — un fichier _manifest.json qui liste les fichiers, leurs tailles et leur cohérence (nombre de records).

Étape 7 — Vérifier une transaction précise

De retour dans la console, onglet Transactions du module Export (breadcrumb Traçabilité transactions) :

  1. Récupérez un eventId d'une transaction du jour exporté. Vous le trouvez dans le détail d'une transmission (section Metadata) ou dans une ligne de la piste d'audit correspondante.
  2. Collez-le dans le champ « Identifiant de la transaction » (placeholder : Coller un eventId).
  3. Cliquez sur Voir.

Vous voyez l'historique d'export pour cette transaction — la destination que vous venez de créer doit y figurer en EXPORTED avec l'horodatage et la référence du job.

eventId, pas correlationId

Ce champ attend un eventId au format CloudEvents UUID v4 — pas le correlationId métier qu'on utilise pour les transmissions de bout en bout. Les deux identifiants existent côte à côte ; veillez à coller le bon.

Étape 8 — Ajuster la planification (optionnel)

Si la planification par défaut (0 2 * * *) ne convient pas, retournez sur la destination, action 🖊️ Modifier, et ajustez l'expression cron.

Exemples :

CronQuand
0 2 * * *Tous les jours à 02h00.
0 */6 * * *Toutes les 6 heures.
0 1 * * 1-5Lundi → vendredi à 01h00.
0 1 1 * *Le 1er de chaque mois à 01h00.

Choisir la fréquence

  • Données BI quotidienne : 1 fois par jour, après 01h00 (les flux sont calmes).
  • Archivage légal : 1 fois par jour suffit, plage horaire creuse.
  • Streaming temps réel : préférez une intégration directe au broker data-capture plutôt que cet export — il est batch par conception.

Checklist de fin de parcours

  • [ ] La destination apparaît dans l'onglet Destinations avec Activée = ON et le badge Type = Parquet sur S3.
  • [ ] Le test de connexion (🔌) renvoie OK.
  • [ ] Un job manuel s'est terminé avec Statut = Succès.
  • [ ] Les fichiers .parquet (et _manifest.json si l'option est ON) sont visibles dans le bucket à l'emplacement {prefix}/{businessDay}/.
  • [ ] Une transaction du jour est retrouvée dans l'onglet Transactions via son eventId.
  • [ ] La planification cron est ajustée à votre besoin.

Points d'attention

  • Append vs OverwriteAppend ajoute de nouveaux fichiers part-*.parquet au dossier du businessDay sans toucher aux existants ; Overwrite repart du vide pour ce jour. Utilisez Append pour les exports incrémentaux, Overwrite pour rejouer après correction.
  • Conservation source — la file data-capture qui alimente le module a sa propre rétention. Si elle est dépassée avant que vous corrigiez un export bloqué, des données peuvent être perdues. Surveillez les KPIs Erreurs (24h) et Jobs réussis (24h) quotidiennement.
  • Écrire le manifest — utile pour l'ingestion incrémentale par votre data lake aval (Snowflake, Athena, BigQuery…). Si désactivé, le data lake doit lister le dossier S3 lui-même pour découvrir les fichiers nouveaux.

Voir aussi

Documentation ASACI Santé Connect