Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PRECONDITIONING AND ENCODING A DATA TABLE AND METHOD FOR THE IMPLEMENTATION OF TABLE REQUESTS ON A VECTORAL PROCESSOR
Document Type and Number:
WIPO Patent Application WO/2000/060498
Kind Code:
A1
Abstract:
The invention relates to a search engine (2) that is implemented by a decisional applications server (1) acting on a relational database (6) containing a set of target articles. The search engine (2) is activated by article selection queries according to given criteria and comprises means (8) for preconditioning the database (6), supplying a preconditioned coded table (10) which is periodically updated at the same time as the relational data base itself to a vectoral feature machine (9) for the treatment thereof. Said search engine also contains means (7) for extracting said target articles which are activated by queries on the basis of the result of the treatment of the table (10) installed in the vectoral feature machine (9) from the relational data base (6). The invention can be used in data warehousing systems.

Inventors:
NIVELET BERNARD (FR)
Application Number:
PCT/FR1999/002441
Publication Date:
October 12, 2000
Filing Date:
October 11, 1999
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BULL SA (FR)
NIVELET BERNARD (FR)
International Classes:
G06F7/00; G06F17/30; G06F12/00; (IPC1-7): G06F17/30
Foreign References:
US4644471A1987-02-17
Other References:
SHUN'ICHI TORII ET AL: "ACCELERATING NON-NUMERICAL PROCESSING BY AN EXTENDED VECTOR PROCESSOR", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON DATA ENGINEERING,US,WASHINGTON, IEEE COMP. SOC. PRESS, vol. CONF. 4, 1 July 1988 (1988-07-01), pages 194-201, XP000124091
KOJIMA K ET AL: "A RELATIONAL DATABASE SYSTEM ARCHITECTURE BASED ON A VECTOR PROCESSING METHOD", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON DATA ENGINEERING,US,WASHINGTON, IEEE COMP. SOC. PRESS, vol. CONF. 3, 1987, pages 182-189, XP000757760
ANONYMOUS: "Query Processing With Existing Vector Feature Machines", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 32, no. 5A, October 1989 (1989-10-01), New York, US, pages 305 - 306, XP002124414
Attorney, Agent or Firm:
Leroux, Jean-philippe (route de Versailles Louveciennes Cedex, FR)
Download PDF:
Claims:
REVENDICATIONS 1. Procédé de préconditionnement d'une ou plusieurs tables de données d'un serveur applicatif décisionnel (1), destinée à tre traitée par un moteur de recherche (2) répondant à des requtes de sélection d'articles sur des critères déterminés, émises par le serveur applicatif décisionnel (1), caractérisé en ce qu'il consiste à : -analyser (14) les prédicats contenus dans les champs des articles destinés à remplir la base de données relationne
1. l.
2. le (6) en fonction de relations autorisée déterminés ; créer (16) une nomenclature (17) des prédicats à partir de cette analyse ; coder (15) numériquement les prédicats conformément à la nomenclature (17), en tenant compte de la nature des prédicats et des relations à mettre en oeuvre sur les prédicats dans les requtes ; et en ce qu'il consiste à présenter les prédicats codés, sous la forme d'une table (10) de valeurs numériques.
3. Procédé selon la revendication 1, caractérisé en ce que le codage consiste à remplacer les valeurs des prédicats par leur index dans la nomenclature des valeurs possibles.
4. Procédé selon la revendication 1, caractérisé en ce que le codage compacte les données.
5. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le codage prend en compte le type de requte servie.
6. Procédé de recherche d'articles, en réponse à une requte déterminée, dans une table de données, caractérisé en ce qu'il consiste à installer une copie (10) de la table de valeurs numériques obtenue par le procédé selon l'une quelconque des revendications 1 à 4, sur une machine à capacité vectorielle (9) opérant le traitement des valeurs numériques du tableau en fonctions de la requte servie par le serveur applicatif décisionnel (1).
7. Procédé selon la revendication 5, caractérisé en ce que la requte est exprimée par un ou plusieurs vecteurs représentatifs des valeurs recherchées dans un champ, et en ce que le traitement consiste à comparer le ou les vecteurs à toutes les lignes du tableau, colonne par colonne, en conservant pour chaque coïncidence le numéro de la ligne.
8. Procédé selon la revendication 6, caractérisé en ce qu'il consiste, à partir de l'ensemble des numéros des lignes sélectionnées et de la base de données relationnelle (6) comprenant un champ additionnel contenant le numéro des lignes, à extraire de la base de données relationnelle (6) les articles recherchés en clair dont les numéros correspondent, en réponse à une requte.
9. Procédé selon les revendications 6 ou 7, caractérisé en ce qu'il consiste à exprimer les résultats du traitement sous forme statistique dont une synthèse est fournie en réponse à une requte.
10. Procédé selon l'une quelconque des revendications 5 à 8, caractérisé en ce que la machine à capacités vectorielles (9) est un supercalculateur.
11. Système de recherche mis en oeuvre par un serveur applicatif décisionnel (1) comportant une base de données relationnelle (6) contenant un ensemble d'articles cible, et un moteur de recherche (2) couplé au serveur applicatif décisionnel (1), activé par une requte de sélection d'articles sur des critères déterminés émise par le serveur applicatif décisionnel (1), caractérisé en ce que le moteur (2) comporte des moyens (8) de préconditionnement des données de la base (6) et d'installation d'une table codée (10), correspondant à la base (6), sur une machine à capacités vectorielles (9), ces moyens (8) comportant : des moyens (13) de lecture d'un fichier de données correspondant à la base ; des moyens (16) pour constituer une nomenclature (17) des valeurs des champs contenus dans le fichier ; des moyens (15) de codage des champs conformément à la nomenclature (17) en tenant compte de la nature des champs et des relations à mettre en oeuvre sur les prédicats dans la requte ; des moyens (21) d'analyse des requtes émises par le serveur applicatif décisionnel (1), en tenant compte de relations autorisées, des contraintes sur les prédicats et de la nomenclature (17) ; et des moyens (22) de codage de la requte filtrée, en un ensemble de vecteurs contenant les valeurs à trouver dans les champs selon les relations associées, sous forme d'un fichier d'entrée exploitable par la machine à capacités vectorielle (9).
12. Système selon la revendication 10, caractérisé en ce qu'il comporte en outre des moyens (23) pour extraire en clair les données recherchées dans le fichier résultat obtenu en sortie de la machine à capacités vectorielle (9) à partir de moyens de recherche installés dans le serveur applicatif décisionnel (1).
13. Système selon l'une quelconque des revendications 10 et 11, caractérisé en ce qu'il comporte en outre, un agent d'administration (24) surveillant l'activité de la machine à capacités vectorielles, gérant les anomalies, et activant les moyens de recherche sur la machine à capacités vectorielles (9).
Description:
PROCEDE DE PRECONDITIONNEMENT ET DE CODAGE D'UNE TABLE DE DONNEES, ET PROCEDE DE MISE EN OEUVRE DE REQUETES TABULAIRES SUR UN PROCESSEUR VECTORIEL

