Skip to content

Export des données

URL : /data-export/{onglet} (ex. /data-export/destinations) • Menu : Données ▸ Export des donnéesPermission requise : organization_read + internal_* selon l'onglet

Module d'exportation des transactions vers un entrepôt de données externe (data lake S3). Il publie les transmissions historisées au format colonne (Parquet par défaut), à intervalle régulier et/ou à la demande, vers un ou plusieurs buckets configurés.

Export des données — onglet Destinations

Vue d'ensemble

L'écran est divisé en trois onglets alignés en haut de page :

OngletVocationPermission requise
DestinationsConfigurer les emplacements de destination (S3, etc.).organization_read
ExécutionsSuivre les jobs d'export (planifiés ou manuels).organization_read
TransactionsVérifier l'export d'une transaction précise par son identifiant.transaction_read

Quatre KPI cards en haut récapitulent l'état du module — toutes calculées sur une fenêtre fixe de 24 h (sauf Destinations actives, qui est instantané) :

KPIFenêtreDescription
Destinations activesInstantanéNombre de destinations dont la bascule Activée est sur ON.
Jobs réussis (24h)24 hNombre de jobs terminés en Succès sur les 24 dernières heures.
Records exportés (24h)24 hNombre cumulé de transactions effectivement écrites en destination sur 24 h.
Erreurs (24h)24 hNombre de jobs ayant échoué ou marqués Partiel sur 24 h.

Onglet Destinations

Liste des emplacements de destination configurés.

Toolbar

  • Recherche : Rechercher une destination (par nom).
  • Sélecteur de colonnes (icône grille).
  • Bouton rafraîchir (icône cycle).
  • Bouton orange « Nouvelle destination ».

Colonnes

