[đ ] Operations Automation #1: SĂ©parer les donnĂ©es sources des snapshots dâexĂ©cution dans une architecture de collecte
⚠Résumé de GPT-5.5
Retour sur le passage Ă PostgreSQL de donnĂ©es de rĂ©fĂ©rence qui ne cessaient de bouger entre JSON, CSV et DuckDB, en sĂ©parant Ă©lĂ©ments probants dâorigine, observations, donnĂ©es de rĂ©fĂ©rence, snapshots dâexĂ©cution et artefacts de livraison.
Les données de référence ne cessaient de bouger entre JSON, CSV et DuckDB
Pendant plusieurs jours de mise en place du flux de collecte, de revue, dâexĂ©cution et de livraison des donnĂ©es, toutes sortes de problĂšmes ont continuĂ© Ă surgir. Comme je nâai jamais vraiment appris ni utilisĂ© les bases de donnĂ©es sĂ©rieusement, je changeais souvent de mĂ©thode de stockage, et chaque changement ne se limitait jamais Ă un simple remplacement.
Au dĂ©but, je collectais les donnĂ©es en JSON et en CSV, puis jâavais ajoutĂ© DuckDB pour pouvoir les consulter. Mais les sorties des workers se sont mĂ©langĂ©es Ă une structure oĂč le coordinateur reconstruisait sans cesse la base de donnĂ©es, et je perdais constamment la distinction entre donnĂ©es sources et donnĂ©es de rĂ©fĂ©rence.
Jâai aussi prĂ©parĂ© un plan pour construire la base de donnĂ©es avec MySQL. Mais le problĂšme nâĂ©tait pas MySQL en lui-mĂȘme. Le problĂšme venait dâune structure oĂč plusieurs workers ou scripts mettaient directement Ă jour les donnĂ©es de rĂ©fĂ©rence. Avec cette approche, les mises Ă jour simultanĂ©es, les conflits, la responsabilitĂ© et les retours en arriĂšre risquaient de se rĂ©pĂ©ter.
Jâai ensuite examinĂ© dâautres approches, mais le problĂšme de fond restait le mĂȘme. Lorsque les frontiĂšres entre donnĂ©es collectĂ©es, donnĂ©es de rĂ©fĂ©rence, donnĂ©es dâexĂ©cution et artefacts de livraison sont floues, le mĂȘme problĂšme finit par revenir.
La responsabilité des mutations comptait plus que le produit de base de données
Le passage à PostgreSQL ne résolvait pas le problÚme à lui seul. Avant de choisir une base de données, il fallait décider qui avait le droit de modifier les données de référence.
Les workers laissent les Ă©lĂ©ments probants dâorigine et leurs observations sous une forme append-only. Ils ne modifient pas directement les donnĂ©es de rĂ©fĂ©rence. Le coordinateur examine ces Ă©lĂ©ments et ces observations, puis met Ă jour les donnĂ©es et les valeurs de rĂ©fĂ©rence. Centraliser Ă un seul endroit la responsabilitĂ© de modifier ces donnĂ©es permettait aussi de retrouver ce quâil fallait annuler lorsquâun conflit survenait.
Jâai rĂ©parti les rĂŽles dans PostgreSQL
Aujourdâhui, en passant Ă une base PostgreSQL, jâai donc aussi rĂ©organisĂ© tout le flux mis en place pendant plusieurs jours. Au lieu de tout traiter comme un seul bloc de base de donnĂ©es, jâai sĂ©parĂ© les rĂŽles.
- ĂlĂ©ments probants dâorigine
- Stocker les Ă©lĂ©ments probants et les valeurs dâorigine collectĂ©s depuis des sources publiques
- Conserver les valeurs traitĂ©es et les Ă©tats dans un historique sĂ©parĂ© au lieu dâĂ©craser la source
- Les fichiers JSON et CSV peuvent servir de miroirs de ces éléments, mais ne sont pas les données de référence
- Observations
- Les workers soumettent uniquement les observations de leur canal de collecte dans un registre append-only
- La dĂ©couverte et lâenrichissement sont sĂ©parĂ©s en deux rĂŽles diffĂ©rents
- Les workers ne modifient pas directement les données de référence
- Données de référence
- Le coordinateur examine les éléments probants et les observations
- Seules les valeurs validées sont intégrées aux données de référence selon la structure définie
- Les vues servent de surfaces de calcul, de revue et dâexport
- Snapshots dâexĂ©cution
- Une vue de collecte ne sert pas directement de base Ă lâexĂ©cution rĂ©elle
- Les cibles qui passent les contrÎles de déduplication et de qualité sont figées dans un snapshot à un instant donné
- Les rĂ©sultats dâexĂ©cution, les exclusions et les Ă©tats de suivi sont gĂ©rĂ©s sĂ©parĂ©ment des donnĂ©es de rĂ©fĂ©rence
- Artefacts de livraison
- Les fichiers livrĂ©s au format CSV, Google Sheets, Excel ou pour vox.ai sont gĂ©nĂ©rĂ©s depuis les donnĂ©es de rĂ©fĂ©rence ou les snapshots dâexĂ©cution
- Ce sont des artefacts destinĂ©s Ă lâaffichage ou Ă la livraison
- Ils ne sont pas ensuite modifiĂ©s comme sâils Ă©taient les donnĂ©es de rĂ©fĂ©rence
Le flux devenait traçable des Ă©lĂ©ments probants jusquâĂ lâexĂ©cution et Ă la livraison
Jâai ainsi terminĂ© un flux oĂč il devenait possible de suivre lâendroit oĂč sâaccumulent les Ă©lĂ©ments probants collectĂ©s, ce que les workers laissent, quelles valeurs deviennent des valeurs de rĂ©fĂ©rence, quel snapshot sert Ă lâexĂ©cution rĂ©elle et ce qui devient un artefact de livraison.
Bien sĂ»r, cette structure reste encore trĂšs imparfaite et il y aura beaucoup de choses Ă retoucher. Je vais continuer Ă tester, recueillir des retours et corriger, et toutes sortes de grands bouleversements finiront sĂ»rement par se produire. Câest comme cela que le flux, la structure du harness et mon intuition continueront tous Ă Ă©voluer.
Je partage cela au cas oĂč la mise en place de mon flux pourrait aider quelquâun.
Laisser un commentaire