Brevet FR3099602A1 — publié le 20210205

Description Titre de l'invention : PROCÉDÉS ET SYSTÈMES POUR L'INGESTION DE DONNÉES DANS DES BASES DE DONNÉES À GRANDE ÉCHELLE [pool La présente invention concerne de façon générale des systèmes de traitement de données et des procédés améliorés et plus spécifiquement des mécanismes pour l'ingestion automatisée de données dans des hases de données à grande échelle. [0002] Jusqu'à récemment, beaucoup de stockage de données et d'analyses ont été effectués en utilisant des bases de données relationnelles et des outils tels que le langage d'interrogation structuré (SQL). Cependant, cette approche conventionnelle a été mise au défi par une nouvelle demande créée par l'émergence des dénommées « mégadonnées », un terme technique qui combine deux concepts complémentaires. Premièrement, les mégadonnées concernent des ensembles de données qui sont trop importants et/ou complexes à gérer en utilisant des technologies conventionnelles telles que les bases de données relationnelles. Deuxièmement, les mégadonnées sont communément utilisées pour faire référence à des techniques modernes qui sont utilisées pour extraire une valeur, p. ex. via des analytiques prédictives à partir d'ensembles de données complexes en utilisant des technologies telles que Hadoop® ou Apache Spark". Les bases de données relationnelles et les outils analytiques associés sont conçus pour interagir avec des informations structurées. Par contraste, beaucoup d'informations comprenant les dépôts de mégadonnées sont non structurées ou semi structurées. Par exemple, des applications d'entreprises modernes génèrent communément et transmettent des données sous forme de documents encodés en utilisant le langage de balisage étendu (XML) ou JavaScript Object Notation (JSON). Ces sources de données se sont avérées exigeantes pour les générations antérieures d'outils analytiques en termes d'ingestion, en raison de leurs tailles très importantes et de leurs natures semistructurées. En bref, les mégadonnées peuvent souvent être caractérisées et se distinguent des sources de données conventionnelles, car elles sont comprises d'informations non structurées ou semi-structurées qui sont reçues de façon continue et dans des volumes très élevés. [0003] En réponse aux défis posés par les mégadonnées, de nouvelles technologies et pratiques de programmation ont été développées pour prendre en charge l'informatique distribuée sur des ensembles de données massifs. Un exemple courant de technologie de stockage de mégadonnées est Hadoop® Distributed File System (HDFS) (le système de fichiers distribués Hadoop®) qui assure le stockage d'énormes quantités de données à la fois structurées et non structurées. Un exemple courant de technologies de 2 traitement de données capable d'exécuter des opérations, par rapport à des données stockées dans HDFS et/ou d'autres systèmes de stockage, est Apache Spark® qui permet le développement d'applications dans une large gamme de langage d'applications incluant Java, Scala, Python, et R. Bien que HDFS et Spark® ne soient pas les seules technologies disponibles pour le stockage, la gestion et le traitement des mégadonnécs - les deux étant capables de fonctionner en association à un éventail d'autres technologies - elles ont tiré profit du développement des sources libres (open-source) et des modèles de distribution et sont devenues largement acceptées et déployées. [0004] Cependant les technologies telles que HDFS et Spark® en elles-mêmes ne résolvent pas toutes les difficultés présentées par les mégadonnécs. Un élément clé d'un quelconque système pratique de mégadonnécs est l'ingestion des données cc qui implique communément des étapes d'extraction (c.-à-d. de récupération ou de réception des données de leurs sources d'origine), de transformation (c.-à-d. le traitement, le nettoyage et la normalisation des données pour assurer qu'elles sont dans un format adapté au traitement et/ou à une analyse ultérieurement) et de chargement des données résultantes dans un stockage à partir duquel un traitement et une analyse peuvent ultérieurement avoir lieu. Une considération supplémentaire est qu'il n'est pas toujours possible de migrer des systèmes de base de données existants vers des plateformes de mégadonnécs telles qu'Apache Spark°, en raison des exigences de compatibilité avec les applications et les services hérités qui sont déployés. [0005] La Figure 1 est un diagramme bloc 100 d'un système et d'un procédé d'art antérieur pour l'ingestion de données structurées 102 qui sont initialement reçues et stockées dans une base de données relationnelle orientée écriture 104. Les données sont ensuite transformées au 106 et les données résultantes sont stockées dans une base de données relationnelle orientée lecture au 108 à partir de laquelle elles peuvent être récupérées et analysées, p. ex. en utilisant des outils tels que SQL, pour une utilisation dans d'autres applications. Historiquement, les transformations de données 106 ont été développées manuellement par des opérateurs humains. Par exemple, un schéma global pourrait être conçu pour la base de données orientée lecture 108 et les programmateurs affectés au développement de scripts de mappage des données entrantes structurées 102 dans le schéma global. Cependant, au fur et à mesure que le volume et la variété des sources de données croissent, il est souhaitable d'introduire des couches d'automatisation au processus d'ingestion. Par exemple, le manuel peut être remplacé par une approche semi-automatisée dans laquelle l'information définissant les mappages de données entrantes 102 sur le schéma global est stockée dans des tableaux, des feuilles de calcul ou d'autres fichiers de configuration dans lesquels les scripts requis ou d'autres formes de transformation de données peuvent être générés automatiquement. Malgré cela, 3 alors que la définition d'un grand nombre de tableaux ou de fichiers de configuration est une amélioration pour le développement et le maintien d'un nombre correspondant de scripts d'ingestion, ce n'est pas une tâche échelonnahle ou gérahle dans le contexte des systèmes modernes de mégadonnécs qui sont amenés à gérer d'énormes volumes et variétés de données structurées, semi-structurées et non structurées. [0006] Une difficulté particulière qui se pose dans ces systèmes est la nécessité de gérer l'ingestion de données à partir de nouvelles sources, de nouvelles données provenant de sources existantes et des données provenant de sources existantes dont le contenu et/ou le format peuvent changer dans le temps. Dans ces circonstances, il serait souhaitable d'inférer l'information automatiquement concernant les données devant être ingérées et de déterminer des actions appropriées pour la gestion des données entrantes de sorte que le besoin d'une intervention manuelle soit minimisé dans l'ingestion et la transformation de données. Par ailleurs, il serait souhaitable de fournir des systèmes et des procédés pour l'ingestion de données qui soient capables de délivrer au moins certains des avantages des plateformes modernes de mégadonnécs pour l'analyse et le traitement des données entrantes tout en retenant la compatibilité avec les applications et les services hérités. Les modes de réalisation de la présente invention visent à satisfaire ces besoins. [0007] Dans un aspect, la présente invention fournit un procédé d'ingestion de données destiné à être utilisé dans un système de base de données à grande échelle qui comprend les étapes suivantes : la récupération d'une pluralité d'objets de documents d'une banque de données à grande échelle ; le calcul d'une pluralité correspondante de représentations de vecteur de caractéristique de contenu des objets de documents ; l'agrégation des représentations de vecteur de caractéristique selon une approche d'apprentissage non supervisé pour identifier un ou plusieurs agrégats de documents similaires ; pour chaque agrégat identifié, la génération et le stockage d'au moins une stratégie pour la transformation et/ou le stockage des données associées dans une banque de données de service ; la détection d'un événement comprenant l'anivée d'un ou de plusieurs nouveaux objets de documents dans une banque de données à grande échelle ; le calcul d'une pluralité correspondante d'une ou de plusieurs représentations de vecteur de caractéristique de contenu des nouveaux objets de documents ; la classification des nouveaux objets de documents tels qu'ils sont associés à un des agrégats identifiés selon l'approche d'apprentissage non supervisé; la récupération d'une des stratégies stockées pour la transformation et/ou le stockage de contenu de données des nouveaux objets de documents sur la hase de la classification ; et l'exécution de la stratégie récupérée pour la transformation et/ou le stockage du contenu de données des nouveaux objets de document dans la banque de données de service. [0008] De façon avantageuse, les étapes de calcul des représentations de vecteur de caracté- ristique des objets de documents, l'identification d'agrégats de documents similaires, la génération de stratégies pour la transformation et/ou le stockage de données associées et la classification des nouveaux objets de documents peuvent être implémentées dans un système informatique distribué qui est optimisé pour le traitement de mégadonnécs. Par ailleurs, l'étape d'exécution de la stratégie récupérée pour la transformation et/ou le stockage du contenu des données des nouveaux objets de document dans la banque de données de service peut être implémentée dans un système de hase de données hérité. De cette façon, des modes de réalisation de l'invention sont capables d'utiliser le traitement et de données et les capacités d'analyse des systèmes informatiques distribués modernes pour analyser et classer les données entrantes dans le système de base de données et pour utiliser les connaissances dérivées de cette analyse dans le système de hase de données hérité. [0009] Dans des modes de réalisation de l'invention, chacun de la pluralité des objets de documents peut comprendre des données agrégées extraites d'une colonne de données tabulaires. De façon avantageuse, la construction d'objets de documents à partir des colonnes de données tabulaires permet de traitement de données non structurées et serai structurées en plus des données structurées. Par exemple, les objets de documents peuvent être construits à partir d'une quelconque colonne présente dans les données tabulaires sans nécessiter qu'un schéma prédéfini soit disponible. Par ailleurs, la taille de chaque objet de document n'a pas besoin d'être prédéterminée et peut varier en fonction du nombre d'éléments dans la colonne correspondante. En pratique, une taille de document maximale peut être imposée en fonction du stockage de système et des limites de traitement et/ou de coûts. Les représentations de vecteur de caractéristique de contenu des objets de documents peuvent comprendre des caractéristiques représentatives de la densité des éléments à l'intérieur de chaque objet de document. Par exemple, des caractéristiques peuvent être calculées en utilisant un algorithme de fréquence de termes - fréquence inverse de documents (TF-IDF). [0010] Dans un mode de réalisation de l'invention, l'approche d'apprentissage non supervisé comprend le calcul d'une métrique de distance entre les représentations de vecteur de caractéristique en utilisant l'algorithme du voisin approximativement le plus proche (ANN). La métrique de distance est une distance euclidienne et l'algorithme ANN peut comprendre un algorithme de hachage sensible à la position (LSH) de la projection aléatoire compartimentée (BRP). Ces algorithmes peuvent être exécutés de façon avantageuse dans le système informatique distribué. [0011] L'étape de classification des nouveaux objets de documents peut comprendre la mise en oeuvre d'une recherche ANN à travers les représentations de vecteur de caractéristique de la pluralité des objets de documents. [0012] Les stratégies pour la transformation et/ou le stockage peuvent être générées en exécutant un optimiscur d'interrogations dans le système informatique distribué pour déterminer un plan physique représentatif d'une ou de plusieurs interrogations de récupération de données devant être exécutées sur la banque de données de service. Dans des modes de réalisation de l'invention, un modèle de coût peut être exécuté dans le système informatique distribué pour déterminer ou pour identifier un plan physique de coût le plus bas parmi une pluralité de plans candidats. [0013] Dans des modes de réalisation, les stratégies pour la transformation et/ou le stockage peuvent comprendre des stratégies pour partitionner les données et/ou des stratégies pour ordonner les données dans les partitions. De façon avantageuse, le partitionnement des données peut réduire l'espace de recherche pour les interrogations d'intérêt résultant en une gestion plus facile de la recherche et une amélioration de la vitesse de recherche et du temps de réponse du système. Par ailleurs, le fait de fournir l'ordonnancement de données intelligentes - c.-à-d. le classement d'éléments - dans chaque partition de l'espace de données peut améliorer la pertinence des résultats de recherche. [0014] Les stratégies pour la transformation et/ou le stockage sont stockées dans un tableau qui mappe les classifications correspondant à des agrégats identifiés sur les stratégies et l'étape de récupération d'une des stratégies stockées peut ensuite comprendre la mise en oeuvre d'une consultation de la classification des nouveaux objets de documents dans le tableau. [0015] Selon un autre aspect, il est fourni un produit programme d'ordinateur comprenant un support tangible lisible par ordinateur et ayant des instructions de code de programme stockées sur un support lisible par ordinateur pour mettre en oeuvre les étapes du procédé telles qu'elles ont été exposées ci-dessus lorsque ledit programme fonctionne sur un ordinateur. C'est-à-dire que le produit-programme d'ordinateur peut être compris d'un support tangible lisible par ordinateur ayant des instructions stockées sur celui-ci qui lorsqu'elles sont exécutées par un processeur implémentent un procédé comprenant : le transfert d'une pluralité d'objets de documents d'une banque de données à grande échelle vers un système informatique distribué; le calcul, dans le système informatique distribué, d'une pluralité correspondante de représentations de vecteur de caractéristique de contenu des objets de documents ; 6 le groupement, dans le système informatique distribué, des représentations de vecteur de caractéristique selon une approche d'apprentissage non supervisé pour identifier un ou plusieurs agrégats de documents similaires ; pour chaque agrégat identifié, la génération dans le système informatique distribué d'au moins une stratégie pour la transformation et/ou le stockage des données associées ; le stockage de la stratégie pour la transformation et/ou le stockage de données associées destinées à être utilisées par une banque de données de service ; la détection d'un événement comprenant l'arrivée d'un ou de plusieurs nouveaux objets de documents dans une banque de données à grande échelle ; le transfert des nouveaux objets de documents de la banque de données à grande échelle vers le système informatique distribué ; le calcul, dans le système informatique distribué, d'une pluralité correspondante de re- présentations de vecteur de caractéristique de contenu des nouveaux objets de documents ; la classification, dans le système informatique distribué des nouveaux objets de documents tels qu'ils sont associés à un des agrégats identifiés, conformément à l'approche d'apprentissage non supervisé ; la récupération d'une des stratégies stockées pour la transformation et/ou le stockage de contenu des données des nouveaux objets de documents sur la base de la classification; et l'exécution de la stratégie récupérée pour la transformation et/ou le stockage du contenu des données des nouveaux objets de document dans la banque de données de service. [0016] Dans un autre aspect de l'invention, il est fourni un système de base de données qui comprend : une banque de données à grande échelle ; un système informatique distribué optimisé pour le traitement de mégadonnées ; une banque de données de service ; et un dispositif informatique configuré pour mettre en oeuvre l'ingestion de données, le dispositif informatique comprenant au moins un processeur et au moins un dispositif de mémoire accessible au processeur, dans lequel le dispositif de mémoire contient un corps d'instructions de programme qui lorsqu'il est exécuté par le processeur amène le dispositif informatique à implémenter un procédé comprenant les étapes suivantes : le transfert d'une pluralité d'objets de documents de la banque de données à grande échelle vers le système informatique distribué ; le calcul, clans le système informatique distribué, d'une pluralité correspondante de 7 représentations de vecteur de caractéristique de contenu des ohjets de documents ; le groupement, dans le système informatique distribué, des représentations de vecteur de caractéristique conformément à une approche d'apprentissage non supervisé pour identifier un ou plusieurs agrégats de documents similaires ; pour chaque agrégat identifié, la génération dans le système informatique distribué d'au moins une stratégie pour la transformation et/ou le stockage des données associées à l'intérieur d'une banque de données de service ; le stockage de la stratégie pour la transformation et/ou le stockage de données associées destinées à être utilisées par la banque de données de services ; la détection d'un événement comprenant l'arrivée d'un ou de plusieurs nouveaux objets de documents dans une banque de données à grande échelle ; le transfert des nouveaux objets de documents de la banque de données à grande échelle vers le système informatique distribué ; le calcul, dans le système informatique distribué, d'une pluralité correspondante de re- présentations de vecteur de caractéristique de contenu des nouveaux ohjets de documents ; la classification, dans le système informatique distribué, des nouveaux ohjets de documents tels qu'ils sont associés à un des agrégats identifiés conformément à l'approche d'apprentissage non supervisé ; la récupération d'une des stratégies stockées pour la transformation et/ou le stockage de contenu de données des nouveaux objets de documents sur la base de la classification; et l'exécution de la stratégie récupérée pour la transformation et/ou le stockage du contenu de données des nouveaux objets de document dans la banque de données de service. [0017] À partir de la description qui suit, divers modes de réalisation, d'autres aspects, avantages et caractéristiques des modes de réalisation de l'invention seront apparents aux hommes de métier spécialisés dans les domaines pertinents. On notera cependant que l'invention n'est pas limitée aux modes de réalisation décrits qui sont fournis à titre d'illustration des principes de l'invention telle qu'elle est définie et pour assister les hommes de métier à mettre en pratique ces principes. [0018] Des modes de réalisation de l'invention seront maintenant décrits par rapport aux dessins qui suivent dans lesquels des numéros référentiels font référence à des caractéristiques similaires et dans lesquels : [0019] [fig.1] est un diagramme bloc d'un système d'art antérieur et du traitement pour l'ingestion de données structurées. [0020] [fig.2] est un diagramme bloc illustrant à titre d'exemple un système distribué en réseau incluant un système d'ingestion de données mettant en oeuvre l'invention. 8 [0021] [fig.3] est un diagramme bloc illustrant l'architecture d'un système d'ingestion de données mettant en oeuvre l'invention. [0022] [fig.4] est un organigramme illustré d'un processus d'analyse de données implémenté par le module de couche d'analytiques mettant en oeuvre l'invention. [0023] [fig.5] est un organigramme illustré d'un processus d'ingestion de données basé sur des règles mettant en oeuvre l'invention. [0024] [fig.6] est un diagramme bloc illustrant les flux d'informations dans un système de hase de données mettant en oeuvre l'invention qui est configure pour une utilisation dans l'industrie du voyage. [0025] [fig.7À] montre des stratégies de partitionnement de tableau exemplaires qui peuvent être dérivées des connaissances obtenues dans le système de la Figure 6. [0026] [fig.7B] montre des stratégies de partitionnement de tableau exemplaires qui peuvent être dérivées des connaissances obtenues dans le système de la Figure 6. [0027] [fig.7C] montre des stratégies de partitionnement de tableau exemplaires qui peuvent être dérivées des connaissances obtenues dans le système de la Figure 6. [0028] [fig.7D] montre des stratégies de partitionnement de tableau exemplaires qui peuvent être dérivées des connaissances obtenues dans le système de la Figure 6. [0029] [fig.8] est un diagramme montrant les résultats d'une mesure de distance calculée, basée sur un ensemble de données exemplaires, pour utilisation dans un processus de recherche ANN mettant en oeuvre l'invention. [0030] La Figure 2 est un diagramme bloc illustrant un système distribué exemplaire 200 qui inclut un système d'ingestion de données 202 mettant en oeuvre l'invention. En particulier, le système d'ingestion de données 202 est configuré via une programmation appropriée et conformément aux principes de la présente invention pour mettre en oeuvre l'analyse et le groupement de données sur la base de caractéristiques de données afin de déterminer, de sélectionner et d'appliquer des stratégies de stockage de données visant à optimiser la performance des applications utilisant les données. [0031] À titre d'illustration, le système d'ingestion de données 202 qui est montré comprend un système informatique ayant une architecture conventionnelle. Comme il en ressortira pour les hommes de métier au cours de cette description de modes de réalisation particuliers de l'invention, dans une implémentation pratique, le système d'ingestion de données 202 peut comprendre un composant d'un système distribué pour le traitement et le stockage de données à grande échelle. L'expression «à grande échelle» fait référence à un système de stockage de données qui contient un volume de données trop important pour être géré efficacement en utilisant une technologie conventionnelle de système de stockage. Pour résoudre ceci, des mécanismes décrits dans la présente impliquent le transfert de données à grande échelle à partir de systèmes de stockage de données conventionnels vers une platefonne de mégadonnées 9 pour en extraire des connaissances qui ne pourraient pas être obtenues dans le système de stockage de données conventionnel. En pratique, les ensembles de données de l'ordre de quelques dizaines de gigabytes et au-delà sont dits être «à grande échelle» dans le contexte des mécanismes décrits dans la présente. [0032] Dans le but de mieux clarifier un mode de réalisation exemplaire de l'invention, il est pratique initialement de considérer le système d'ingestion de données 202 comme étant un système informatique virtuel ou physique discret qui comprend un processeur 204 associé de façon opérationnelle à un dispositif de mémoire/stockage 206, p. ex. via un ou plusieurs bus de données/adresses 208 tels que représentés. Le stockage non volatile 206 peut être un disque dur et/ou peut inclure une mémoire non volatile à état défini, telle qu'une mémoire morte à lecture seule ROM, une mémoire flash, un disque dur électronique (SSD) ou autre stockage similaire. Le processeur 204 sert aussi d'interface avec le stockage volatile 210, tel que la mémoire vive à accès aléatoire RAM qui contient des instructions de programme et des données temporaires relatives au fonctionnement du système d'ingestion de données 202. [0033] Dans cette configuration, le dispositif de stockage 206 conserve un programme connu et un contenu de données pertinentes avec le fonctionnement normal du système d'ingestion de données 202. Par exemple, le dispositif de stockage 206 peut contenir des programmes de système d'exploitation et des données ainsi que d'autres logiciels d'application exécutables nécessaires pour les fonctions voulues du système d'ingestion de données 202. Le dispositif de stockage 206 contient aussi des instructions de programme qui, lorsqu'elles sont exécutées par le processeur 204, amènent le système d'ingestion de données 202 à effectuer des opérations relatives à un mode de réalisation de la présente invention, tel que décrit de façon plus détaillée ci-dessous en référence aux Figs. 3 à 6. En pratique, les instructions et les données stockées sur le dispositif de stockage 206 sont transférées vers la mémoire volatile 210 pour une exécution à la demande. [0034] Le processeur 204 est aussi associé fonctionnellement à une interface de commu- nications 212 d'une manière conventionnelle. L'interface de communications 212 facilite l'accès à un réseau étendu de communications de données, tel que l'Internet 216. [0035] Dans la pratique, le stockage volatile 210 contient un corps d'instructions de programme correspondant 214 transféré à partir du dispositif de stockage 206 et qui est configuré pour réaliser le traitement et d'autres opérations afin de mettre en oeuvre les caractéristiques de la présente invention. Les instructions de programme 214 comprennent une contribution technique à l'art, développée et configurée spécifiquement pour implémenter un mode de réalisation de l'invention qui va au-delà de la routine et des activités conventionnelles bien comprises en lien avec la prédiction d'exigences en matière de bagages, qui fera par ailleurs l'objet d'une description ci-dessous, particulièrement en référence aux Figs. 3 à 6. [0036] Concernant l'aperçu global précédent du système d'ingestion de données 202 et d'autres systèmes de traitement et dispositifs décrits dans cette spécification, les termes tels que «processeurs », « ordinateur» et ainsi de suite, sauf si le contexte exige autrement, doivent être interprétés comme faisant référence à un éventail d'implémentations possibles de dispositifs, d'appareils et de systèmes comprenant une combinaison de logiciels et de matériel. Cela inclut des dispositifs à processeur unique et à processeurs multiples et un appareil, incluant les dispositifs portables, les ordinateurs de bureau et divers types de systèmes de serveur, incluant du matériel collaboratif et des plateformes logicielles qui peuvent cohabiter ou être distribuées. Les processeurs physiques peuvent inclure des unités centrales de traitement (CPUs), à usage général, des processeurs de signaux numériques, des unités de traitement graphique (GPUs), des unités de traitement tensorielles (TPUs) et/ou d'autres dispositifs matériels appropriés pour une exécution efficace des programmes et des algorithmes requis. [0037] Les systèmes informatiques peuvent inclure des architectures conventionnelles d'ordinateur personnel ou d'autres platcformes matérielles à usage général. Les logiciels peuvent inclure des logiciels de sources libres et/ou des logiciels de systèmes d'exploitation vendus sur le marché en combinaison avec diverses applications et programmes de services. Autrement, les plateformes de traitement ou de calcul peuvent comprendre du matériel et/ou des architectures de logiciel adaptés sur mesure. Pour une extensibilité améliorée, les systèmes de traitement et de calcul peuvent comprendre des plateformes d'informatique en nuage permettant aux ressources matérielles physiques d'être attribuées de façon dynamique en réponse aux demandes de services. Bien que toutes ces variations rentrent dans le champ d'application de la présente invention, comme cela a déjà été noté des modes de réalisation exemplaires peuvent être décrits dans la présente avec une référence illustrative à un processeur unique, à des platefoimes informatiques à usage général configurées via le déploiement d'un logiciel à usage spécial mettant en oeuvre des aspects de l'invention. [0038] En particulier, les termes « unité de traitement » et «module» sont utilisés dans cette spécification pour désigner toute combinaison pertinente de matériel et de logiciels configurés pour mettre en oeuvre une tache définie particulière telle que : la réception, l'accès et le traitement de données de documents ; le calcul de vecteur de caractéristique correspondant aux données ou aux documents ; la mise en oeuvre de groupement et/ou la classification de données ou de documents sur la base des représentations de vecteur de caractéristique; la détermination, la sélection et l'application de stratégies de stockage de données sur la base de la similarité des données ou des 11 documents et/ou la classification ; et ainsi de suite. De telles unités de traitement peuvent comprendre un code exécutable qui s'exécute à un emplacement unique sur un dispositif de traitement unique (p. ex. le système d'ingestion de données 202) ou qui peut comprendre des modules collaboratifs de code exécutable qui s'exécutent à de multiples emplacements et/ou sur de multiples dispositifs de traitement. [0039] Les composants logiciels, p. ex. les instructions de programme 214, pour mettre en oeuvre les caractéristiques de l'invention peuvent être développés en utilisant tout langage de programmation approprié, environnement de développement ou combinaisons de langages et d'environnements de développement qui seront familiers aux hommes de métier spécialisés dans l'ingénierie logicielle. Par exemple, un logiciel approprié peut être développé en utilisant le langage de programmation C, le langage de programmation Java, le langage de programmation Scala, le langage de programmation C++, le langage de programmation Go, le langage de programmation Python, le langage de programmation R, et/ou tout autre langage approprié pour le développement de code pour un déploiement en conjonction avec des plateformes de données à grande échelle utilisant des technologies telles que Hadoope et Apache Sparke. Les hommes de métier comprendront cependant que les modes de réalisation de l'invention impliquent l'implémentation de structures logicielles et de code qui ne sont ni bien compris, ni routiniers ou conventionnels dans l'art du stockage de données distribuées à grande échelle et que même si des bibliothèques existantes peuvent aider à l'implémentation, elles nécessitent une configuration spécifique et une augmentation substantielle (c.-à-d. le développement de code supplémentaire) afin de réaliser les divers bénéfices et avantages de l'invention et d'implémenter les structures spécifiques, le traitement, les calculs et les algorithmes décrits ci-dessous particulièrement par référence aux Figs. 3 à 6. [0040] Les exemples suivants de langages, d'environnements, de plateformes et de bi- bliothèques de code ne sont pas censés être limitatifs et on comprendra que tout langage, bibliothèque, plateforme et système de développement approprié peut être utilisé conformément aux exigences du système. Les descriptions, diagrammes bloc, organigrammes et autres qui sont présentés dans cette spécification sont fournis à titre d'exemple pour permettre aux hommes de métier spécialisés dans l'ingénierie logicielle et l'apprentissage automatique de comprendre et d'apprécier les caractéristiques, la nature et la portée de l'invention et pour mettre un ou plusieurs modes de réalisation de l'invention en pratique par l'implémentation de code logiciel adapté en utilisant tous langages, structures, bibliothèques et systèmes de développement conformément à cette divulgation sans avoir à y apporter une ingéniosité inventive supplémentaire. [0041] Le code de programme mis en oeuvre dans une/un quelconque des applications/ 12 modules décrits dans les présentes peut être distribué individuellement ou collectivement comme un produit programme d'ordinateur, sous une variété de formes différentes. En particulier, le code de programme peut-être distribué en utilisant un support de stockage lisible par ordinateur ayant des instructions de programme lisibles par ordinateur pour amener un processeur à mettre en oeuvre des aspects des modes de réalisation de l'invention. [0042] Les supports de stockage de données lisibles par ordinateur peuvent inclure des médias tangibles volatiles et non volatiles, amovibles et non amovibles, implémentés dans tout procédé ou technologie de stockage de données, tels que des instructions de programme lisibles par ordinateur, des structures de donnée, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent aussi comprendre des mémoires : une mémoire vive à accès aléatoire (RAM), une mémoire morte à lecture seule (ROM), une mémoire à lecture seule programmable et effaçable (EPROM), une mémoire à lecture seule programmable et effaçable électriquement (EEPROM), une mémoire flash, ou autre technologie de support solide de mémoire, un disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou autre stockage optique, des cassettes magnétiques, une bande d'enregistrement magnétique, un disque de stockage magnétique ou autres dispositifs de stockage magnétique, ou tout autre support pouvant être utilisé pour stocker l'information désirée et apte à être lu par un ordinateur. Bien qu'un support de stockage lisible par ordinateur ne puisse pas comprendre de signaux transitoires en soi (p. ex. des ondes radio d'autres ondes électromagnétiques se propageant, des ondes électromagnétiques se propageant via un support de transmission tel qu'un guide d'ondes ou des signaux électriques transmis par un fil), les instructions de programme lisibles par ordinateur peuvent être téléchargées via de tels signaux transitoires sur un ordinateur, un autre type d'appareil de traitement de données programmable ou un autre dispositif à partir du support de stockage lisible par ordinateur ou vers un ordinateur externe ou un dispositif de stockage externe 'ia un réseau. [0043] Les instructions de programme lisibles par ordinateur, stockées sur un support lisible par ordinateur, peuvent être utilisées pour instruire un ordinateur, d'autres types d'appareils programmables de traitement ou d'autres dispositifs pour fonctionner d'une façon particulière, de sorte que les instructions stockées sur un support lisible par ordinateur produisent un article de fabrication comprenant les instructions qui implémentent les fonctions, les actions et/ou les opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies par un ou plusieurs processeurs sur un ordinateur à usage général, un ordinateur à usage spécial, ou tout autre appareil programmable de traitement de données pour produire une machine telle que les ins- 13 tructions qui s'exécutent par l'intermédiaire d'un ou de plusieurs processeurs provoquent une série de calculs devant être effectués pour implémenter les fonctions, actions et/ou opérations spécifiées dans les organigrammes, diagrammes séquentiels et/ ou diagrammes blocs. [0044] De retour à la discussion concernant la Figure 2, le système distribué 200 comprend par ailleurs une plateforme de mégadonnécs 218. Dans des modes de réalisation exemplaire décrits dans la présente, la plateforme de mégadonnées est basée sur Hadoop® Distributed File System (HDFS) pour le stockage des données et sur Apache Spark®pour un traitement hautement performant des données stockées dans le stockage HDFS. D'autres détails du fonctionnement de ces modes de réalisation exemplaires sont divulgués ci-dessous, en particulier en faisant référence à la Figure 3. La plateforme de mégadonnécs 218 est utilisée dans des modes de réalisation de l'invention pour réaliser le traitement, l'analyse, le groupement, la classification et l'appairage de données et des stratégies de stockage sous le contrôle du système d'ingestion de données 202 bien qu'elle ne soit pas limitée à ces fonctions. La plateforme de mégadonnécs 218 peut, par exemple, être aussi utilisée pour le stockage et pour servir des données aux applications ainsi que pour mettre en oeuvre d'autres traitements et analyses de données stockées dans le stockage HDFS. Par ailleurs, dans certains modes de réalisation, le système d'ingestion de données 202 peut lui-même être implémenté dans la plateforme de mégadonnécs 218, p. ex. en utilisant des ressources informatiques physiques et/ou virtuelles de la plateforme 218. [0045] Une pluralité de sources de données, p. ex. 220, 222, génère des informations qui peuvent prendre la forme de données structurées, serai-structurées et/ou non structurées 224 qui sont transférées vers la plateforme de mégadonnées 218. La transmission des données 224 peut se faire via l'Internet 216 ou via d'autres canaux de communication publics ou privés. [0046] Le système 200 inclut par ailleurs une base de données de couche de service 226. On comprendra que le stockage HDFS de la plateforme de mégadonnées est capable de stocker une variété de données entrantes 224 dans des formes structurées, semistructurées et non structurées, c.-à-d. avec très peu ou aucune transformation requise. Cependant, les données dans ses variétés de formats sont généralement inappropriées pour un traitement et une analyse ultérieurement. En particulier, des données entrantes ne sont pas typiquement dans une forme qui est optimisée pour la recherche et la récupération en réponse aux interrogations qui peuvent être reçues à la base de données de couche de service 226. Par conséquent, la transformation (c.-à-d. le traitement, le nettoyage et la normalisation des données) est généralement requise. Dans des modes de réalisation de l'invention cette transformation est fournie par le système d'ingestion de données qui inclut des composants logiciels (décrit par ailleurs dans les Figures 3 à 14 5) pour générer des stratégies de transformation et de stockage en utilisant la fonctionnalité fournie par la plateforme de mégadonnécs 218 et pour charger les données résultantes dans la base de données de couche de service 226 à partir de laquelle le traitement et l'analyse peuvent être effectués. À titre d'exemple, le système 200 est aussi montré avec inclusion d'un serveur d'applications 228 qui peut être configuré pour accéder aux données transformées stockées dans la base de données de couche de service 226 pour un traitement et une analyse ultérieurement. [0047] La Figure 3 est un diagramme bloc 300 illustrant l'architecture d'un système d'ingestion de données faisant partie de l'invention. Dans le mode de réalisation montré, un système de stockage de fichiers maîtres reçoit et stocke toutes les données entrantes 224, dont certaines, ou toutes peuvent par la suite être transférées individuellement et/ou en lots à une banque de données distribuées 304 dans la plateforme de mégadonnécs 218. On comprendra cependant que d'autres modes de réalisation de l'invention peuvent utiliser d'autres architectures de stockage. Par exemple, le stockage de fichiers rnaitres 302 peut être omis et les données entrantes 224 peuvent être transférées directement vers la banque de données distribuées 304. Quel que soit le cas, le transfert des documents d'informations entrants 224 vers la banque de données 304 de la plateforme de mégadonnécs 218 permet de réaliser le traitement des documents dans la plateforme 218. Conformément aux modes de réalisation de l'invention décrits dans la présente, la banque de donnée distribuée 304 est un stockage HDFS et le traitement est effectué en utilisant Apache Spark®. [0048] Dans des modes de réalisation de l'invention, des données sélectionnées sont transférées du système de stockage de fichiers maîtres 302 vers la base de données distribuée 304 sous la forme d'objets de documents. Dans ce contexte, un objet de document peut comprendre des données agrégées extraites d'une colonne de données entrantes tabulaires 224. De façon avantageuse, la construction d'objets de documents des colonnes de données tabulaires permet le traitement de données non structurées et servi-structurées, en plus des données structurées. Par exemple, les objets de documents peuvent être construits à partir d'une quelconque colonne présente dans les données tabulaires sans nécessiter qu'un schéma prédéfini soit disponible. Par ailleurs, la taille de chaque objet de document n'a pas besoin d'être prédéterminée et peut varier en fonction du nombre d'éléments dans la colonne correspondante. En pratique, une taille de document maximale peut être imposée basée sur un stockage de système et sur des limites de traitement et/ou des coûts. [0049] Comme le montre le diagramme bloc 300, le traitement des informations stockées dans la banque de données HDFS 304 est effectué dans deux modules logiciels principaux. Le premier module comprend une couche d'analytiques 306 qui implémente un processus d'analyse et de groupement des documents d'information et la génération de stratégies de stockage de données associées via un processus de simulation. Ce processus est décrit de façon plus détaillée ci-dessous en référence à la Figure 4. Les données résultant de l'analyse sont stockées dans une hase de données de classification 308. Lors de l'occurrence d'un événement subséquent, p. ex. l'arrivée d'un ou de plusieurs nouveaux documents d'informations, le contenu de la hase de données de classification peut être utilisé pour classer l'événement en fonction de sa similarité avec des événements analysés antérieurement. Cette classification permet au deuxième module qui comprend une couche basée sur des règles 310, de consulter unc stratégie de stockage de données correspondante dans un tableau de [nappage 312 qui est rempli de stratégies générées antérieurement par la couche d'analytiques 306. D'autres détails du fonctionnement dc la couche basée sur des règles sont décrits ci-dessous en faisant référence à la Figure 5. Les modules logiciels de couche d'analytiques 306 et de couche basée sur des règles 310 comprennent chacun un code exécutable développé et configure spécifiquement pour mettre en oeuvre des modes de réalisation de l'invention conformément aux procédés spécifiques exposés de façon plus détaillée ci-dessous en faisant référence aux Figures 4 et 5 et en fournissant unc contribution qui va bien au-delà et des approches bien comprises, routinières et conventionnelles d'ingestion dc données. [0050] Le système d'ingestion de données, tel qu'il est représenté par le diagramme bloc 300, inclut par ailleurs un module actionneur 314. La fonction du module actionneur 314 est d'appliquer des stratégies de stockage de données reçues du module de couche basée sur des règles 310 à des documents d'information stockés dans le système de stockage de fichiers maitres 302 afin de de remplir la couche de service 226. L'application de stratégies appropriées assure que les données sont stockées dans la couche de service 226 dans une forme permettant aux ap- plications 316 d'y accéder de façon efficace. Par exemple les stratégies peuvent servir à partitionner les données et/ou à ordonner les données à l'intérieur des partitions. Le partitionnement des données offre l'avantage de réduire l'espace de recherche pour les interrogations reçues des applications 316 résultant en une gestion plus facile de la recherche et en une amélioration de la vitesse de recherche et du temps de réponse du système. Par ailleurs, le provisionnement de l'ordonnancement de données intel- ligentes - le classement d'éléments -dans chaque partition de l'espace de données peut améliorer la pertinence des résultats de recherche. D'autres stratégies peuvent comprendre la génération de structures de donnée nichées par exemple en agrégeant des données sur une ou plusieurs clés sélectionnées afin de créer des transformations efficaces. [0051] La Figure 4 est un organigramme illustré 400 d'un processus d'analyse de données implémenté par le module de couche d'analytiques 306. À l'étape 402, les documents 16 d'informations 224 sont reçus par le module 306. Les documents peuvent être présentés comme des objets Java qui permettent le stockage et le traitement dans Spark d'un large éventail d'informations structurées, semi-structurées ou non structurées. À l'étape 404, un processus d'intégration de caractéristiques est utilisé pour générer des représentations de vecteur de caractéristique 406 des objets de documents 224. Conformément à un mode de réalisation exemplaire de l'invention, les caractéristiques sont générées à partir de valeurs de données numériques en utilisant des compteurs, p. ex. via un algorithme vectoriscur de compte alors que les caractéristiques sont générées à partir de valeurs de données catégorielles en utilisant un algorithme de fréquence de termes - fréquence inverse de documents (TF-IDE). À l'étape 408, les caractéristiques représentant des pluralités de documents liés (p. ex. des documents de source commune et/ou ayant un format ou un contenu commun) sont agrégées (p. ex. moyennées ou autrement regroupées) et/ou concaténées pour former des vecteurs agrégés 410. [0052] À l'étape 412, les vecteurs résultants sont groupés au 414 en utilisant des techniques de groupement. En particulier, dans un mode de réalisation exemplaire une classification de documents non supervisée est déterminée en évaluant une mesure de distance entre les vecteurs de document correspondants, les documents «plus proches » étant considérés comme plus similaires et donc plus susceptibles de bénéficier d'un traitement de données et de stratégies de stockage similaires. Spécifiquement, un mode de réalisation exemplaire utilise une API de hachage sensible à la position de Spark (LSH) pour mettre en oeuvre la recherche du voisin approximativement le plus proche (ANN) à travers les vecteurs de documents afin d'identifier des documents similaires. Lorsque la mesure de distance est une distance euclidienne, un algorithme LSH de projection aléatoire en bac (BRP) est utilisé pour accomplir la recherche ANN. [0053] À l'étape 416, les stratégies de données 418, 420, correspondant aux agrégats de documents identifiés 414, sont calculées. Dans Spark®- les stratégies de données peuvent être calculées en utilisant l'optimiseur catalytique de Spark SQL. Le processus d'optimisation commence avec le calcul d'une relation qui, dans des modes de réalisation de l'invention, peut être une interrogation SQL représentant des données à extraire du stockage de fichiers maitres 302 vers la couche de service 226 par le module actionneur 314. L'interrogation est analysée pour générer un arbre de syntaxe abstraite (AST) à partir duquel un plan logique non résolu est généré. Spark SQL utilise des règles catalytiques et un objet de catalogue qui suivent les tableaux dans toutes les sources de données pour résoudre des attributs non résolus et pour générer un plan logique qui est optimisé et ensuite utilisé pour générer un ou plusieurs plans physiques en utilisant des opérateurs physiques qui sont compatibles avec le moteur d'exécution Spark®. Un modèle de coût peut ensuite être utilisé pour identifier un plan 17 physique au coût le plus bas. L'optimiscur peut ensuite générer un code et des ensembles de données distribuées résilients (RDDs) 422 pour un stockage et une analyse des données efficaces. Les plans physiques générés et les RDDs représentent une transformation de données optimisée et des stratégies de stockage déterminées par l'optimiscur catalytique qui peuvent être utilisées comme hase pour des stratégies correspondantes pour la transformation dc données et de stockage dans la couche de service 226, c.-à-d. en dehors de la plateforme de mégadonnécs 218. De cette façon, les modes de réalisation de l'invention utilisent la fonctionnalité de la plateforme dc mégadonnécs 218 pour effectuer l'analyse des données et obtenir des connaissances et des stratégies qui peuvent ensuite être déployées en dehors de la plateforme 218, par exemple dans le système de hase de données hérité représenté par la couche de service 226. [0054] La Figure 5 est un organigramme illustré d'un processus exécuté par le module de couche d'analytiques 306, le module de couche basé sur des règles 310 et le module actionneur 314. À l'étape 502, un nouvel objet de document 504 est reçu par le module de couche d'analytiques 306 qui génère au 506 un document correspondant intégrant le vecteur 508, conformément aux procédés décrits précédemment en lien avec l'étape 404 montrée dans la Figure 4. À l'étape 510, le module de couche d'analytiques classe le nouvel objet de documents en réalisant une recherche ANN via l'API Spark® LSH pour identifier l'agrégat existant 512 avec lequel le document est associé de la façon la plus proche. Cette classification est utilisée pour identifier une action associée qui est passée par la couche basée sur des règles. Le module de couche basée sur des règles 310 consulte ensuite au 514 une stratégie de données correspondante dans son tableau de mappage 516. La stratégie identifiée est actionnée au 518 par le module actionneur 314 donnant lieu à l'exécution au 520 des transformations de données, telles que le partitionnement et/ou l'ordonnancement des tableaux de données pour un stockage dans la couche de service 226. Par conséquent, les données sont ingérées au 522 à partir du stockage de fichiers maîtres 302 dans le stockage de la couche de service 226. [0055] À titre d'exemple plus spécifique, la Figure 6 est un diagramme bloc illustrant les flux d'informations dans un système de base de données mettant en oeuvre l'invention qui est configuré pour une utilisation dans l'industrie du voyage. En particulier, ce système exemplaire peut intégrer un système de distribution mondiale (GDS) qui est un système de réservation informatique (CRS) capable de réserver et de vendre des billets pour des services offerts par de multiples fournisseurs de services de voyage. Des implémentations de GDS existantes sont généralement basées sur des systèmes de gestion de bases de données relationnelles (RDBMS) qui servent d'interface à de nombreux fournisseurs, agents de services de voyage, fournisseurs de services sur le 18 web et applications d'utilisateurs finaux. Il n'est donc généralement pas pratique de migrer les bases de données GDS héritées vers des plateformes modernes de mégadonnées basées sur des technologies telles que HDFS et Spark®. Cependant en même temps, ces systèmes hérités gèrent de grandes quantités de données et sont souvent incapables d'analyser et d'ingérer de nouvelles données en temps réel cc qui peut entraîner des temps morts, des erreurs et/ou des retards pour fournir dès résultats de recherche actualisés et des options tarifaires de voyage aux utilisateurs. Cependant, en utilisant un mode de réalisation de la présente invention ces difficultés peuvent être atténuées. [0056] Comme le montre la Figure 6, des données « brutes » 602 sont transmises par les fournisseurs de services de voyage, tels que des compagnies aériennes, au GDS où elles sont stockées dans les bases de données de fichiers maitres comprenant des règles 604 et des informations tarifaires 606. Les règles et les informations tarifaires peuvent aussi être agrégées dans une seule base de données de fichiers maitres 608. Afin d'analyser les données brutes entrantes 602 et de déterminer des stratégies pour les transformer afin qu'elles soient recherchées avec plus d'efficacité et de fiabilité et récupérées en réponse à des interrogations reçues par le GDS, des objets de documents sont construits à partir des données dans la hase de données maîtresse d'informations tarifaires 606 et sont transférés vers la plateforme de mégadonnées 218. Dans le mode de réalisation 600, les objets de documents sont stockés dans la couche HDFS 610 et traités dans l'environnement informatique distribué, p. ex. Sparke 612, afin de générer des connaissances et des stratégies de transformation/stockage 614 ainsi que décrites de façon plus détaillée ci-dessus en référence à la Figure 5. Les stratégies optimisées sont réinjectées dans le RDBMS comme données actionnables qui peuvent être implémentées au 616 pour transformer des tableaux de données de fichiers maitres 608 en tableaux de données traitées 618 adaptés à une recherche efficace et à une récupération par un moteur d'interrogation tarifaire 620 en réponse à des interrogations reçues d'applications clientes (p. ex. les utilisateurs finaux) 622. [0057] Pour illustrer par ailleurs le type de connaissances actionnables qui peuvent être générées par des modes de réalisation de l'invention, les figures 7 A - D montrent des stratégies de partitionnement de tableaux exemplaires qui peuvent être dérivées du système représenté par le diagramme bloc 600 de la Figure 6. Le tableau 700 (Figure 7A) représente un petit échantillon de données tarifaires d'une transmission par une seule compagnie aérienne qui dans ce cas est Air France (code ligne aérienne AF). À partir de cet échantillon de données on peut voir que le schéma du fichier tarifaire maitre comprend : l'ID du propriétaire ; le code de la ligne aérienne (c.-à-d. le transporteur) (p. ex. « AF»); le numéro de tarif ; le numéro de règle ; la classe de tarif ; une première ville (c.-à-d. la ville d'origine du vol); une deuxième ville (c.-à-d. la ville 19 de destination du vol); le type de tarif; et le numéro de routage. De grands volumes de ce type de données reçues de multiples transporteurs doivent être conservés par un GDS. Le GDS doit par ailleurs répondre rapidement aux interrogations tarifaires reçues des applications clientes pour fournir des listes d'options classées pour des itinéraires et des tarifs répondant aux exigences de voyage requises par le client. En pratique, les tableaux de fichiers maitres (p. ex. 700) peuvent être extrêmement volumineux et ne pas être structurés de façon optimale pour des recherches tarifaires et pour le classement. Cependant, en utilisant des connaissances et des stratégies dérivées d'une analyse rapide dans le système de mégadonnécs 218, les données de fichiers maitres 608 peuvent être transformées avec efficacité en tableaux de données traitées 618 qui sont plus pertinents pour une utilisation dans des interrogations générées via le moteur d'interrogation tarifaire 620. [0058] Dans un exemple, la transformation peut comprendre le partitionnement des données en utilisant deux ou plusieurs clés d'agrégation. Le tableau 702 (Figure 7B) illustre l'impact du partitionnement des données basées sur « le marché» qui est une agrégation des villes d'origine et de destination, c.-à-d. les colonnes première ville et deuxième ville dans le tableau 700. Les partitions résultantes par code de ligne aérienne varient en taille dans cet exemple, d'environ 33 000 à 157 000 éléments. L'effet d'un autre partitionnement par numéro tarif est montré dans le tableau 704 (Figure 7C) où les partitions exemplaires varient maintenant en taille jusqu'à environ 64 000 éléments. Le tableau 706 (Figure 7D) illustre un autre partitionnement par numéro_règle dans lequel la taille de partition maximale est maintenant juste en dessous de 60 000 éléments. [0059] En utilisant ces principes, divers tableaux prétraités, c.-à-d. groupés, partitionnés et/ ou ordonnés, peuvent être stockés dans la banque de données traitées 618 pour une utilisation par le moteur d'interrogation tarifaire 620. Les connaissances nécessaires pour déterminer la forme optimisée des données prétraitées sont obtenues en utilisant la fonctionnalité de la plateforme de mégadonnées 218 qui peut être appliquée de la façon décrite ci-dessus en référence à la Figure 4 afin d'analyser des interrogations représentatives de celles qui sont générées par le moteur d'interrogation tarifaire 620 et pour générer les plans physiques et logiques qui correspondent. Ces plans révèlent comment le planificateur d'interrogations dans la plateforme de mégadonnées (p. ex. en utilisant l'optirniseur catalytique Spark SQL) sélectionnerait, partitionnerait et ordonnerait des données lors de l'exécution de ses interrogations. Cette information est utilisée pour générer des stratégies pour prétraiter des données de fichiers maitres 608 en tableaux joints, partitionnés et/ou ordonnés dans la banque de données traitées 618. Par conséquent, lorsqu'une interrogation est exécutée par le moteur d'interrogation tarifaire 620, les données sont déjà dans une forme permettant à l'interrogation d'être implémentée de façon efficace pour générer des résultats classés avec un minimum d'autres jonctions, partitionnements et/ou tris des données. [0060] De plus, un avantage particulier des modes de réalisation de l'invention est la capacité à gérer l'ingestion d'événements de stockage de données précédemment inaperçus et/ou anormaux. Pour démontrer cette capacité, un mode de réalisation de l'invention, tel qu'illustré dans la Figure 6, a été appliqué à un ensemble de données exemplaires comprenant des documents d'information de transmission (c.-à-d. des informations de prix et de disponibilité) de six lignes aériennes, notamment Delta (DL), United Airlines (UA), Singapore Airlines (SQ), Qatar Airways (QA), British Airways (BA) et Air France (AF). Un test utile de l'efficacité d'un tel mode de réalisation de l'invention est de montrer qu'il est capable de faire la distinction entre des événements de transmission avec efficacité et par conséquent de sélectionner et d'appliquer des stratégies de données appropriées. [0061] La Figure 8 est un diagramme 800 montrant les résultats d'une mesure de distance euclidienne calculée de six transmissions de ligne aérienne relatives aux transmissions DL. L'axe horizontal 802 représente la distance euclidienne alors que les résultats pour les six groupes de transmission sont séparés verticalement. Les points de données dans chacun des six groupes représentent des proportions différentes de l'ensemble complet de données disponibles qui est utilisé pour calculer les vecteurs intégrateurs de caractéristiques agrégées jusqu'à un maximum de 30 % (limités, dans le cas exemplaire, par les ressources informatiques disponibles). Le groupe du bas 804 représente les transmissions DL qui (par définition) ont une distance relative de zéro. Pour le but de cet exemple. DL a été choisi comme référence parce qu'il s'agit d'une anomalie connue dont les transmissions présentent des caractéristiques différentes des transmissions des autres lignes aériennes. Les autres transmissions de lignes aériennes ont des caractéristiques quelque peu similaires les unes par rapport aux autres et sont donc groupées dans une gamme de distances relativement petite par rapport à la référence DL. Dans l'ordre des distances et en progressant verticalement, le diagramme 800 montre les mesures de distances pour UA 806, SQ 808, QR 810, BA 812, et AF 814. Il faut noter que les distances augmentent généralement avec des volumes croissants de données ce qui est cohérent avec l'expectative que plus de données permettent aux différences d'émerger plus clairement bien qu'il apparaisse que les distances se soient stabilisées de façon substantielle après le traitement, jusqu'à 30 % de l'ensemble complet de données. [0062] Les résultats de la Figure 8 confirment la capacité des modes de réalisation de l'invention à faire la distinction de façon notable des événements de données périphériques ou anormaux en utilisant une approche de groupement basée sur des intégrations de caractéristiques du contenu des objets de documents comprenant un 21 éventail de données non structurées, serai-structurées et structurées. Les événements correspondants avec, ou suffisamment similaires à des événements identifiés précédemment peuvent être identifiés sur la hase d'une mesure de distance, p. ex. par l'utilisation d'un algorithme ANN, de sorte que des stratégies associées d'analyse de données et de stockage peuvent être utilisées au cours de l'ingestion de données pour rendre les données pertinentes disponibles aux applications, via une couche de service, d'une manière efficace et ponctuelle. [0063] On notera que bien que des modes de réalisation particuliers et des variations de l'invention ont été décrits dans les présentes, d'autres modifications et alternatives seront apparentes aux hommes de métier spécialisés dans les arts pertinents. En particulier, les exemples sont offerts dans le but d'illustrer les principes de l'invention et pour fournir un nombre de procédés et d'arrangements spécifiques pour mettre en oeuvre ces principes. En général, les modes de réalisation de l'invention comprennent la provision d'arrangements techniques pour la gestion de données par lesquels les documents d'informations comprenant des données non structurées, sen-il-structurées et/ou structurées sont traités dans une plateforme de données à grande échelle. En particulier, les représentations de vecteur de caractéristique sont calculées et groupées selon une approche d'apprentissage non supervisé pour identifier un ou plusieurs agrégats de documents similaires. Dans chaque agrégat de documents, une ou plusieurs stratégies de données sont générées pour le stockage de données correspondantes dans une couche de stockage de service qui peut être accédée et traitée par ailleurs par des applications externes. Lors du traitement d'événements de données subséquents, p. ex. l'arrivée de nouveaux documents d'informations dans la plateforme de données à grande échelle, une ou plusieurs représentations de vecteur de caractéristique des nouveaux contenus de documents peuvent être générées et classées selon les agrégats identifiés précédemment pour déterminer une stratégie appropriée pour l'ingestion des nouvelles données. De façon avantageuse, ces modes de réalisation sont capables de gérer de façon autonome l'ingestion de nouveaux documents d'information sur la base des caractéristiques des contenus de documents qui sont capturées par les représentations de vecteur de caractéristique de sorte que des actions acceptées peuvent être sélectionnées sur la base d'événements passés réduisant ainsi le besoin d'intervention manuelle dans l'ingestion et la transformation des données. [0064] Les modes de réalisation décrits doivent être interprétés comme étant fournis à titre d'exemple dans le but d'enseigner les caractéristiques et les principes généraux de l'invention, mais ne doivent pas être interprétés comme limitant la portée de l'invention. [Revendication I] REVENDICATIONS[Revendication 2] Un procédé d'ingestion de données destiné à être utilisé dans un système de hase de données à grande échelle qui comprend : la récupération d'une pluralité d'objets de documents d'une banque de données à grande échelle ; [Revendication 3] Le calcul d'une pluralité correspondante de représentations de vecteur de caractéristique de contenu des objets de documents ; Le groupement des représentations de vecteur de caractéristique conformément à une approche d'apprentissage non supervisé pour identifier un ou plusieurs agrégats de documents similaires ; pour chaque agrégat identifié, la génération et le stockage d'au moins une stratégie pour la transformation et/ou le stockage des données associées dans une banque de données de service ; la détection d'un événement comprenant l'arrivée d'un ou de plusieurs nouveaux objets de documents dans une banque de données à grande échelle ; le calcul d'une ou de plusieurs représentations de vecteur de caractéristique correspondantes des contenus des nouveaux objets de documents ; la classification des nouveaux objets de documents tels qu'ils sont associés à un des agrégats identifiés conformément à l'approche d'apprentissage non supervisé ; la récupération d'une des stratégies stockées pour la transformation et/ ou le stockage de contenu de données des nouveaux objets de documents sur la base de la classification ; et l'exécution de la stratégie récupérée pour la transformation et/ou le stockage du contenu de données des nouveaux objets de document dans la banque de données de service. Le procédé de la revendication 1 dans lequel le calcul des représentations de vecteur de caractéristique des objets de documents, l'identification des agrégats de documents similaires, la génération de stratégies pour la transformation et/ou le stockage des données associées et la classification des nouveaux objets de documents sont implémentés dans un système informatique distribué qui est optimisé pour le traitement de mégadonnées. Le procédé de la revendication 1 ou de la revendication 2 dans lequel l'exécution de la stratégie récupérée pour la transformation et/ou le 23 stockage des contenus de données des nouveaux objets de document dans la banque de données de service est implémentée dans un système de hase de données hérité. [Revendication 4] Le procédé de l'une quelconque des revendications 1 à 3 dans lequel chacun de la pluralité des objets de documents comprend des données agrégées extraites d'une colonne de données tabulaires. [Revendication 5] Le procédé de la revendication 4 dans lequel les représentations de vecteur de caractéristique de contenu des objets de documents comprennent des caractéristiques représentatives de la densité des éléments à l'intérieur de chaque objet de document. [Revendication 6] Le procédé de la revendication 5 dans lequel une ou plusieurs valeurs de caractéristiques sont calculées en utilisant an algorithme de fréquence des ternies - fréquence inverse des documents. [Revendication 7] Le procédé de l'une quelconque des revendications 1 à 6 dans lequel l'approche d'apprentissage non supervisé comprend le calcul d'une métrique de distance entre les représentations de vecteur de caractéristique en utilisant un algorithme du voisin approximativement le plus proche, ANN. [Revendication 8] Le procédé de la revendication 7 dans lequel la métrique de distance est une distance euclidienne et l'algorithme ANN comprend un algorithme de hachage sensible à la position de la projection aléatoire en bac. [Revendication 9] Le procédé de la revendication 7 ou de la revendication 8 dans lequel la classification des nouveaux objets de documents comprend la mise en oeuvre d'une recherche ANN à travers les représentations de vecteur de caractéristique de la pluralité des objets de documents. [Revendication 10] Le procédé de l'une quelconque des revendications 1 à 9 dans lequel les stratégies pour la transformation et/ou le stockage sont stockées dans un tableau qui mappe les classifications correspondant à des agrégats identifiés sur les stratégies et l'étape de récupération d'une des stratégies stockées comprend la mise en oeuvre d'une consultation de la classification des nouveaux objets de documents dans le tableau. [Revendication 11] Le procédé de l'une quelconque des revendications 1 à 10 dans lequel les stratégies pour la transformation et/ou le stockage comprennent des stratégies pour partitionner les données. [Revendication 12] Le procédé de la revendication 11 dans lequel les stratégies pour la transformation et/ou le stockage comprennent des stratégies pour ordonner les données dans les partitions. [Revendication 13] Un système de base de données pour l'ingestion de données qui 24 comprend une banque de données à grande échelle : un système informatique distribué optimisé pour le traitement de mégadonnées ; une banque de données de services ; et un dispositif informatique configure pour mettre en oeuvre l'ingestion de données, le dispositif informatique comprenant au moins un processeur et au moins un dispositif de mémoire accessible au processeur, dans lequel le dispositif de mémoire contient un corps d'instructions de programme qui lorsqu'il est exécuté par le processeur amène le dispositif informatique à implémenter un procédé comprenant les étapes suivantes : le transfert d'une pluralité d'objets de documents de la banque de données à grande échelle vers le système informatique distribué ; le calcul, dans le système informatique distribué, d'une pluralité correspondante de représentations de vecteur de caractéristique de contenu des objets de documents ; le groupement, dans le système informatique distribué, des représentations de vecteur de caractéristique conformément à une approche d'apprentissage non supervisé pour identifier un ou plusieurs agrégats de documents similaires ; pour chaque agrégat identifié, la génération dans le système informatique distribué d'au moins une stratégie pour la transformation et/ ou le stockage des données associées ; le stockage de la stratégie pour la transformation et/ou le stockage de données associées destinées à être utilisées par la banque de données de service ; la détection d'un événement comprenant l'arrivée d'un ou de plusieurs nouveaux objets de documents dans une banque de données à grande échelle ; le transfert des nouveaux objets de documents de la banque de données à grande échelle vers le système informatique distribué ; le calcul, dans le système informatique distribué, d'une pluralité correspondante de représentations de vecteur de caractéristique de contenu des nouveaux objets de documents ; la classification, dans le système informatique distribué, des nouveaux objets de documents tels qu'ils sont associés à un des agrégats identifiés conformément à l'approche d'apprentissage non supervisé ; 25 [Revendication 14] la récupération d'une des stratégies stockées pour la transformation et/ ou le stockage de contenu de données des nouveaux objets de documents sur la hase de la classification ; et l'exécution de la stratégie récupérée pour la transformation et/ou le stockage du contenu de données des nouveaux objets de document dans la banque de données de service. Un produit programme d'ordinateur comprenant des instructions de code de programme stockées sur un support lisible par ordinateur pour mettre en oeuvre les étapes du procédé selon l'une quelconque des revendications 1 à 12 lorsque ledit programme fonctionne sur un ordinateur.