J'ai eu une fois une table et elle était brillante et belle. Il a tenu toutes les transactions financières pour une organisation. Et puis nous avons commencé à y charger des données.
Au cours du mois en cours, ils peuvent énoncer et reformuler des valeurs aussi souvent qu'ils le souhaitent. Au cours des 10 derniers jours du mois, ils reformulaient les chiffres -> exécutaient le traitement ETL -> examinaient les rapports plusieurs fois par jour. Une fois le mois terminé, les livres sont scellés et ils ne peuvent plus modifier les valeurs.
C'est incroyable le volume de données financières générées par une société de services financiers… Ce que nous n'avions pas compris avec notre ensemble de données de test, c'est que le volume de données allait rendre leurs procédures de fin de mois intenables. Il a fallu de plus en plus de temps pour supprimer les "données du mois en cours" avant de les remplacer par le nouveau cycle d'essai.
Nous devions faire quelque chose pour accélérer le traitement sans rompre la liste non cataloguée de "qui sait quoi" qui dépend de la table MonthlyAllocation. J'ai décidé de jouer au magicien et d'extraire la nappe de dessous. Je suis allé à la vieille école et utilisé une vue partitionnée . Les données comportaient déjà un indicateur IsComplete. J'ai donc créé deux tables, chacune avec des contraintes de vérification différentes: MonthlyAllocationComplete, MonthlyAllocationInComplete.
J'ai ensuite créé la vue partitionnée avec le même nom que la table d'origine: MonthlyAllocation. Aucun processus n’a été aussi sage sur le changement physique que nous avons apporté à la base de données. Aucun rapport n'a été signalé, aucun des analystes disposant d'un accès direct n'a signalé de problème avec cette "table" avant ou après.
Histoire cool frère, mais où vas-tu?
Et si ils avaient une convention de nommage ici, tbl_MonthlyAllocation? Maintenant quoi? Est-ce que nous passons de nombreuses heures de travail dans chaque ETL, chaque rapport, chaque feuille de calcul ad hoc dans l'organisation et leur mise à jour pour utiliser vw_MonthlyAllocation? Et bien sûr, tous ces changements passent par le panneau de changement, processus toujours rapide et sans douleur.
Votre patron pourrait demander: Quelle est la récompense pour l'entreprise pour tout ce travail à nouveau?
L'autre option consiste à laisser cette vue nommée tbl_ et à ne pas passer tout ce temps à tester, mettre à jour et déployer du code. Ce qui devient une anecdote amusante que vous expliquez à toutes les nouvelles recrues, et à celles ayant une capacité d'attention limitée, qui doivent travailler avec la base de données pour savoir pourquoi vous n'êtes pas cohérent avec la dénomination des objets.
Ou vous ne doublez pas les objets avec des métadonnées redondantes. La base de données vous dira avec plaisir ce qu'est une table, quelle est une vue, quelle est une fonction table, etc.
Les conventions de nommage sont bonnes, mais ne vous mettez pas dans une impasse.
Class
?