ColonneDescription
DestinationBloc avec nom logique (libellé), description courte et chemin cible (bucket/préfixe).
TypeBadge Parquet sur S3 — pour l'instant le seul type proposé, immuable une fois la destination créée.
ActivéeBascule ON/OFF — coupe la destination sans la supprimer.
PlanificationConfigurée / Aucune. Le détail (cron) est visible à l'édition.
Prochain runHorodatage prévu du prochain job, ou si non planifié.
Dernier jobStatut (Succès, Partiel…) + date du dernier job exécuté.
ActionsQuatre icônes : 🖊️ Modifier • 🔌 Tester la connexion • ▶ Lancer maintenant • 📋 Voir les jobs (filtre l'onglet Exécutions sur cette destination).

Créer une destination

Le bouton « Nouvelle destination » ouvre un volet titré « Nouvelle destination » avec le sous-titre « Configurer une nouvelle cible d'export Parquet sur S3. ». Le Type est Parquet sur S3 (étiqueté immuable) — c'est le seul type proposé aujourd'hui.

Le volet est organisé en 5 sections :

Section Identité

ChampObligatoireCommentaire
NomNom logique unique de la destination.
DescriptionNonTexte libre.
ActivéeBascule ON/OFF, ON par défaut à la création.

Section Cible S3

ChampObligatoireExemple
Endpointhttps://s3.af-south-1.amazonaws.com
Régionaf-south-1
Bucketasaci-dwh-prod
PréfixeNonasaci/transactions
Path-style accessBascule, ON par défaut. À garder ON pour MinIO/Ceph et la plupart des fournisseurs S3-compatibles. À mettre OFF uniquement si le fournisseur exige le mode virtual-hosted style.

Section Format Parquet

ChampValeur par défautCommentaire
CompressionSNAPPYCombobox : SNAPPY / GZIP / ZSTD / NONE.
Row group (MiB)128Taille des row groups Parquet.
Taille fichier cible (MiB)256Taille cible d'un fichier Parquet.
Écrire le manifestONProduit un _manifest.json par jour métier — pratique pour l'ingestion incrémentale.
Dictionary encodingONEncodage par dictionnaire Parquet — réduit la taille pour les colonnes à faible cardinalité.

Section Chiffrement

ChampValeur par défautCommentaire
ModeNONECombobox du chiffrement Parquet côté client. À ajuster selon votre politique de sécurité.

Section Credentials

🛡️ « Stockés dans Vault — non lisibles ensuite. » (note d'avertissement affichée dans le formulaire)

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

Boutons : AnnulerCréer.

Credentials saisis dans le formulaire

Contrairement aux autres secrets de la plateforme (qui passent par Vault au démarrage du micro-service), les credentials S3 d'une destination sont saisis ici à la création et persistés en Vault par la console. Ils ne sont plus relisibles ensuite — vous devrez créer une nouvelle destination ou contacter l'équipe exploitation pour les modifier.

Validation à la création

La création d'une destination déclenche une validation backend qui peut tester la connectivité au bucket S3. Avec des credentials invalides ou un bucket inaccessible, la console affiche un toast d'erreur générique « Une erreur s'est produite, réessayer plus tard. » — vérifiez les logs côté data-export pour la cause exacte.

Credentials S3

Les clés d'accès AWS / MinIO ne sont pas saisies dans ce volet : elles sont injectées au niveau du micro-service data-export via Vault. Demandez à l'équipe exploitation de provisionner le secret correspondant avant de créer la destination.

Structure du dépôt

La structure d'un dossier exporté est {prefix}/{businessDay}/{partition}/part-{n}.parquet — chaque journée métier (businessDay) est isolée dans son sous-dossier, ce qui facilite l'ingestion incrémentale par votre data lake.

Onglet Exécutions

Suivi opérationnel des jobs d'export — qu'ils soient planifiés (cron) ou déclenchés manuellement. Le compteur affiche le nombre total de jobs sur la fenêtre filtrée (ex. « 41 éléments trouvés »).

Toolbar

  • Filtre période Ce mois-ci (défaut), Aujourd'hui, Cette semaine, Cette année, Personnalisé.
  • Recherche : Rechercher un Job ID.
  • Bouton Filtres (panneau).
  • Sélecteur de colonnes + bouton rafraîchir.

Colonnes

ColonneDescription
Job IDIdentifiant unique du job. Affiché en badge orange copiable.
DestinationNom de la destination ciblée.
BusinessDayJournée métier traitée (format YYYY-MM-DD).
StatutSuccès (🟢), Partiel (🟠), Échec (🔴), En cours… (badge coloré).
DéclencheurSCHEDULED (cron) ou MANUAL (lancement à la main).
ModeAppend (par défaut, ajoute aux fichiers existants) ou Overwrite (réécrit les fichiers du businessDay).
RecordsNombre de transactions effectivement écrites par le job.
Actions👁️ Voir le détail.

Statut Partiel

Un job Partiel (orange) a réussi à écrire une partie des transactions du businessDay mais a échoué avant la fin. Ouvrez le détail pour voir combien de records sont écrits et l'erreur de blocage. Un re-lancement manuel en mode Overwrite permet de reprendre depuis le début sans dupliquer.

Filtres

Bouton Filtres : panneau latéral avec filtrage par Destination et Statut.

Détail d'un job

Cliquez sur 👁️ pour ouvrir le volet « Détail du job » : métadonnées (jobId, destinationId, businessDay, mode, trigger, startedAt, endedAt, duration), compteurs de records, référence du manifest, et message d'erreur en cas d'échec.

Onglet Transactions

Breadcrumb : « Export des données ▸ Traçabilité transactions ». Vue transaction par transaction — utile pour répondre à une question précise du type « est-ce que cette transaction X a bien été exportée ? ».

H2 : « Historique d'export d'une transaction », sous-titré « Suivi d'une transaction à travers les jobs et destinations. »

Recherche

Champ unique « Identifiant de la transaction » (placeholder « Coller un eventId »). Collez l'eventId au format CloudEvents UUID v4 — c'est l'identifiant émis par data-capture, distinct du correlationId métier de la transmission. Cliquez ensuite sur Voir.

eventId vs correlationId

Le module attend un eventId (UUID v4), pas un correlationId. Le correlationId corrèle un échange métier de bout en bout (qui peut comporter plusieurs événements liés) ; l'eventId identifie un événement de capture unique. Vous trouvez l'eventId dans les audit-events ou dans la metadata d'une transmission.

Résultat

L'écran affiche l'historique d'export de la transaction :

  • Pour chaque destination active à la date de capture : statut (EXPORTED, PENDING, FAILED, DLQ), horodatage de l'export, référence du job qui a écrit la ligne.
  • Si la transaction n'est dans aucun fichier exporté : message « Pas encore exporté ».

DLQ — Dead Letter Queue

Une transaction marquée DLQ est restée bloquée après épuisement des tentatives automatiques de l'export. Il faut alors investiguer la cause (intégrité de la donnée, accès à la destination) et rejouer manuellement via le micro-service data-export. Contactez l'équipe exploitation.

Bonnes pratiques

  • Une destination par usage métier : ne mélangez pas, dans un même bucket, des données qui n'ont pas la même cible (BI, conformité, archivage long terme). Configurez plusieurs destinations distinctes.
  • Vérifiez le quota du bucket avant d'activer une destination sur un historique long. Le mode FULL sur un an de transactions peut peser plusieurs téraoctets.
  • Surveillez les KPI d'échec quotidiennement — un blocage prolongé sur DLQ peut faire perdre des données si la rétention de la file de capture est dépassée.
  • Testez avec une plage limitée (1 jour) avant d'activer un export complet sur l'historique.

Voir aussi

Documentation ASACI Santé Connect