La présente invention concerne un procédé de préconditionnement d'une table de données destinée à tre utilisé par un moteur de recherche répondant à des requtes de sélection d'articles sur des critères déterminés.

Elle concerne également un procédé de recherche d'articles, en réponse à une requte déterminée, dans une table de données et un moteur de recherche agissant sur une table de données contenant un ensemble d'articles cible, activé par des requtes de sélection d'articles sur des critères déterminés.

Le domaine d'application est celui de l'entrepôt de données plus connu sous la terminologie anglo-saxonne de"data warehousing". II s'adresse plus particulièrement à de grandes bases de données historiques, relativement stables dans le temps à partir desquelles on veut pouvoir extraire des populations définies par critères avec une sollicitation très fréquente et des temps de réponse les plus faibles possibles.

Typiquement ces bases peuvent contenir plusieurs millions d'articles pouvant comporter chacun plusieurs centaines de champs et les temps de réponse à des requtes standards peuvent tre longs alors que l'utilisateur souhaiterait qu'ils soient de l'ordre de la seconde. Elles sont mises à jour périodiquement, au plus chaque nuit.

Les clients potentiels de ce type de bases sont par exemple, la grande distribution, les banques et les assurances.

La grande distribution manipule des bases historiques des caisses et des cartes d'achat pour rechercher des populations cible pour le marketing direct.

