Brevet FR3088740A1 — publié le 20200522

TRAITEMENT DE DONNÉES ITÉRATIF [0001] L'objet de la présente concerne de façon générale la technologie de l'information. Plus spécifiquement, il vise la technologie de base de données et les mécanismes pour traiter des données dans un environnement de base de données. CONTEXTE [0002] Une fonctionnalité des systèmes de base de données, tels que les systèmes de base de données implémentant des applications de mégadonnées, est de traiter les données brutes afin de fournir les résultats du traitement à d'autres plateformes telles que les platetbrmes de recherche ou de clients. Le traitement de données brutes implique souvent un volume de 10 données important et il doit être achevé dans un certain délai de traitement avec des ressources matérielles raisonnables. Par conséquent, des solutions sont recherchées pour réaliser le traitement de données brutes de façon efficace en ternies d'efficacité de ressources de calcul. [0003] Des mécanismes, tels que la structure connue MapReduce, à laquelle p. ex. US 2017/0083588 Al fait référence, permutent l'accélération du traitement par la 15 parallélisation des stades de traitement et l'exécution de ces stades d'une manière distribuée. Le traitement est divisé en sous-problèmes partiels et les sous-problèmes sont traités par des noeuds locaux respectifs. Les résultats de ce traitement local sont ensuite agrégés pour former le résultat combiné. La procédure Map locale implémente une première partie du traitement local et génère des données de valeurs clés (p. ex. en décomposant une ligne en mots), alors que 20 la procédure Reduce fournit une fonction de synthèse (en comptant les mots reconnus par la fonction Map). MapReduce orchestre le traitement en rassemblant les noeuds locaux distribués, en exécutant diverses tâches en parallèle, en gérant toutes les communications et les transferts de données entre les diverses parties du système et en prévoyant la redondance et la tolérance aux fautes. n - L) RÉSUMÉ [0004] Selon un premier aspect, un procédé de traitement itératif de données dans un système de base de données est fourni. Le système de base de données inclut un premier stockage en antémémoire d'une donnée de valeur clé qui est le résultat d'itérations précédentes de traitement de données entrées et un deuxième stockage d'une donnée agrégée en antémémoire qui est le résultat d'itérations précédentes d'une donnée de valeur clé stockée dans la première antémémoire. Dans une itération actuelle, le système de base de données reçoit une autre donnée entrée relative à la donnée entrée des itérations précédentes. Le système de base de données transforme l'autre donnée entrée en une autre donnée de valeur clé et stocke l'autre donnée de valeur clé dans la première antémérnoire en plus de la donnée de valeur clé stockée qui est le résultat d'itérations précédentes de traitement de données entrées. Le système de base de données traite par ailleurs l'autre donnée de valeur clé et la donnée agrégée stockée dans la deuxième antémémoire pour former une donnée agrégée actualisée et stocke la donnée agrégée actualisée dans la deuxième antémérnoire pour usage dans d'autres itérations. Le système de base de données fournit aussi la donnée agrégée actualisée à au moins un client. [0005] Selon un second aspect, un système de base de données correspondant agencé pour exécuter le procédé est fourni. [0006] Selon un troisième aspect, un programme informatique stocké sur un support. de stockage est fourni, lequel quand il est exécuté par une machine informatique fournit la fonctionnalité correspondante à la machine informatique. [0007] D'autres aspects optionnels sont exposés également, BRÈVE DESCRIPTION DES DESSINS [0013] Les présents mécanismes seront décrits en faisant référence aux dessins qui les accompagnent. Des numéros de référence similaires indiquent généralement des éléments similaires fonctionnellement identiques. [0014] La FIG. 1 montre de façon schématique un système e base de données conforme à des modes de réalisation. [0015] La FIG. 2 est une visualisation d'un processus de traitement de données tel il est décrit dans les présentes à un niveau général. [0016] La FIG. 3 montre un exemple plus é d'un système de base de données avec une première et une deuxième antémérno ire. [0017] La FIG. 4 montre un autre exemple plus détaillé du système de base de données avec une première et une deuxième antérnémoire distribuées. [0018] La FIG. 5 décrit un exemple particulier de traitement de données en utilisant la première et la deuxième antémémoire. 5 [0019] La FIG. 6 est relative à un autre exemple particulier de traitement de données en utilisant la première et la deuxième witémémoire. [0020] La FIG. 7 illustre un système informatique exemplaire implémentant un système de base de données ou un noeud de système de base de données agencé pour mettre en oeuvre les mécanismes décrits dans les présentes. 10 DESCRIPTION DÉTAILLÉE [0022] Ainsi que souligné dès le début, les méthodologies décrites dans les présentes concernent des environnements de base de données et un système qui offre des données traitées aux clients. Le terme « base de données » est censé englober tous types de systèmes de stockage d'information structures tels que des bases de données standard autonomes comme SQL Server® ou les bases de dom-tees Oracle® ainsi que des systèmes de stockage distribués et/ou propriétaires plus complexes (p. ex. Cloudera® ou MapR® ou HortonWorks® Hadoop, Spark, Hive, Apache Hadoop® Distributed File System [HDFS] etc.); les bases de données relationnelles incluant les systèmes de gestion de base de données ou les systèmes de base de données orientée objet, entre autres 20 [0023] La base de données fournit des données traitées à des entités clientes telles que les utilisateurs de terminaux, d'applications (p. ex, des navigateurs installés sur les terminaux des utilisateurs, etc.) ou à d'autres bases de données. L'apport de données est effectué soit à la demande d'un client, par une transmission non sollicitée d'une base de données au client (poussée) ou par tout autre mode de transmission de données électroniques, 25 [0024] La Fig. 1 illustre, à un niveau schématique, un environnement de base de données I. Un système de base de données 2 reçoit des données entrées provenant d'une source de données entrées 3. En comparaison avec les données détenues et fournies par le système de base de données 2, la donnée entrée reçue de la source de données entrées 3 est une donnée non traitée 4 (brute), En d'autres termes, la donnée entrée reçue de la source de données entrées 3 fait d'abord i'objet d'un traitement de donnée pat le système de base de données 2 avant que la donnée traitée ne soit fournie par le système de base de données 2 à un ou plusieurs clients 7. Dans ce sens, te système de base de données 2 fonctionne comme un médiateur de traitement de données transformant des données entrées brutes en données traitées requises par les clients 7. La source de données entrées est, p. ex. un autre système de base de données, toute autre station capable de stocker et de transmettre des données, ou tout support de stockage qui peut être lu et traité par le système de base de données 2. [0025] Le traitement de la donnée entrée obtenue de la source de données ennées 3 est 10 effectué par le système de base de données 2 en utilisant les ressources de traitement 6. Les ressources de traitement 6 incluent au moins une unité de traitement (p. ex. une unité centrale de traitement, CPU) avec une mémoire correspondante (p. ex. une structure d'antérnernoire hiérarchique et une autre mémoire de travail en option.)], mais incluent généralement une pluralité d'unités de traitement et/ou de noeuds de calcul (voir la FIG. 3 faisant l'objet d'une 15 discussion par la suite) afin d'être capables de traiter les données entrées parallèlement. Dans certains modes de réalisation, ces noeuds de calcul sont distribués entre une pluralité de machines (p. ex. des ordinateurs, des serveurs) faisant du système de base de données 2 un système de base de données distribuée. [00261 Comme expliqué de façon plus détaillée ci-dessous, le système de base de données 2 70 inclut aussi deux antémémoires pour faciliter le traitement de la donnée entrée. La première antémemoire 4 est aussi désignée comme ante:Mémoire de valeurs clés qui est le résultat d'une première transformation sur la base de la donnée entrée. Étant généralement connue de l'homme de métier, une valeur clé fait référence à un modèle de donnée selon lequel la donnée est exprimée comme une collection de tuples 2 sous la forme , chaque 75 élément étant une paire valeur attribut. La deuxième antemémoire 5 est aussi désignée comme antémémoire d'agrégation et stocke des données agrégées qui sont le résultat d'une deuxième transformation sur la base des données de valeurs clés stockées dans la première antérnémolre. L'agrégation fait référence à l'exécution d'une fonction d'agrégat utilisant au moins une partie de la donnée de valeur clé stockée dans la première antemémoire comme paramètre d'entrée. Des exemples non limitatifs d'agrégation sont des fonctions basiques telles qu'une moyenne, une moyenne -flottante, un compte, un maximum, un minimum, une somme, une déviation normalisée, une valeur n supérieure, une concaténation, une médiane, un rang, etc. ainsi que des fonctions d'agrégat plus complexes qui sont composés de combinaison des fonctions d'agrégat basiques. [0027] L'antémérnoire de valeurs clés 4 et l'antémémoire d'agrégation 5 peuvent être implémentées comme des antémérnoires logiques, c.-à-d. détenues respectivement dans des zones attribuées d'une mémoire de la machine(s) matérielle qui héberge le système de base de données 2. Par exemple, l'antérnémoire de valeurs clés 4 peut être conservée dans une première portion de mémoire de travail ou une portion de disque de la machine(s) matérielle et l'antémémoire d'agrégation peut être conservées dans une deuxième portion de la mémoire de 10 travail ou une portion de disque de la machine(s) matérielle. [0028] La Fig. 2 fait référence à un processus général mis en oeuvre et à une fonctionnalité du système de base de données 2 tel que décrit dans les présentes. De façon générale, le système de base de données 2 traite les données de manière itérative, c.-à-d. qu'une certaine donnée entrée est fournie au système de base de données 2 et est traitée lors d'une première itération, 15 un certain nombre d'autres données entrées est fourni au système de base de données 2, à un moment donné ultérieur, et est ensuite traité lors d'une nouvelle itération, et ainsi de suite. La FIG. 2 est une visualisation d'une itération actuelle, e.-à-d. prise en compte à un certain mc>m.ent dans le temps, Au IO, le système de base de données 2 reçoit une autre donnée entrée relative à la donnée entrée lors d'itérations précédentes. Au 12, le système de base de données 2 20 transforme l'autre donnée entrée en une autre donnée de valeur clé et, au 14, stocke l'autre donnée de valeur clé dans la première antémérnoire 4 en plus de la donnée de valeur clé stockée qui est le résultat d'itérations précédentes de traitement de données entrées. Au 16, le système de base de données 2 traite l'autre donnée de valeur clé et la donnée agrégée stockée dans la deuxième antémémoire 5 pour former une donnée agrégée actualisée. Au 18, le système de base 25 de données stocke la donnée agrégée actualisée dans la deuxième antémérnoire 5 pour usage dans d'autres itérations. Au 20, le système de base de données 2 fournit la donnée agrégée actualisée à au moins un client 7. [0029] Plus spécifiquement, par rapport aux deux activités/fonctions 12 et 14, un système de base de données exemplaire 2 reçoit un ensemble d'un nombre d'enregistrements au cours d'un 30 laps de temps donné, tel qu'une journée, c.-à-d. qu'une itération par jour est réalisée (il faut noter que le laps de temps donné peut être plus long ou plus court selon le cas d'usage, p. ex. 6 une seconde ou moins, dans l'ordre des minutes tel que dix minutes, heures. ni plus longtemps -- l'exemple suivant d'une journée est par conséquent non, limitatif et est utilisé à titre d'illustration uniquement). Par exemple, au jour 40, le système de base de données 2 a reçu 39 ensembles d'enregistrements de données auparavant, au cours des 39 jours précédents, et reçoit 5 maintenant un 40e ensemble d'enregistrements de données. Dans une approche d'un art antérieur, le système de base de données 2 a stocké les 39 ensembles d'enregistrements de données reçus précédemment et a transformé tous les ensembles d'enregistrements de données, càd les 39 ensembles reçus précédemment et le 40e ensemble d'enregistrements de données nouvellement reçu, en données de valeurs clés correspondantes Cependant, selon le présent 10 système, les données de valeurs clés transformées des 39 ensembles d'enregistrements de données reçus précédemment ont déjà été stockées auparavant (au cours des 39 derniers jours) dans l'antémémoire de valeurs clés 4, de sorte que seul le 40e ensemble d'enregistrements de données reçu a besoin d'être transformé en valeur clé au cours de l'itération actuelle au jour 40. [0030] La conservation des données de valeurs clés cumulées lors de diverses itérations 15 précédentes et l'ajout de la donnée de valeur clé de l'interaction actuelle qui est généralement basée sur la donnée entrée actuellement reçue dans l'antémémoire de valeurs clés 4 facilite le travail dans un environnement distribué (p. ex. en utilisant le paradigme de traitement de données MapReduce comme expliqué de façon plus détaillée -i-dessous) parce que de multiples noeuds de traitement peuvent être servis/alimentés par l'antémémoire de valeurs clés 4. De façon 20 générale, l'antémémoire de valeurs clés 4 constitue aussi un entrepôt pour une quelconque agrégation de données subséquentes ou autres traitement en plus de la donnée de valeur clé ée à partir de la donnée entrée au cours de diverses itérations. [0031] Par ailleurs, dans l'éventualité d'une corruption technique au niveau de Pantemémoire d'agrégation 5, la restauration du contenu global de l'antémémoire d'agrégation 5 pourrait 25 nécessiter la donnée de valeur clé cumulée des itérations précédentes qui est mise à disposition par l'antérnémoire de valeurs clés 4, alors que la donnée entrée des itérations précédentes pourrait ne plus être disponible et en fait n'a plus besoin d'être disponible. Par conséquent, dans certains modes de réalisation, le système de base de données 2, au cours de l'itération actuelle, rejette la donnée entrée reçue de la source de données entrées 3 au cours de cette itération après 30 que la transformation en donnée de valeur clé et le stockage de la donnée de valeur clé dans l'antémémoire de valeurs clés 4 (activité 12) ont été conclus. 7 [0032] Plus spécifiquement, par rapport aux deux activités/fonctions 16 et 18, en plus des activités/fonctions 12 et 14 et en continuant à faire référence à l'exemple du jour 40 ci-dessus, il a été noté que le système de base de données d'un art antérieur, au cours d'une itération donnée (p. ex. au jour 40), effectue une agrégation de données sur la base de la donnée de valeur clé d'itérations précédentes et de l'itération actuelle, mais la donnée de valeur clé d'itérations précédentes (c.-à-d. des 39 jours précédents dans l'exemple donné) est identique à ion la plus récente. Par conséquent, le système d'un art antérieur ferait des calculs identiques en grande partie comme dans l'itération précédente (39 des 40 ensembles d'enregistrements de données) afin de réaliser les agrégations. 10 [0033] D'autre par:, le présent système de base de données 2 ne tr lue la donnée de valeur clé générée lors de l'itération actuelle (la donnée de valeur clé du jour 40 dans l'exemple donné) et réutilise en grande partie la donnée agrégée d'itérations précédentes, déjà disponible dans antémémoire d'agrégation 5. Par conséquent, le traitement de l'activité/fonction 16 résulte effectivement en une actualisation, addition ou extension (selon les spécificités de l'agrégation, 15 p. ex. les valeurs moyennes sont actualisées alors que p. ex. les concaténations sont étendues) de la donnée agrégée, comparé à un recaleul entier de la donnée agrégée. D'autres détails exemplaires des activités/fonctions de l'agrégation 16 et 18 sont exposés par ailleurs ci-dessous. [0034] Dans certains modes de réalisation, en référence à la FIG. 3, la transformation de l'autre donnée entrée en une autre donnée de valeur clé est un processus Map d'un traitement 20 de données MapReduce et le traitement de la donnée de valeur clé actualisée dans la première an émérnoire 4, incluant l'autre donnée de valeur clé et la donnée agrégée stockée dans la deuxième antérnémoire 5, est un processus Reduce du traitement de données MapReduce. MapReduce est un modèle de programmation et une implémentation associée pour le traitement et la génération d'ensembles de mégadonnées avec un algorithme parallèle distribué sur un 25 groupement. Un programme MapReduce est composé d'une procédure Map (ou procédé) qui effectue le filtrage et le classement (tels que le classement d'étudiants par le prénom en file d'attente, une file d'attente pour chaque nom) et un procédé de réduction qui effectue une opération de synthèse (tel qu'un compte du nombre des étudiants dans chaque file d'attente, produisant des fréquences de noms). 30 [0035] La structure MapReduce est partieunerement avantageuse pour faciliter le traitement distribué et parallèle. Ainsi, en utilisant MapReduce dans certains modes de réalisation, le système de base de données 2 comprend une pluralité de noeuds de calcul 6. La HG, 3 est un exemple non limitatif avec quatre noeuds de calcul 6A, 6B, 6C et 6D. Par conséquent, une pluralité de processus Map et de processus Reduce sont respectivement exécutés d'une manière parallèle distribuée entre au moins deux de la pluralité des noeuds de calcul 6, [00361 Dans l'exemple de la FIG. 3, les 4 noeuds de calcul 6A, 6B, 6C, 6D comprennent un composant MapReduce fonctionnel 9 et, par conséquent les processus Map et les processus Reduce sont exécutés aux quatre noeuds de calcul 6A, 613, 6C, 6t). Un composant fonctionnel MapReduce 9 est un programme informatique logiciel exécuté par un noeud de calcul 6. Plus spécifiquement, en réponse à l'arrivée de données entrées d'une itération actuelle au système 10 de base de données 2 (activité/fonction 10 de la i:1(11. 10), les processus MAP implémentés par les composants MapReduce 9 des noeuds de calcul 6 mettent en oeuvre les activités/fonctions 12 et 14 telles que décrit ci-dessus en référence à la FIG. 2 d'une manière parallèle et distribuée, c.-à-d, qu'ils transforment la donnée entrée reçue au cours de l'itération actuelle en une donnée de valeur clé 22 et stockent la donnée de valeur clé générée 22 dans Pantémémoire de valeurs 15 clés 4, en plus de la valeur de donnée clé 22 déjà stockée au cours d'itérations précédentes. Par ailleurs, les processus Reduce implémentés par les composants MapReduce 9 des noeuds de calcul 6 mettent en oeuvre les activités/fonctions 16 et 18 comme décrit ci-dessus en référence à la HG. 2 d'une manière distribuée et parallèle, c.-à-d. qu'ils traitent la nouvelle donnée de valeur clé générée 22 stockée dans l'antérnérnoire de valeurs clés 4 ainsi que la donnée 20 agrégée 24 stockée dans l'antérnémoire d'agrégation 5 formant la donnée agrégée actualisée 24 et stockent la donnée agrégée actualisée 24 dans antémémoire d'agrégation 5. [0037] L'échange et l'accès aux données entre les noeuds de calcul 6 et, à la fois, la première antérnémoire 4 et la deuxième antémérnoire 5 sont rendus possibles par une interface 8 telle qu'un bus de données/adresses (dans la mesure où les noeuds de calcul 6 du système de hase de données 2 sont distribués entre plusieurs machines informatiques). [0038] Dans certains modes de réalisation, en faisant maintenant référence à la FIG. 4, la première antémémoire 4 et/ou la deuxième antémémoire 5 sont aussi distribuées sur une pluralité de noeuds de calcul 6. Par conséquent, dans ces modes de réalisation au moins deux noeuds de calcul 6 conservent une partie logique de la première antémérnoire 4 et/ou de la 30 deuxième antémérnoire 5. Par exemple dans certaines implémentations, également décrites par ailleurs ci-dessous, la première antemémoire 4 et/ou la deuxième antérnémoire 5 sont 9 constituées d'un ou de plusieurs fichiers qui sont accessibles au moyen d'un système de fichiers. Dans l'exemple distribué de la FIG. 4, un système de fichiers distribué tel que le EIDFS, permettant une distribution physique des fichiers de la première antémémoire 4 et/ou de la deuxième antémémoire 5 parmi une pluralité de noeuds de calcul 6, et fournit une interface pour 5 lire/écrire les fichiers de façon transparente. [0039] Dans certains modes de réalisation, la donnée de valeur clé 22 est stockée sous la forme d'un ou de plusieurs fichiers, tels qu'un ou plusieurs tichier(s) de langage de balisage étendu (XML) ou des fichier(s) de JavaScript Object Notation (JSON). Cependant, XML et JSON ne 10 facilitent pas spécifiquement le traitement itératif tel que décrit ci-dessus ainsi que les divers calculs d'agrégation. Par ailleurs, la lecture et le décodage des fichiers XML ou JSON nécessitent une quantité de ressources de calcul. Donc dans certains modes de réalisation, en faisant maintenant référence aux FIGS. 5 et 6, la donnée de valeur clé 22 stockée dans la première antémémoire 4 est organisée de façon séquentielle en ce que la clé comprend une date 15 de création de l'enregistrement de données de valeur clé respective. Cela ne tient pas compte du t'aimai de stockage de la donnée de valeur clé 22, c.-à-d. que la donnée de valeur clé 22 est stockée dans un ou plusieurs fichiers (p. ex. XML, JSON, Parquet) ou par exemple dans une base de données relationnelle. [0040] Comme le montre l'exempte de la FIG. 5, les enregistrements de données de valeurs 20 dés stockés dans l'antémémoire de valeurs clés 4 peuvent être structurés de sorte qu'ils comprennent une date ou un horodatage, un ID et une valeur (représentant une ou plusieurs valeurs). La clé identifiant de façon unique un enregistrement peut être donnée à la fois par la date et l'ID. La granularité de la date peut être l'itération, c.-à-d. le jour de l'itération actuelle dans les 40 jours exemplaires exposés ci-dessus. La valeur de la donnée de valeur clé peut aussi 25 être donnée par le format XML ou JSON. En comparaison avec la technologie habituelle basée sur XML ou JSON, cette donnée ou structure de donnée entraîne moins de frais généraux d'accès au disque et donc réduit les opérations I/O de disque ainsi que la charge de réseau. Par ailleurs, le fait d'inclure la date dans la clé de la donnée de valeur clé 22 dans l'antérnémoire de valeur clé 4 facilite un accès aisé (traitement de ressources efficace) à la donnée de valeur 30 clé 22 pour mettre en oeuvre les fonctions d'agrégation. Par exemple, les opérations d'association qui peuvent nécessiter un travail uniquement sur la clé ne décodent pas un fichier JSON. 10 [0041] Dans certains modes de 'arion, en continuant à faire référence aux FRIS. 5 et 6, itern.ent de la donnée de valeur clé 22, de l'autre donnée de valeur clé 22 et de la donnée agrégée 24 stockée dans la deuxième antemémoire 5 pour former la donnée agrégée actualisée 24 comprend l'actualisation d'au moins un résultat d'agrégation 28 tel qu'une somme, une moyenne ou une déviation normalisée, en incorporant en plus l'autre donnée de valeur clé dans ledit au moins un résultat d'agrégation. Dans certains de ces modes de réalisation, la deuxième antémémoire 5 inclut une information de contrôle d'agrégation de données 26 et l'incorporation de l'autre donnée de valeur clé 22 dans ledit au moins un résultat d'agrégation 28 est basée sur l'information de contrôle d'agrégation de données 26. 10 [0042] Dans un exemple simplifié à titre illustratif, l'agrégation (activité/fonction 16 dans la FIG. 2) inclut le calcul d'une valeur de moyenne arithmétique A pour un nombre n de valeurs entrées an qui fait partie de la donnée de valeur clé 22. Dans des itérations précédentes, n valeurs entrées a, (p. ex. la donnée de valeur clé donnée par la date TO à T6 dans la FIG. 5) ont été incluses dans la valeur de moyenne A, formant le résultat d'agrégation 28 des itérations 15 précédentes. Au début de l'itération actuelle, à la date T7, l'amémemoire d'agrégation 5 stocke donc la valeur de moyenne A (- la donnée agrégée 24) ainsi que le nombre de valeurs entrées n informations de contrôle d'agrégation 26). Dans l'itération actuelle, un autre nombre x de nouvelles valeurs entrées ax est en plus inclus dans la valeur de moyenne A, sans recalculer A entièrement en utilisant toutes tes n valeurs entrées an d'itérations précédentes, mais uniquement 20 sur la base de la donnée stockée par l'antémémoire d'agrégation 5 et la donnée de valeur clé 22 nouvellement générée lors de l'itération actuelle. Cela est facilité par l'information de contrôle d'agrégation 26, car une valeur de moyenne actualisée A' (indiquée à titre exemplaire par la valeur MEA dans la deuxième antémémoirc 5 de la HG. 5, identifiée par la date 17 et l'ID 99) est donnée en calculant la somme de A et les nouvelles valeurs entrées ax de l'itération actuelle 25 divisée par n iant le résultat d'agrégation actualisée 28 de l'itération de traitement actuelle. [0043] Les spécificités de la donnée de contrôle d'agrégation 26 dépendent des spécificités de l'agrégation. De façon générale, la donnée de contrôle d'agrégation 26 inclut toutes les données qui sont nécessaires pour actualiser la donnée agrégée 24 seulement en utilisant la donnée 30 agrégée actuelle 24 et la nouvelle donnée de valeur clé générée 22 sans avoir à recourir à la 11 donnée de valeur clé précédente 22 d'itérations précédentes. Pour certaines agrégations que le compte) cela peut être possible sans une quelconque donnée de contrôle d'agrégation 26. .0044; Dans certains modes de réalisation, toujours en référence à la FIG. 5, la donnée agrégée 24 dans l'antérnémoire d'agrégation 5 est actualisée à chaque itération sur !a base de la donnée de valeur clé 22 générée dans l'itération donnée et de la donnée conservée dans rantérnernoire d'agrégation 5 (c.-à-d.la donnée agrégée 24 et, en option, la donnée de contrôle d'agrégation 26) tel que décrit ci-dessus, jusqu'à une itération finale. Comme cas d'usage non limitatif, cela peut être appliqué au domaine technique du traitement d'image ou chaque ligne de pixels de l'image devant être traitée constitue un ensemble d'enregistrements de données 10 entrées traité au cours d'une itération et chaque itération produit des données de sortie de traitement d'image agrégées qui sont conservées dans antérnérnoire d'agrégation 5. Par conséquent, dans ce cas ii y a une itération par ligne d'image et le traitement itératif s'achève après que la dernière ligne de l'image a été traitée. À ce stade, la donnée agrégée 24 stockée dans l'antémemoue d'agrégation 5 forme la donnée finale de sottie de traitement d'images du 15 traitement d' i mage. [0045] En fonction du cas d'usage particulier, ces modes de réalisation peuvent aussi inclure une activité/fonction supplémentaire dans toutes ou certaines des itérations de purge d'une quelconque donnée de valeur clé 22 de l'antérnemoire de valeurs clés 4 qui n'est pas nécessaire pour mettre en oeuvre te reste du traitement itératif, e.-à-d. au cours d'itérations subséquentes 90 afin de soulager la mémoire du système de base de données 2. Ainsi que mentionné ci-dessus, la donnée de valeur clé 22 peut encore être stockée de façon utile dans l'antémémoire de valeurs clés 4 pour d'autres raisons, bien que l'actualisation de la donnée agrégée 24 au cours d'itérations subséquentes puisse être réalisée sans utiliser la donnée de valeur clé 22 d'itérations précédentes. Ainsi, la décision concernant quelle donnée de valeur clé 22 peut ne peut pas être 95 purgée au cours d'une itération donnée peut aussi prendre en compte ces autres considérations techniques comme dans quelle mesure Earitemémoire de valeurs clés 4 peut servir comme entrepôt de sauvegarde afin de restaurer la donnée agrégée en cas d'un l'état d'échec technique au niveau de l'antémémoire d'agrégation 5. [0046] Dans certains modes de réalisation, en faisant maintenant référence à la FIG. 6, 30 l'actualisation dudit au moins un résultat d'agrégation 24 comprend l'exclusion d'une donnée de valeur clé obsolète 22 dudit au moins un résultat d'agrégation 28 en utilisant la donnée de valeur clé obsolète stockée dans la première antémémoire et en supprimant la donnée de valeur clé obsolète de la première antémémoire. Dans certains de ces modes de réalisation, la deuxième antémémoire 5 inclut l'information de contrôle d'agrégation de données 26 (ainsi que déjà présentée ci-dessus) et l'exclusion de la donnée de valeur clé obsolète dudit au moins un résultat 5 d'agrégation 28 est basée sur l'information de contrôle d'agrégation de données 26. Ces modes de réalisation facilitent le traitement de cas d'usage qui n'agrègent pas toutes les données de valeur clé 22 de toutes les itérations de traitement, niais seulement des portions des données de valeur clé 22. [0047] Par exemple, l'agrégation peut former une fenêtre dynamique sur la donnée de valeur 10 clé 22 des diverses itérations, où la donnée de valeur clé 22 d'un nombre donné ni d'itérations forme la base de l'agrégation. Ainsi, dans une itération actuelle L la donnée de valeur clé 22 des itérations i - ni à i doit être incluse dans le résultat d'agrégation 28 de l'itération actuelle et toute donnée de valeur clé plus ancienne est exclue du résultat d'agrégation 28. [0048] En continuant à faire référenceà la valeur de moyenne arithmétique simplifiée A 15 mentionnée ci-dessus et à la FIG. 6, le nombre de données m d'itération devant être pris en compte peut être 7. Par conséquent, selon la FIG. 6, dans l'itération précédente à la date T6, les ensembles de données de valeurs clés TO à T6 et les LiDs 147 à 153 ont formé le résultat d'agrégation 28 stocké d'une antémémoire d'agrégation 5 (dans l'exemple de la FIG. 6, la valeur APB avec la date T6 et l'ID 98, également désigné brièvement comme étant le résultat 20 d'agrégation A tel que présenté ci-dessus). Dans l'itération actuelle à la date 17, conformément à la fenêtre dynamique, la donnée de valeur clé avec la date TO devient obsolète et doit être remplacée dans le résultat d'agrégation 28 par la nouvelle donnée de valeur clé générée au cours de l'itération actuelle (date T7, ID 154, valeur CAB dans l'exemple de la FIG. 6). Le nombre d'itérations donné m peut être stocké dans l'a.ntémémoire d'agrégation 5 comme faisant partie 25 de la donnée de contrôle d'agrégation 26. L'exclusion de la donnée de valeur clé obsolète (date TO, ID 147, valeur ABC) de la valeur moyenne actuellement stockée dans l'antémémoire d'agrégation est facilitée en ayant conservé la donnée de valeur clé 22 d'itérations précédentes dans l'antémémoire de valeurs clés 4. Spécifiquement, l'actualisation de la donnée agrégée 24 dans l'antémémoire d'agrégation 5 sans le recalcul complet de la donnée agrégée 24 est 30 implémentée dans l'exemple donné en calculant la somme de A, plus la valeur de la nouvelle donnée de valeur clé (CAB, date T7, ID 154), moins la donnée de valeur clé obsolète (ABC, date 'VO, ID 47), et la division par le nombre d'itérations m pris en compte ou, pour faire court, A' = (A + CAB - ABC) / 7 - ABC, La donnée d'agrégation actuelle 24 stockée dans l'arnémémoire d'agrégation 5 est actualisée de la date=T6, 111=98, valeur-AFB à la dater-T7, 11.)=-99, valeur-AEC. Par conséquent, puisque la donnée de valeur clé obsolète (ABC, date TO, ID 147) n'est pas utilisée dans les agrégations d'itérations subséquentes, la donnée de valeur clé obsolète est supprimée de l'antémemoire de valeurs clés 4 dans ces modes de réalisation. [0049] Un cas d'usage pour un tel mode de réalisation de fenêtre dynamique est à nouveau le domaine technique du traitement d'images. Par exemple, la détection d'objets dans une image peut être implémentée en exécutant une fenêtre dynamique d'une taille donnée (ou de multiples 10 fenêtres dynamiques de tailles diverses) sur une image et en analysant (changeant) les caractéristiques de l'imagel'intérieur de la fenêtre dynamique, cette dernière impliquant l'activité/fonction d'agrégation 18 tel que décrite ci-dessus. [0050] Il faut noter que les FIGS 5 et 6 sont des exemples simplifiés montrant seulement, à titre illustratif, un ensemble de valeurs clés 22 et les données d'agrégation associées 24 dans la 15 première antémérnoire 4 et la deuxième antémémoire 5, respectivement. En pratique, de multiples ensembles de données de valeurs clés 22 et de données agrégées correspondantes 24 peuvent être stockés dans la première antérnémoire 4 et dans la deuxième antémémoire 5. Par exemple, de multiples images peuvent être traitées simultanément avec les plutalités respectives de lignes d'images qui sont conservées dans la première antémémoire 4 et les données d'images 20 agrégées correspondantes conservées dans la deuxième antémémoire 5. Afin de différencier les ensembles individuels de données de valeurs clés 22 et les données agrégées 24 et afin de relier un ensemble correspondant de données de valeurs clés 22 dans la première antémémoire 4 aux données agrégées 24 dans la deuxième antémémoire 5, des informations clésid'identification supplémentaires peuvent être présentes (soit dans des colonnes dédiées ou incluses dans la 25 colonne de en identifiant p, ex. l'image à laquelle appartiennent !a donnée de ligne d mages et la donnée d'image agrégée. [0051] Les mécanismes décrits ci-dessus constituent une combinaison de technologies de traitement de mégadennées et de données MapReduce. Ils facilitent l'antémémorisation distribuée et un usage de fonnats de données de compression adaptes. Les mécanismes peuvent 30 employer des organisations de données et des formats de fichiers, ainsi que souligné ci-dessus à titre d'exemple qui sont optimisés pour des données structurées et temporelles, telles que des 14 images traitées par lignes qui sont traitées de façon itérative une ligne successive à la fois. En comparaison avec le traitement séquentiel qui n'utilise par la structure d'antémémoire décrite dans les présentes, une accélération substantielle du temps de traitement peut être obtenue (conformément à des tests en situation réelle menés par le demandeur, de 3h30 minutes à seulement 17 minutes pour les mêmes données entrées avec le même matériel). De même, plus de données peuvent être traitées au cours de la même fenêtre temporelle avec le même matériel. Les modes de réalisation d'organisation de structure d'antémémoire et de données/fichiers décrits permettent aussi, selon un test en situation réelle mené par le demandeur, un encombrement de disque réduit, de I4GB à 3,5 G13 par jour pour les mêmes données entrées. 10 Le traitement itératif décrit ci-dessus facilite aussi la résilience. Vu que le traitement est divisé en itérations, les erreurs de traitement dans une itération ne compromettent pas les résultats de traitement des itérations précédentes. [0052] Finalement, la FIG. 7 est une représentation schématique d'un système informatique 100 qui fournit la fonctionnalité de système de base de données 2 ainsi qu'illustré 15 dans la FIG. 1 en implémentant les activités/fonctions telles que décrites ci-dessus incluant l'hébergement de la première antémérnoire 4 et de la deuxième antémémoire 5. À l'intérieur du système de base de données 2, un ensemble d'instructions 110 peut être exécuté pour amener le système informatique 100 à mettre en oeuvre l'une quelconque des méthodologies décrites dans les présentes. Le système de base de données 2 inclut au moins un processeur 102 70 (implémentant les noeuds de calcul 6, tel qu'expliqué ci-dessus), une mémoire principale 104 et un dispositif d'interface de réseau 108. La mémoire principale 104 inclut un espace utilisateur 104' qui est associé à des applications exécutées par l'utilisateur et un espace noyau 104" qui est réservé à un système d'exploitation ainsi que des applications associées de matériel et de systèmes d'exploitation. Les composants du système informatique 102 à 109 sont 25 interconnectés par un bus de données 101 (implémentant l'interface 8). En option, il peut par ailleurs inclure une mémoire statique 106, p. ex. flash non inamovible et/ou un disque dur et/une carte micro ou mini SD amovible stockant de façon permanente le logiciel permettant au système informatique 100 d'exécuter des Mnctions du système informatique 100 et une interface 1/0 supplémentaire 109 telle qu'un lecteur de carte et des interfaces USB, peuvent être 30 présents. Un écran vidéo 103, un module de contrôle d'interface d'utilisateur dans et/ou un dispositif de saisie alphanumérique 105. Le dispositif d'interface de réseau 108 connecte le système de base de données 2 à d'autres stations, incluant la source de données entrées 3 et les 15 s 7, l'Interdet et/ou tout autre réseau. Le système informatique 100 peut aussi représenter seulement une portion du système de base de données 2 au cas où le système de base de données 2 serait distribué entre plusieurs systèmes informatiques 100 interconnectés par un réseau via le dispositif d'interface de réseau 108. Un ensemble d'instructions (c.-à-d. un logiciel) 110 représentant un ou tous les procédés, décrits ci-dessus, est hébergé complètement, ou au moins partiellement, dans ou sur un support lisible par ordinateur, p. ex. la mémoire principale 104 et/ou le processeur 102. Le logiciel 110 peut pat ailleurs être transmis ou reçu sous forme de signal propagé 111 via Internet par l'intermédiaire du dispositif d'interface de réseau 108. 10 [0053] En général, les routines exécutées pour mettre en oeuvre les modes de réalisation l'invention, qu'elles soient implémentées comme des parties d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, d'un module ou d'une séquence d'instructions, ou même d'un sous-ensemble de ceux-ci, peuvent être désignées dans les présentes comme « code de programme informatique it ou simplement « code de 15 programme », Un code de programme comporte typiquement des instructions lisibles par ordinateur qui résident à divers moments dans divers dispositifs de mémoire et de stockage dans un ordinateur et qui, lorsqu'elles sont lues et exécutées par un ou plusieurs processeurs dans un ordinateur, amènent l'ordinateur à effectuer des d'opérations nécessaires à l'exécution d'opérations et/ou d'éléments propres à la mise en oeuvre des aspects variés des modes de 20 réalisation de l'invention. Les instructions d'un programme, lisibles par ordinateur, peur mettre en oeuvre les opérations des modes de réalisation de l'invention peuvent être, par exemple, le langage d'assemblage, ou encore un code source ou un code objet écrit en combinaison avec un ou plusieurs langages de programmation, [0054] Divers codes de programme décrits dans les présentes peuvent être identifiés, selon 25 l'application dans laquelle ils sont implémentes, dans des modes de réalisation spécifiques de l'invention. Cependant, 011 notera qu'une quelconque nomenclature d'un programme particulier dans les présentes est utilisée uniquement par commodité ; ainsi l'invention ne peut être limitée à un seul usage dans toute application spécifique identifiée et/ou sous-entendue par ladite nomenclature. Par ailleurs, au vu du nombre généralement infini de moyens par lesquels les 30 programmes informatiques peuvent être organisés selon des sous-programmes, procédures, procédés, modules, objets, et ainsi de suite, ainsi que les façons variées d'affecter les 16 fonctionnalités d'un programme parmi diverses couches de logiciels qui sont hébergées dans un ordinateur typique [p. ex., les systèmes d'exploitation, les bibliothèques, les interfaces d'application de programme (API), les applications, les petites applications « (applets) etc.], on notera que tes modes de réalisation de l'invention ne sont pas limités à l'organisation spécifique et à l'affectation spécifique des fonctionnalités de programme telles qu'elles sont décrites dans les présentes. [0055] Le code de programme mis en oeuvre dans unelun quelconque des applications/modules décrit(e)s dans les présentes peut être distribué individuellement ou collectivement comme un produit-programme d'ordinateur, sous une variété de formes. En 10 particulier, le code de programme peut être distribué en utilisant un support de stockage lisible par ordinateur, disposant d'instructions de programme lisibles par ordinateur en lui-même, permettant à un processeur de mettre en oeuvre des aspects des modes de réalisation de l'invention. [0056] Les instructions de programme lisibles par ordinateur, enregistrées sur un support 15 lisible par ordinateur, peuvent être utilisées pour amener un ordinateur, d'autres types d'appareils programmables de traitement de données, ou d'autres dispositifs, à fonctionner d'une façon particulière, de sorte que les instructions stockées sur le support lisible par ordinateur produisent un article de fabrication incluant les instructions qui mettent en oeuvre les fonctions, les actions et/ou les opérations spécifiées dans les organigrammes, diagrammes de 20 séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général ou un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées via ledit un ou plusieurs processeurs, accomplissent une série de calculs de pour mettre en oeuvre les fonctions, actions, et/ou les 25 opérations spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs, [0057] Dans certains autres modes de réalisation, les fonctions, les actions et/ou des opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être réordonnées, traitées en série' et/ou traitées en même temps conformément aux modes de réalisation de l'invention. De plus, tout organigramme, diagramme séquentiel 30 et/ou diagramme bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés, tout en restant cohérents avec les modes de réalisation de l'invention. 17 [0058] La terminologie utilisée dans les présentes a pour but de décrire uniquement des modes de réalisation particuliers et n'est pas destinée à limiter les modes de réalisation de l'invention. On comprendra par ailleurs que les termes « comprendre », « comprend » et/ou « comprenant », lorsqu'ils sont utilisés dans cette spécification, précisent la présence de caractéristiques, de 5 nombres entiers, d'étapes, d'opérations, d'éléments, et/ou de composants, mais n'excluent pas la présence ou l'ajout d'une ou de plusieurs caractéristiques, de nombres entiers, d'étapes, d'éléments, de composants et/ou de groupes, en cela. De plus, dans la mesure où les turnes « inclut », « ayant », « a », « avec » ou leurs variantes, sont utilisés dans la. description détaillée des revendications, ces termes sont censés être inclusifs de façon similaire au terme 10 « comprendre ». [0059] Bien que l'invention ait été illustrée par une description de modes de réalisation divers et bien que ces modes de réalisation aient été décrits de façon considérablement détaillée, il n'y a pas d'intention de restreindre ou de limiter de quelque façon que ce soit le champ d'application des revendications annexées à ces détails. Des avantages et des modifications supplémentaires 15 apparaîtront aisément aux hommes de métier. L'invention sous ses aspects plus larges n'est donc pas limitée aux détails spécifiques, aux appareils représentatifs et aux procédés, ainsi qu'aux exemples illustratifs montrés et décrits. Par conséquent, il est possible de s'éloigner de ces détails sans s'éloigner de l'esprit REVENDICATIONS1. Un procédé pour le traitement itératif de données dans un système de base de données, le système de base de données comprenant une première antémémoire stockant des données de valeurs clés qui sont le résultat d'itérations précédentes de traitement de données entrées et une deuxième antémémoire stockant les données agrégées qui sont le résultat d'itérations précédentes de traitement de données de valeurs clés stockées dans la première antémémoire, le procédé comprenant, au niveau du système de base de données dans une itération actuelle : 10 la réception d'une autre donnée entrée relative à la donnée entrée des itérations précédentes, la transformation de l'autre donnée entrée en une autre donnée de valeur clé et le stockage de l'autre donnée de valeur clé dans la première antérnémoire en plus de la donnée de valeur clé stockée qui est le résultat d'itérations précédentes de 15 traitement de données entrées, le traitement de l'autre donnée de valeur clé et de la donnée agrégée stockée dans la deuxième antémémoire pour former une donnée agrégée actualisée, - le stockage de la donnée agrégée actualisée dans une deuxième antémémoire pour usage dans d'autres itérations, et 20 - l'apport de la donnée agrégée actualisée a au moins un client, 2. Le procédé de la revendication 1, dans lequel la transformation de l'autre donnée entrée en une autre donnée de valeur clé est un processus Map d'un traitement de données MapReduce et le traitement de la donnée de valeur clé actualisée dans la 25 première antémémoire incluant l'autre donnée de valeur clé et la donnée agrégée stockée dans la deuxième antémémoire est un processus Reduce du traitement de données MapReduce. 3. Le procédé de la revendication 2, dans lequel le système de base de données comprend 30 une pluralité de noeuds de calcul et le processus Map ainsi que le processus Reduce sont respectivement exécutés d'une manière parallèle distribuée entre au moins deux de la pluralité des noeuds de calcul. 19 4, Le procédé dc l'une quelconque des revendications 1 à 3, dans 'tiquel la donnée de valeur clé stockée dans la première antémémoire est organisée de façon séquentielle en ce que la clé comprend une date de création de l'enregistrement de donnée de valeur clé respective. 5. Le procédé de l'une quelconque des revendications 1 à 4, dans lequel le traitement de la donnée de valeur clé actualisée dans la première antémémoire, incluant l'autre donnée de valeur clé et la donnée agrégée stockée dans la deuxième antémémoire pour 10 former une donnée agrégée actualisée, comprend l'actualisation d'au moins un résultat d'agrégation tel qu'une somme, une moyenne une déviation standard, en incorporant en plus l'autre donnée de valeur dé dans ledit au moins un résultat d'agrégation. 6. Le procédé de la revendication 5, dans lequel la deuxième antémémoire inclut une information de contrôle d'agrégation de données et dans lequel l'incorporation de l'autre donnée de valeur clé dans ledit au moins un résultat d'agrégation est basé sur l'information de contrôle d'agrégation de données. 7. Le procédé de la revendication 5, dans lequel l'actualisation dudit au moins un résultat 90 d'agrégation comprend l'exclusion de données de valeurs clés obsolètes dudit au moins un résultat d'agrégation en utilisant la donnée de valeur clé obsolète stockée dans la première antémémoire et en supprimant la donnée de valeur clé obsolète de la première antémémoire. 8. Le procédé de la revendication 7, dans lequel la deuxième antémémoire inclut l'information de contrôle d'agrégation de données et dans lequel l'exclusion de données de valeurs clés obsolètes dudit au moins un résultat d'agrégation est basée sur l'information de contrôle d'agrégation de données. 30 9. Un système de base de données comprenant une première antémémoire stockant des données de. valeurs clés qui sont le résultat d'itérations précédentes de traitement de données entrées et une deuxième antémémoire stockant des données agrégées qui sont le résultat d'itérations précédentes de traitement de données de valeurs clés stockées 20 dans la première antémémoire, dans lequel le système de base de données est agencé, au cours d'une itération actuelle, pour : recevoir une autre donnée entrée relative à la donnée entrée des itérations précédentes, transformer l'autre donnée entrée en une autre donnée de valeur clé et stocker l'autre donnée de valeur clé dans la première antérnémoire en plus de la donnée de valeur clé stockée qui est le résultat d'itérations précédentes de traitement de données entrées, traiter l'autre donnée de valeur clé et la donnée agrégée stockée dans la deuxième antémemoire pour former une donnée agrégée actualisée, stocker la donnée agrégée actualisée dans la deuxième dans d'autres itérations, et érnoire pour usage fournir la donnée agrégée actualisée à au moins un client. 10. Le système de la revendication 9 étant par ailleurs agencé pour mettre en oeuvre le procédé de l'une quelconque des revendications 2 à 8. 1 1. Un produit programme d'ordinateur comprenant des instructions de code de programme stockées sur un support lisible par ordinateur pour mettre en oeuvre étapes du procédé selon les revendications 1 à 8 lorsque ledit programme fonctionne sur un ordinateur.