Les banques et les assurances manipulent également de telles bases historiques relatives à des ordres client, pour des recherches de populations, clientes potentielles de nouveaux produits, etc.

On connaît des solutions reposant sur la mise en oeuvre du parallélisme pour l'extraction d'articles sur unités de stockage.

Toutes les solutions connues utilisent un mécanisme de gestion de bases de données relationnelles mises à jour et consultées depuis un environnement réseau. Ce mécanisme est connu sous I'acronyme RDBMS (Relational DataBase Management System).

Dans un premier type de solution, un moteur de recherche SQL (Search Query Language), complètement propriétaire, est construit sur une architecture hautement parallèle à base de noeuds multiprocesseurs pilotant des disques sur lesquels la base de données est répartie. Les requtes sont fractionnées sur les différents noeuds, puis sur les processeurs.

Cette solution a comme principal inconvénient d'avoir un rapport prix/performance qui reste élevé. Ainsi, pour atteindre de hautes performances, les configurations doivent tre importantes, donc très coûteuses.

Un deuxième type de solutions utilise des logiciels de bases de données relationnelles standards sur des machines standards généralement multiprocesseurs.

Dans ce deuxième type de solutions, un moteur de recherche SQL standard met en oeuvre le parallélisme élevé suivant les mmes principes que les solutions du premier type mais avec des variantes d'architecture sur les mécanismes de fractionnement des requtes et sur la gestion des antémémoires.

Les inconvénients de ce deuxième type de solutions sont les mmes que ceux du premier type, aggravés d'une perte de performance due à la lourdeur du logiciel qui est une conséquence de sa généralité.

L'invention a notamment pour but de pallier ces inconvénients en fournissant un moteur de recherche assez puissant pour effectuer dans des délais très courts, de l'ordre de quelques secondes, sur des tables de données de grande dimension mais stables dans le temps (mises à jour périodiques, au plus chaque nuit), des requtes de sélection d'articles sur critères.

A cet effet, l'invention a pour premier objet un procédé de préconditionnement d'une ou plusieurs tables de données d'un serveur applicatif décisionnel, destinée à tre traitée par un moteur de recherche répondant à des requtes

de sélection d'articles sur des critères déterminés, émises par le serveur applicatif décisionnel.

Le procédé selon l'invention consiste à : -analyser les prédicats contenus dans les champs des articles destinés à remplir la base de données relationnelle en fonction de relations autorisée déterminés ; -créer une nomenclature des prédicats à partir de cette analyse ; -coder numériquement les prédicats conformément à la nomenclature, en tenant compte de la nature des prédicats et des relations à mettre en oeuvre sur les prédicats dans les requtes.

II consiste enfin à présenter les prédicats codés, sous la forme d'une table de valeurs numériques.

L'invention a pour deuxième objet un procédé de recherche d'articles, en réponse à une requte déterminée, dans une table de données, consistant à installer une copie de la table de valeurs numériques obtenue par le procédé précédent, sur une machine à capacité vectorielle opérant le traitement des valeurs numériques du tableau en fonctions de la requte servie par le serveur applicatifdécisionnel.

Enfin elle a pour troisième objet un système de recherche mis en oeuvre par un serveur applicatif décisionnel comportant une base de données relationnelle contenant un ensemble d'articles cible, et un moteur de recherche couplé au serveur applicatif décisionnel, activé par une requte de sélection d'articles sur des critères déterminés émise par le serveur applicatif décisionnel.

Selon l'invention, le système est caractérisé en ce que le moteur comporte des moyens de préconditionnement des données de la base et d'installation d'une table codée, correspondant à la base, sur une machine à capacités vectorielles, ces moyens comportant : -des moyens de lecture d'un fichier de données correspondant à la base ; -des moyens pour constituer une nomenclature des valeurs des champs contenus dans le fichier précédent ;

-des moyens de codage des champs conformément à la nomenclature en tenant compte de la nature des champs et des relations à mettre en oeuvre sur les prédicats dans la requte ; -des moyens d'analyse des requtes émises par le serveur applicatif décisionnel, en tenant compte de relations autorisées, de contraintes sur les prédicats et de la nomenclature ; et -des moyens de codage de la requte filtrée, en un ensemble de vecteurs contenant les valeurs à trouver dans les champs selon les relations associées, sous forme d'un fichier d'entrée exploitable par) a machine à capacités vectorielle.

Le système comporte en outre des moyens pour extraire en clair les données recherchées dans le fichier résultat obtenu en sortie de la machine à capacités vectorielle à partir de moyens de recherche installés dans le serveur applicatif décisionnel.

Des synthèses statistiques peuvent tre en outre opérées sur les résultats de la recherche.

L'invention a notamment pour avantage de fournir des temps de réponse très courts, inaccessibles par les techniques RDBMS, et un débit de requtes élevé.

Elle a pour autres avantages d'tre transparente pour l'application existante et de n'avoir aucun impact au niveau applicatif.

D'autres avantages et caractéristiques de la présente invention apparaîtront à la lecture de la description qui suit faite en référence aux figures annexées qui représentent : -la figure 1, un schéma de principe d'un système de recherche mettant en oeuvre un moteur de recherche selon l'invention ; -la figure 2, un schéma de principe d'un module de préconditionnement et d'installation de la base de données, selon l'invention ; et -la figure 3, un schéma de principe d'un agent SELECT selon l'invention.

Dans ces figures, les éléments homologues sont désignés par les mmes références numériques.

Le principe de l'invention est décrit ci-après en s'appuyant pour son illustration, sur l'utilisation d'une machine vectorielle connue sous I'appellation de supercalculateur.

Une telle machine est caractérisée, d'une part, par des processeurs possédant plusieurs unités arithmétiques,"pipelines"en terminologie anglo-saxonne et, d'autre part, par une bande passante mémoire suffisante pour assurer l'alimentation de tous les processeurs à chaque top d'horloge.

L'invention n'est cependant pas limitée à ce type de machine et s'applique à toute machine à capacités vectorielles, c'est-à-dire des machines dont les performances se rapprochent de celles des supercalculateurs vectoriels.

En effet, les calculateurs scalaires actuels comportent plusieurs opérateurs arithmétiques et les bandes passantes mémoire progressent grâce à l'usage d'une technologie, connue sous la terminologie anglo-saxonne"crossbar" (autocommutateur). On peut donc envisager dans un avenir proche que les performances des calculateurs scalaires se rapprochent de celles des supercalculateurs vectoriels.

Les supercalculateurs vectoriels offrent dès maintenant une réponse aux demandes toujours grandissantes de performances dans les domaines des sciences et de l'industrie en général.

Les machines vectorielles sont aujourd'hui les seules à pouvoir répondre aux contraintes déjà exprimées dans le préambule de la présente description.

L'idée de base de l'invention est de tirer parti de la puissance exceptionnelle des machines à capacités vectorielles pour effectuer des comparaisons sur les vecteurs numériques, images codées des champs de la table de données.

La transformation en nombres des données de la table à traiter, et la formation d'une nomenclature à partir de ces nombres sont réalisées lors de l'installation de la base de données relationnelle.

Le codage des données en nombres a pour autre effet avantageux de compacter les données de la base. Ainsi par rapport aux solutions de type RDBMS qui manipulent le contenu en clair de chaque champ, le procédé selon l'invention n'agit que sur un nombre représentatif de ce champ.

La table ainsi compactée peut tre en général contenue en mémoire (pas d'entrée-sortie disque), ou bien peut tre chargée en mémoire par colonne ce qui ne représente que des volumes réduits d'entrées/sorties.

Enfin l'invention offre la possibilité d'adapter le codage au type de requtes qui seront servies. Elle permet en outre la mise en oeuvre d'une optimisation efficace du traitement.

La figure 1 illustre un schéma de principe d'un système de recherche mettant en oeuvre un moteur de recherche selon l'invention.

Le système de recherche comporte, à gauche de la figure, un système applicatif décisionnel 1, représentatif du cas général, délimité par une ligne fermée discontinue, et le moteur de recherche 2, à droite de la figure, délimité par une ligne fermée discontinue.

Le système applicatif décisionnel 1 est couplé à un poste utilisateur (ou client) 3.

Le serveur applicatif décisionnel 1 comporte un serveur applicatif 4 générant des requtes prédéfinies, un RDBMS 5 gérant une base de données 6, et un agent SQL 7 chargé d'analyser les requtes soumises par le serveur applicatif 4 et, éventuellement, d'extraire les articles cible de la base 6 en s'appuyant sur le RDBMS 5.

L'utilisateur (le client) émet, via le serveur applicatif 4, des requtes correspondant à des caractéristiques des articles cible répondant à des critères déterminés et reçoit du mme serveur 4 le résultat des requtes sous la forme soit d'une liste d'articles satisfaisant les critères soit de synthèses statistiques, ou les deux.

Le moteur 2 met en oeuvre un module 8 de préconditionnement de la table de données et exploite les ressources d'un supercalculateur 9 pour le traitement d'un copie 10 de la table préconditionnée en vue d'en extraire les articles cible.

Le module 8 de préconditionnement de la table de données reçoit les données importées par exemple d'une banque de données 11. Ces données sont organisées sous forme d'un tableau et codées numériquement selon un format

directement exploitable par le supercalculateur 9 et exécutable de façon optimale par les requtes.

Une copie de cette table est accessible par le supercalculateur 9. Elle réside, par exemple, dans l'espace mémoire du supercalculateur 9 et peut tre partionnée si sa taille dépasse celle de la mémoire disponible.

Le supercalculateur 9 reçoit de t'agent SQL 7 la traduction des requtes soumises par le serveur applicatif 4 sous forme d'un fichier d'entrée.

Le supercalculateur 9 traite ensuite ce fichier d'entrée selon un programme de recherche déterminé tirant le parti maximum de la puissance des pipelines du supercalculateur 9 en travaillant sur les colonnes de la copie 10 de la table.

A l'issue du traitement, il délivre en sortie sous forme d'un fichier, les résultats du traitement effectué correspondant à la liste des numéros de ligne des articles sélectionnés par la recherche et, éventuellement, aux synthèses statistiques demandées sur les articles trouvés.

Si les articles en clair sont demandés, I'agent SQL 7 exploite le fichier résultat pour extraire les articles sélectionnés en clair, à partir de la base de données relationnelle 6.

L'agent SQL 7 transmet ensuite les résultats (articles sélectionnés et/ou synthèses statistiques) sous forme de réponse SQL au serveur applicatif 4 émetteur de la requte.

Un module 12 de cohérence de tables, accessible à t'agent SQL 7, contient la liste des identifiants des tables présentes et la nomenclature des prédicats pour chacune d'entre elles.

La figure 2 illustre un schéma de principe du module 8 de préconditionnement et d'installation de la table, selon l'invention, délimité par une ligne fermée discontinue.

II comporte des premiers moyens 13 de lecture des données importées sur un support quelconque, article par article, à t'entrée du module, et provenant par exemple d'une banque de données 11.

Les articles lus sont ensuite, d'une part, complétés de leur numéro et transmis au système de gestion de base de données relationnelle 5 qui crée la base de données en clair 6 dans le serveur applicatif décisionnel 1.

II comporte, d'autre part, des deuxièmes moyens 14 qui analysent les prédicats sur les articles en fonction de relations autorisées et de contraintes sur les prédicats.

On donne ci-après deux exemples de contraintes sur les prédicats : Dans un premier exemple, une colonne de la base de données ne comporte que des valeurs numériques. Dans cet exemple, il n'est pas nécessaire de coder numériquement ce qui est déjà numérique.

Dans un deuxième exemple, une colonne de la base de données ne contient que des mots pour lesquels l'ordre alphabétique sera utilisé dans les recherches. Dans cet exemple, I'analyse du prédicat tiendra compte de cette relation pour le codage numérique du prédicat. (préservation de l'ordre) Des troisièmes moyens 15 codent les valeurs des prédicats issus des deuxièmes moyens 14. Ce codage consiste à remplacer les valeurs des champs par leurs index dans la nomenclature des valeurs possibles.

Des quatrièmes moyens 16 créent une nomenclature des prédicats issus des deuxièmes moyens 14 en fonction du codage par les troisièmes moyens 15.

Le module de préconditionnement 8 fournit d'autre part l'identifiant de la base codée.

La table codée, la nomenclature des prédicats et l'identifiant de la base se présentent sous la forme de fichiers, respectivement référencés 10,17 et 18 sur la figure.

La figure 3 illustre un schéma de principe d'un agent SELECT 19 selon l'invention. II se substitue à l'agent SQL 7 du serveur applicatif décisionnel 1 qui t'héberge.

II comporte des moyens 20 de transformation des requtes, délimités par une ligne fermée en pointillés, lesquelles requtes sont soumises par le serveur applicatif 4 en fonction de la nomenclature des prédicats 17, des contraintes sur les prédicats et des relations autorisées.

Les moyens 20 de transformation comportent des moyens 21 d'analyse de la requte SELECT et des moyens 22 de codage des prédicats.

Les moyens 21 d'analyse de la requte traduisent la requte en un ensemble de vecteurs représentatifs des champs à trouver et des relations mises en oeuvre en tenant compte des relations autorisées.

Les vecteurs sont ensuite codés par les moyens de codage des prédicats en fonction de la nomenclature des prédicats, des contraintes sur les prédicats et des relations autorisées.

II y a autant de vecteurs que de valeurs possibles dans les champs de la table.

L'analyse permet de construire, par ailleurs, pour chacun de ces vecteurs un vecteur définissant quel type de comparaison effectuer pour chacune des valeurs de champ.

Les vecteurs sont agencés sous forme d'un fichier d'entrée exploitable par le supercalculateur 9.

Un programme de recherche intégré au supercalculateur exécute les comparaisons entre les vecteurs et toutes les lignes du tableau.

Ces comparaisons sont effectuées colonne par colonne.

En cas de coïncidence d'une ligne, son numéro est conservé et la réponse fournie par le supercalculateur à l'agent SQL 7 se présente sous la forme d'un fichier résultat comportant la liste des numéros correspondant aux lignes sélectionnées. C'est à partir de ce fichier que les synthèses statistiques demandées sont calculées.

Un module d'extraction 23 construit ensuite, si elle est demandée, la réponse en clair destinée au serveur applicatif 4 émetteur de la requte, en extrayant de la base de données relationnelle 6, les articles correspondant à la liste des numéros de lignes du fichier résultat du supercalculateur 9 en utilisant le numéro d'article ajouté à la base 6.

L'agent SELECT 19 fournit en outre l'identifiant de la table. C'est le module de cohérence de tables 12 qui contrôle l'identité de la table à traiter en cas de pluralité de tables. Un agent d'administration 24 est en outre couplé à l'agent SELECT 19 et permet de contrôler l'activité du supercalculateur 9 et gérer les anomalies. II active en outre le chargement du programme de recherche dans le supercalculateur 9.