Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR ENCODING AT LEAST ONE TIME SERIES IN A DATABASE
Document Type and Number:
WIPO Patent Application WO/2022/189582
Kind Code:
A1
Abstract:
Method (1) for encoding at least one first time series and for storing said time series in a database (BD1), comprising: Receiving (REC1) at least one first timestamped datum, each timestamped datum defining at least one datum of a time series; Accessing (ACC1) a historical table (TAB1) of the database (BD1); Creating (CREA1) a new historical column (COLX) in the historical table (TAB1), a first frequency (FREQ1) being associated with said new historical column (COLX); Indexing (INDEX1) each first timestamped datum; Encoding (ENC1) each first datum of the first time series and at least one first metadatum (MD1), said encoding producing a binary field (BINX); Storing (ENR1) the binary field (BINX) in a new cell.

Inventors:
CHTOUROU HABIB (FR)
Application Number:
PCT/EP2022/056238
Publication Date:
September 15, 2022
Filing Date:
March 10, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
STUTEO (FR)
International Classes:
G06F16/22; G06F16/2458
Foreign References:
US20180329921A12018-11-15
US20190050453A12019-02-14
KR102102313B12020-04-20
Attorney, Agent or Firm:
OAK & FOX (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé (1) mis en œuvre par ordinateur pour encoder au moins une première série temporelle (ctsi.t, stsi.t) suivant un formatage prédéfini et pour enregistrer ladite série temporelle (ctsi.t, stsi.t) dans une base de données (BD1) comprenant les étapes suivantes :

Réception (REC1) d’au moins une première donnée horodatée (D1), chaque première donnée horodatée (D1) définissant au moins une donnée d’une série temporelle (ctsi.t, stsi.t);

Accès (ACC1) à une table historique (TAB1) prédéfinie de la base de données (BD1), ladite table historique (TAB1) comprenant un ensemble de cellules (CELLX) ;

Création (CREAI) d’une nouvelle colonne historique (COLX) dans la table historique (TAB1 ), ladite colonne historique (COLX) étant associée à une première fréquence (FREQ1) et à un conteneur de données (CONTX) comprenant un ensemble de cellules ;

Indexation (INDEX1) de chaque première donnée horodatée (D1) reçue dans une cellule de l’ensemble de cellules du conteneur de données (CONTX) associé à la nouvelle colonne historique (COLX) ;

Encodage (ENC1 ) de chaque première donnée (D1 ) indexée de la première série temporelle (ctsi, stsi) et d’au moins une première métadonnée (MD1), ledit encodage produisant un champ binaire (BINX) et ladite première métadonnée (MD1) comprenant une information pour décoder ledit champ binaire (BINX) ;

Enregistrement (ENR1) du champ binaire (BINX) produit par l’encodage dans une nouvelle cellule (CELLX) de l’ensemble de cellules de la table historique (TAB1) de la base de données (BD1).

2. Procédé selon la revendication 1, dans lequel un identifiant unique universel (UIID) est associé à la colonne historique (COLX), ledit identifiant unique universel (UIID) étant généré à partir d’un code unique (UCOD) d’un matériel informatique et d’une date de création (DCRC) de ladite colonne historique (COLX).

3. Procédé selon la revendication 2 dans lequel un identifiant (IDC) de la colonne historique (COLX) est indexé (INDEXJDC) par une combinaison d’une clé primaire (CPX) et de l’identifiant unique (UIID), ladite clé primaire (CPX) comprenant une concaténation d’un identifiant (PKX) d’une ligne de la table historique (TAB1) et d’au moins un identifiant de colonne (TKX) de la table historique (TAB1) et ladite clé primaire (CPX) étant créée au moment de l’indexation de l’identifiant (IDC) de la colonne historique (COLX).

4. Procédé selon l’une quelconque des revendications précédentes, dans lequel le conteneur de données (CONTX) est associé à une pluralité de colonnes historiques (COLX) de la table historique (TAB1), ledit conteneur de données (CONTX) définissant une structure de données indexant :

au moins une première donnée (D1) de la première série temporelle (ctsi.t, stsi.t) et ;

au moins une seconde donnée (D2) d’au moins une seconde série temporelle (ctS2,t, stS2,t).

Procédé selon l’une quelconque des revendications précédentes, dans lequel l’étape de réception (REC1) comprend en outre la réception d’au moins une donnée scalaire (oses) associée à la première donnée horodatée (D1 ), ladite donnée scalaire (oses) étant encodée avec ladite première donnée horodatée (D1) pour produire le champ binaire (BINX).

6. Procédé selon l’une quelconque des revendications précédentes, dans lequel :

• une date est associée à chaque donnée de la série temporelle (CtSi,t, StSi,t) ou, • un intervalle de dates (INTX) ou un ensemble de dates (GRANX) est associé à un ensemble de données de ladite série temporelle (cts stsi,0 ; et dans lequel au moins l’un des éléments parmi la date, l’intervalle de dates (INTX) ou l’ensemble de dates (GRANX) est indexé dans la table historique (TAB1 ) sous forme d’une valeur numérique entière correspondant à la position d’une donnée ou d’un ensemble de données de la série temporelle (ctsi.t, stsi.t) dans la table historique (TAB1 ).

7. Procédé selon l’une quelconque des revendications précédentes, dans lequel le champ binaire (BINX) est mis à jour consécutivement à l’encodage d’au moins une nouvelle première donnée (D1) associée à la série temporelle (ctsi.t, stsi.t) et à un enregistrement dudit encodage dans la cellule (CELLX) de la table historique (TAB1 ) comprenant le champ binaire (BINX).

8. Procédé selon l’une quelconque des revendications précédentes comprenant : ■ création d’une nouvelle colonne historique (COLX’) dans la table historique (TAB1 ) ;

sélection d’un premier ensemble (ENS1 ) de données dans une première colonne historique (COLX1 ) de la table historique (TAB1 ) ; ■ sélection d’un second ensemble (ENS2) de données dans une seconde colonne historique (COLX2) de la table historique (TAB1 ) ;

indexation du premier ensemble de données (ENS1 ) et du second ensemble de données (ENS2) dans la nouvelle colonne historique (COLX’) de la table historique (TAB1 ).

9. Procédé mis en oeuvre par ordinateur pour traiter au moins une donnée d’une série temporelle (ctsi.t ,stsi,t) encodée selon le procédé de l’une quelconque des revendications 1 à 8, caractérisé en ce qu’il comprend : ■ sélection d’une fréquence de travail (FT) ; sélection d’une méthode de conversion de données en fonction de la fréquence de travail (FT) comportant la détermination d’un outil de calcul,

Mise en œuvre de ladite méthode de conversion sélectionnée sur au moins une première donnée encodée afin de produire un au moins une donnée traitée (DT1); lecture de la au moins une donnée traitée (DT1 ) au moyen d’une commande de lecture.

10. Procédé selon la revendication 9 dans lequel la méthode de conversion des données comprend :

Une duplication au moyen d’un outil de calcul des premières données (Di) lorsque la fréquence de travail (FT) est inférieure à la première fréquence (FREQ1 ) ;

Une sélection ou un calcul, au moyen d’un outil de calcul, d’un sous-ensemble de valeurs des premières données (Di) lorsque la fréquence de travail (FT) est supérieure à la première fréquence (FREQ1 ).

Un regroupement d’une pluralité de données d’au moins deux séries temporelles (ctsi.t, stsi.t) (ctS2,t, stS2,t) ou de plages de valeurs différentes d’une même série temporelle dans une nouvelle colonne historique de la table historique (TAB1 )

11. Système 100 pour encoder au moins une première série temporelle (cts1 ,t, sts1 ,t) suivant un formatage prédéfini et pour enregistrer ladite série temporelle (cts1 ,t, sts1 ,t) dans une base de données (BD1), ledit système comprenant :

une mémoire 112 pour recevoir et stocker au moins une première donnée horodatée (D1), chaque première donnée horodatée (D1 ) reçue et stockée définissant au moins une donnée d’une série temporelle (cts1 ,t, sts1 ,t);

des moyens de calcul 111 configurés pour mettre en œuvre les étapes suivantes : o Accès (ACC1 ) à une table historique (TAB1 ) prédéfinie d’une base de données (BD1), ladite table historique (TAB1) comprenant un ensemble de cellules (CELLX) ; o Création (CREAI) d’une nouvelle colonne historique (COLX) dans la table historique (TAB1), ladite colonne historique (COLX) étant associée à une première fréquence (FREQ1) et à un conteneur de données (CONTX) comprenant un ensemble de cellules ; o Indexation (INDEX1) de chaque première donnée horodatée (D1) reçue dans une cellule de l’ensemble de cellules du conteneur de données (CONTX) associé à la nouvelle colonne historique (COLX) ; o Encodage (ENC1) de chaque première donnée (D1) indexée de la première série temporelle (cts1, sts1) et d’au moins une première métadonnée (MD1), ledit encodage produisant un champ binaire (BINX) et ladite première métadonnée (MD1) comprenant une information pour décoder ledit champ binaire (BINX) ; o Enregistrement (ENR1) du champ binaire (BINX) produit par l’encodage dans une nouvelle cellule (CELLX) de l’ensemble de cellules de la table historique (TAB1) de la base de données (BD1).

12. Produit programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui- ci à mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 10.

Description:
Description

Titre : PROCEDE D’ENCODAGE D’AU MOINS UNE SERIE TEMPORELLE

DANS UNE BASE DE DONNEES

Domaine de l’invention

Le domaine de l’invention se rapporte aux systèmes et procédés permettant d’encoder et d’enregistrer des données au sein de bases de données. Plus précisément, le domaine de l’invention se rapporte aux systèmes et procédés permettant d’enregistrer et d’encoder de grandes quantités de données de séries temporelles au sein de bases de données. En particulier le domaine se rapporte également aux systèmes et procédés permettant d’enregistrer, d’encoder, de manipuler et d’exploiter de grands volumes de données de séries temporelles au sein de bases de données.

État de la technique

Actuellement, les méthodes d’enregistrement des données de séries temporelles sont organisées au sein de base de données dans des systèmes relationnels qui correspondent à l’organisation des données sous forme de tables, également appelées « relations ». Selon de telles méthodes, les données sont stockées dans des tables et chaque donnée est stockée à une position unique correspondant à l’intersection entre une ligne et une colonne de la table. Une clé primaire est définie pour identifier de manière unique un enregistrement dans la table de sorte que deux lignes distinctes de la table ne puissent pas avoir les mêmes valeurs dans les colonnes définies comme clé primaire.

Toutefois, l’utilisation de systèmes relationnels pose un problème lors du stockage de grands volumes de données. En effet, dans de tels systèmes, chaque donnée est stockée dans une case correspondant à l’intersection entre une ligne et une colonne. Dès lors, stocker de grandes quantités de données dans un système relationnel implique d’occuper d’importants espaces mémoires. Cela a pour conséquence de réduire considérablement les performances du système, notamment au moment de l’enregistrement, de l’exploitation et du traitement des données.

Il existe notamment dans l’art antérieur des solutions permettant de stocker les données en mémoire. Le document KR102102313 décrit un procédé mettant en œuvre une telle solution. Ce document décrit plus précisément un système pour gérer des données de séries temporelles au sein d’une base de données en mémoire. Le système décrit dans cette demande de brevet stocke les données de séries temporelles du même attribut au sein de blocs de données d’une taille prédéterminée suivant un ordre chronologique. Les performances, la gestion et l’analyse des données temporelles sont ainsi améliorées.

Toutefois, les données de séries temporelles suivant la solution décrite dans ce document sont enregistrées sous forme de lignes et de colonnes et une donnée temporelle est associée à chaque donnée de la série temporelle. Par conséquent, une donnée temporelle est enregistrée dans la table pour chaque donnée de la série temporelle et chaque donnée est enregistrée dans une case définissant l’intersection d’une ligne et d’une colonne dans la table. Un problème persiste lors du traitement de grands volumes de données et les performances des systèmes s’en trouvent considérablement réduites.

Il existe donc un besoin de définir une solution permettant de stocker de grands volumes de données de séries temporelles dans une base de données tout en garantissant des performances optimales à l’écriture ainsi que lors du traitement et de l’exploitation de ces données.

L’invention vise à résoudre les problématiques précitées en proposant un procédé optimisé d’encodage d’au moins une série temporelle dans une base de données.

Résumé de l’invention

Selon un premier aspect, l’invention concerne un procédé mis en œuvre par ordinateur pour encoder au moins une première série temporelle suivant un formatage prédéfini et pour enregistrer ladite série temporelle dans une base de données comprenant les étapes suivantes :

Réception d’au moins une première donnée horodatée, chaque donnée horodatée définissant au moins une donnée d’une série temporelle ;

Accès à une table historique prédéfinie de la base de données, ladite table historique comprenant un ensemble de cellules ;

Création d’une nouvelle colonne historique dans la table historique, ladite colonne historique étant associée à une première fréquence et à un conteneur de données comprenant un ensemble de cellules ;

Indexation de chaque première donnée horodatée reçue dans une cellule de l’ensemble de cellules du conteneur de données associé à la nouvelle colonne historique ;

Encodage de chaque première donnée de la première série temporelle et d’au moins une première métadonnée de ladite première série temporelle, ledit encodage produisant un champ binaire et ladite première métadonnée comprenant une information pour décoder ledit champ binaire ;

Enregistrement du champ binaire produit par l’encodage dans une nouvelle cellule de l’ensemble de cellules de la table historique de la base de données.

Un avantage d’un tel procédé est de permettre de stocker une grande quantité de données dans une seule cellule d’une table et par conséquent de gagner en performance à la fois à l’écriture mais aussi à la lecture lors de l’utilisation d’une commande de lecture telle qu’un « SELECT ».

Un autre avantage est qu’un tel procédé peut être mis en œuvre dans n’importe quel environnement nécessitant le traitement d’un grand nombre de données. Le procédé selon l’invention peut par exemple être mis en œuvre à la suite d’un autre procédé de réception et de traitement en amont d’une ou d’une pluralité de données ou encore être mis en œuvre indépendamment de tout autre procédé par la réception directe de données provenant par exemple d’un capteur de données physiques.

Selon un mode de réalisation, un identifiant unique universel est associé à la colonne historique, ledit identifiant unique universel étant généré à partir d’un code unique d’un matériel informatique et d’une date de création de ladite colonne historique.

Un avantage d’utiliser un identifiant unique est de pouvoir identifier chacune des colonnes de la table de manière sûre sans risque que deux colonnes historiques d’une même table historique soient identifiées par un même code.

Selon un mode de réalisation, une structure de données est associée à un ensemble de colonnes historiques, la structure de données définissant un conteneur de données associé à la première fréquence et comportant au moins la première donnée de la première série temporelle et au moins une seconde donnée d’au moins une seconde série temporelle.

Un avantage est de pouvoir structurer les données d’une même série temporelle ou encore les données de deux séries temporelles différentes suivant un même schéma logique de données.

Selon un mode de réalisation, la réception comprend la lecture d’une requête de données et l’extraction des données issues de la requête, ladite requête comprenant notamment un intervalle de dates ou un ensemble de dates définissant l’horodatage d’une pluralité de données horodatées d’au moins la série temporelle.

Un avantage est de pouvoir organiser les données reçues selon leur périodicité définie par l’intervalle de date ou selon leur granularité définie par l’ensemble de dates. Un autre avantage est de disposer de la granularité des données de sorte à pouvoir déterminer les opérations mathématiques nécessaires pour passer d’une série temporelle irrégulière à une série temporelle régulière.

Selon un mode de réalisation, la première métadonnée encodée est un champ fixe définissant la structure de chaque première donnée encodée.

Un avantage est de pouvoir identifier, au moment de la lecture, la structure de la première donnée encodée ; par exemple par la mise en œuvre d’une commande « SELECT », et permettre ainsi le décodage de ladite première donnée encodée.

Selon un mode de réalisation, l’étape de réception comprend en outre la réception d’au moins une donnée scalaire associée à l’ensemble des données horodatées, ladite donnée scalaire étant enregistrée et encodée avec l’ensemble des données horodatées, l’encodage produisant le champ binaire.

Un avantage est de pouvoir enregistrer des données scalaires caractéristiques des données horodatées ou des données scalaires caractéristiques de la provenance desdites données horodatées. Par exemple, dans le cas de données horodatées provenant d’une station météo, les données scalaires peuvent correspondre à la latitude ou à la longitude de ladite station météo.

Selon un mode de réalisation, chaque date associée à chaque valeur de la série temporelle ou chaque intervalle de dates ou chaque ensemble de dates associé à un ensemble de valeurs de ladite série temporelle est indexé sous forme d’une valeur numérique entière correspondant à la position d’une valeur ou d’un ensemble de valeurs de la série temporelle dans la table historique.

Un avantage de ce mode de réalisation est d’accroître les performances à la lecture et à l’écriture en ne stockant pas les dates directement, mais en stockant des valeurs numériques correspondant à la position desdites dates dans la table historique. Un autre avantage est de permettre de stocker une grande quantité de données horodatées dans une même table historique à la différence des procédés de l’art antérieur stockant directement les dates.

Selon un mode de réalisation, le champ binaire est mis à jour consécutivement à l’encodage d’au moins une nouvelle première donnée associée à la série temporelle et à l’enregistrement dudit encodage dans la cellule de la table historique comprenant le champ binaire.

Un avantage est de pouvoir mettre à jour les données encodées dans une même cellule de la table sans faire face à la nécessité d’écraser les données préalablement enregistrées.

Selon un mode de réalisation, un identifiant de la colonne historique est indexé par une combinaison d’une clé primaire et d’un identifiant unique, la clé primaire étant une concaténation d’un identifiant de ligne et d’au moins un identifiant de colonne et ladite clé primaire étant créée au moment de l’indexation de l’identifiant de la colonne historique.

Un avantage de l’indexation de chaque colonne historique est d’organiser la structure de la table historique de manière ordonnée. Un avantage d’utiliser une clé primaire et un identifiant unique est de s’assurer de pouvoir identifier chaque colonne historique de façon unique au moment de l’indexation.

Selon un mode de réalisation, le conteneur de données comprend également au moins une donnée scalaire.

Un avantage est de pouvoir organiser des données horodatées et des données scalaires associées auxdites données horodatées, par exemple des données caractéristiques de la source de données, selon un même schéma logique de données correspondant au conteneur de données.

Selon un mode de réalisation, le procédé selon l’invention comprend une pluralité d’étapes supplémentaires qui sont : Une étape de sélection d’une fréquence de travail ;

Une étape de sélection d’une méthode de conversion de données en fonction de la fréquence de travail comportant la détermination d’un outil de calcul,

Une étape de conversion d’au moins la première donnée encodée par ladite méthode de conversion afin de produire un ensemble de données traitées ;

Une étape de lecture de la au moins une donnée de traitement convertie.

Un avantage est de permettre au moment de la lecture des données, notamment par un utilisateur, d’adapter la fréquence des données encodées dans la table aux besoins d’exploitation desdites données.

Selon un mode de réalisation, la conversion des données comprend :

Une étape de duplication au moyen d’un outil de calcul des premières données lorsque la fréquence de travail est inférieure à la première fréquence ;

Une étape de sélection ou un calcul, au moyen d’un outil de calcul, d’un sous-ensemble de valeurs des premières données lorsque la fréquence de travail est supérieure à la première fréquence.

Un avantage est de permettre la conversion de données horodatées selon une périodicité définie en données de périodicité plus petite ou plus grande. Ce mode de réalisation est particulièrement avantageux dans le sens où il permet la conversion d’une pluralité de données à des fréquences différentes par la mise en œuvre d’outils mathématiques simples.

Selon un mode de réalisation, la conversion des données comprend la modification d’une unité de mesure associée à la au moins une donnée encodée.

Un avantage est d’adapter l’unité de mesure d’une pluralité de données horodatées aux besoins d’exploitation desdites données horodatées. A titre d’exemple, un scientifique exploitant des données horodatées de température pour lesquelles l’unité encodée est le degré Celsius pourra avantageusement convertir l’unité des données de température en Kelvin pour ses besoins d’exploitation. Selon un mode de réalisation, le procédé selon l’invention comprend une pluralité d’étapes pour compacter une pluralité de données encodées, lesdites étapes comprenant :

La création d’une nouvelle colonne historique ;

La sélection d’un premier ensemble de données d’une première colonne ;

La sélection d’un second ensemble de données d’une seconde colonne ;

Le regroupement d’une pluralité de données d’au moins deux séries temporelles ou de plages de valeurs différentes d’une même série temporelle dans la nouvelle colonne historique.

Un avantage est de pouvoir regrouper un ensemble de données issues d’une même série temporelle ou de différentes séries temporelles de sorte à libérer de l’espace de stockage et à accroître les performances du système.

Selon un mode de réalisation, le regroupement d’une pluralité de données comprend le remplacement d’un ensemble de données de ladite pluralité de données, indexées selon un intervalle de dates ou un ensemble de dates, par un ensemble de données plus récentes indexées selon le même intervalle de dates ou le même ensemble de dates.

Ce mode de réalisation est particulièrement avantageux dans le cas où il permet de remplacer des données horodatées erronées d’une table historique par des données horodatées mises à jour sans nécessiter d’effacer préalablement les données erronées. De ce fait, les performances du système sont considérablement accrues notamment dans le cas du traitement de grandes quantités de données pour lequel l’effacement d’une pluralité de données peut prendre un temps considérablement important.

Selon un mode de réalisation, un identifiant de la colonne historique est indexé par une combinaison d’une clé primaire et de l’identifiant unique, ladite clé primaire comprenant une concaténation d’un identifiant d’une ligne de la table historique et d’au moins un identifiant de colonne de la table historique et ladite clé primaire étant créée au moment de l’indexation de l’identifiant de la colonne historique. Selon un mode de réalisation, le conteneur de données est associé à une pluralité de colonnes historiques de la table historique, ledit conteneur de données définissant une structure de données indexant :

au moins une première donnée de la première série temporelle et ;

au moins une seconde donnée d’au moins une seconde série temporelle.

Selon un mode de réalisation, l’étape de réception comprend en outre la réception d’au moins une donnée scalaire associée à la première donnée horodatée, ladite donnée scalaire étant encodée avec ladite première donnée horodatée pour produire le champ binaire.

Selon un mode de réalisation une date est associée à chaque donnée de la série temporelle ou un intervalle de dates ou un ensemble de dates est associé à un ensemble de données de ladite série temporelle et au moins l’un des éléments parmi la date, l’intervalle de dates ou l’ensemble de dates est indexé dans la table historique sous forme d’une valeur numérique entière correspondant à la position d’une donnée ou d’un ensemble de données de la série temporelle dans la table historique.

Selon un mode de réalisation, le champ binaire est mis à jour consécutivement à l’encodage d’au moins une nouvelle première donnée associée à la série temporelle et à un enregistrement dudit encodage dans la cellule de la table historique comprenant le champ binaire.

Selon un mode de réalisation, le procédé comprend :

création d’une nouvelle colonne historique dans la table historique ;

sélection d’un premier ensemble de données dans une première colonne historique de la table historique;

sélection d’un second ensemble de données dans une seconde colonne historique de la table historique;

indexation du premier ensemble de données et du second ensemble de données dans la nouvelle colonne historique de la table historique.

Selon un mode de réalisation, le procédé comprend :

sélection d’une fréquence de travail ; sélection d’une méthode de conversion de données en fonction de la fréquence de travail comportant la détermination d’un outil de calcul,

Mise en œuvre de ladite méthode de conversion sélectionnée sur au moins une première donnée encodée afin de produire un au moins une donnée traitée ;

lecture de la au moins une donnée traitée au moyen d’une commande de lecture.

Selon un mode de réalisation, la méthode de conversion des données comprend :

Une duplication au moyen d’un outil de calcul des premières données lorsque la fréquence de travail est inférieure à la première fréquence ;

Une sélection ou un calcul, au moyen d’un outil de calcul, d’un sous-ensemble de valeurs des premières données lorsque la fréquence de travail est supérieure à la première fréquence.

Un regroupement d’une pluralité de données d’au moins deux séries temporelles ou de plages de valeurs différentes d’une même série temporelle dans une nouvelle colonne historique de la table historique.

Selon un autre aspect, l’invention concerne un système pour encoder au moins une première série temporelle suivant un formatage prédéfini et pour enregistrer ladite série temporelle dans une base de données, ledit système comprenant :

une mémoire pour recevoir et stocker au moins une première donnée horodatée, chaque première donnée horodatée reçue et stockée définissant au moins une donnée d’une série temporelle

des moyens de calcul configurés pour mettre en œuvre les étapes suivantes : o Accès à une table historique prédéfinie d’une base de données, ladite table historique comprenant un ensemble de cellules ; o Création d’une nouvelle colonne historique dans la table historique, ladite colonne historique étant associée à une première fréquence et à un conteneur de données comprenant un ensemble de cellules ; o Indexation de chaque première donnée horodatée reçue dans une cellule de l’ensemble de cellules du conteneur de données associé à la nouvelle colonne historique ; o Encodage de chaque première donnée indexée de la première série temporelle et d’au moins une première métadonnée, ledit encodage produisant un champ binaire et ladite première métadonnée comprenant une information pour décoder ledit champ binaire ; o Enregistrement du champ binaire produit par l’encodage dans une nouvelle cellule de l’ensemble de cellules de la table historique de la base de données

Selon un autre aspect, l’invention concerne un produit programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé de l’invention.

Brève description des figures

D’autres caractéristiques et avantages de l’invention ressortiront à la lecture de la description détaillée qui suit, en référence aux figures annexées, qui illustrent :

Fig. 1 : Un mode de réalisation de l’invention comportant un premier ensemble d’étapes permettant à un utilisateur de configurer un ensemble d’éléments de stockage de données et de recevoir et stocker au moins une donnée d’une série temporelle.

Fig. 2 : Un mode de réalisation de l’invention comportant un second ensemble d’étapes permettant de recevoir et d’encoder au moins une donnée d’une série temporelle.

Fig. 3 : Un schéma explicatif de l’étape de réception d’au moins une donnée d’une série temporelle.

Fig. 4 : Un schéma explicatif de l’étape d’accès à une table historique d’une base de données.

Fig. 5 : Un schéma explicatif de l’étape d’encodage de chaque première donnée d’une série temporelle. Fig. 6 : Une vue schématique d’une table historique comportant un ensemble d’encodages d’un ensemble de données de séries temporelles.

Fig. 7 : Un schéma détaillé de la composition d’une clé primaire.

Fig. 8 : Un schéma détaillé de la composition d’un identifiant unique universel. Fig. 9 : Un schéma explicatif de l’indexation d’un identifiant de colonne selon un mode de réalisation de l’invention.

Fig. 10 : Un schéma explicatif de l’indexation d’un intervalle de dates ou d’un ensemble de dates sous la forme d’une valeur entière selon un mode de réalisation de l’invention.

Fig. 11 : Un mode de réalisation de l’invention comprenant un ensemble d’étapes permettant à un utilisateur de convertir et de lire la première donnée. Fig. 12 : Un mode de réalisation de l’invention pour compacter une pluralité de données encodées.

Fig.13 : Une représentation de l’encodage des données indexées produisant un champ binaire et de l’enregistrement du champ binaire dans une cellule de la table historique, dans un exemple où les données reçues sont des données issues de deux stations météo.

Fig.14 : Une représentation d’une configuration matérielle d’un système de l’invention.

Définitions

Dans la présente description, on appelle « série temporelle » une suite finie de valeurs horodatées. Il s’agit par exemple d’un tableau de données indexé par le temps. La série temporelle peut comprendre des valeurs numériques réelles, des données vidéo, des données de bande son, des données de texte, des données liées à une image telles que par exemple sa taille, des données de localisation ou encore des fractions.

Dans la présente description, on appelle « table historique » une table comportant au moins une ligne et au moins une colonne dans laquelle est stockée au moins une donnée d’une série temporelle.

Dans la présente description, on appelle « première donnée horodatée » une donnée issue d’une source quelconque de données associée à une date. La date peut, par exemple, correspondre à une date de production de la donnée par un capteur ou un équipement électronique ou informatique.

Dans la présente description, on appelle « colonne historique » une colonne dans laquelle est stockée une suite de données horodatées ou non horodatées. Selon différents modes de réalisation, les colonnes et les lignes de la table historique peuvent être transposées de sorte qu’une colonne historique d’un mode de réalisation corresponde à une ligne historique d’une autre réalisation. Dans un mode de réalisation, une colonne historique correspond à une dimension dans un tableau de données. Selon une mise en oeuvre, une colonne historique peut correspondre à un fichier dans lequel les données sont enregistrées ou encore à un registre d’une mémoire.

Dans la présente description, on appelle « première fréquence » la périodicité de stockage des données horodatées ou non horodatées (par exemple des données scalaires) dans la colonne historique à laquelle est associée ladite « première fréquence ».

Dans la présente description, on appelle « conteneur de données » un schéma logique d’organisation d’une pluralité de données horodatées ou non horodatées. Afin de mieux comprendre l’invention, on entend dans la suite de la description par conteneur aussi bien le schéma logique de données que l’entité regroupant les données formant ses constituants. On entendra par exemple « un conteneur donné comprend les premières données et les secondes données » comme « les premières données et les secondes données sont organisées selon un schéma logique définie par le conteneur donné ».

Dans la présente description, on appelle « métadonnée » un champ fixe définissant la structure d’une pluralité de données telles que des données horodatées et des données scalaires. Selon un exemple, un tel champ comprend une information permettant de décoder un champ binaire encodant une pluralité de données.

Dans la présente description, on appelle « donnée scalaire » une valeur numérique non horodatée. Cette dernière peut être par exemple la position d’une station météo. Cette valeur est constante au cours du temps, à la différence des relevés de ladite station météo tels que les relevés de pression et de température. Dans un mode de réalisation, la donnée scalaire correspond à une série temporelle irrégulière. Ce mode de réalisation est particulièrement avantageux dans le cas ou la donnée scalaire est amenée à évoluer de manière incertaine dans le temps et qu’il n’est pas possible d’associer une fréquence de variation à ladite donnée scalaire. Dans la présente description, on appelle « fréquence de travail » une périodicité définie par un utilisateur. La conversion à la fréquence de travail d’une pluralité de données horodatées définissant une première série temporelle permet de définir une seconde série temporelle respectant ladite fréquence de travail.

Figure 1

La figure 1 décrit un procédé d’encodage 1 selon un mode de réalisation de l’invention lorsqu’il est intégré dans une méthode visant à créer un conteneur de données CONTX et une table historique TAB1. Une pluralité d’étapes préliminaires peut être réalisée au moyen d’une première étape C_CONT visant à créer le conteneur CONTX et d’une seconde étape C_TAB visant à créer la table historique TAB1. Le procédé peut également être mis en œuvre dans une méthode pour laquelle le conteneur et la table historique sont préexistants.

Le procédé selon l’invention est ici décrit comme une méthode exécutée par un ordinateur recevant des données d’une source possiblement distante au moyen d’une interface de communication et transmettant les données reçues à un serveur possiblement distant.

Afin de mieux comprendre un mode d’implémentation de l’invention, la figure 1 décrit, en particulier, en amont du procédé selon l’invention une étape visant à formater, générer GEN_REQ et transmettre SEN_REQ une requête de données et à stocker les données issues de ladite requête dans la table historique TAB1. Toutefois, l’invention n’est pas limitée à l’exécution de ces étapes préalables dans la mesure où un système déjà configuré permettrait de mettre en œuvre le procédé de l’invention avec une structure de conteneur prédéfinie et une architecture d’une table historique prédéfinie.

Selon un premier aspect, l’invention concerne un procédé 1 mis en œuvre par ordinateur pour encoder au moins une première série temporelle ctsi.t, stsi.t suivant un formatage prédéfini et pour enregistrer ladite série temporelle ctsi.t, stsi.t dans une base de données BD1. La base de données BDi est par exemple une base de données non relationnelle, également appelée base de données NoSQL dans la littérature.

Création du conteneur

Selon un mode de réalisation de l’invention, la pluralité d’étapes préliminaires comprend une étape de création du conteneur de données CONTX. Cette étape comprend le paramétrage dudit conteneur de données CONTX. Le paramétrage comprend la définition des paramètres des données qui seront stockées dans ledit conteneur de données CONTX. Dans ce mode de réalisation, les paramètres des données comprennent le type de données. Le type de données comprend, par exemple, une donnée d’une première série temporelle ctsi.t, stsi.t. Selon une variante, le type de données comprend une donnée scalaire cscs.

Dans ce mode de réalisation, un ou une pluralité de paramètres intrinsèques correspond(ent) à chaque type de données. Les paramètres intrinsèques comprennent, par exemple, un type de valeur numérique, une unité de mesure, une méthode de conversion des données et une base de conversion des données. Le type de valeur numérique peut comprendre une valeur entière ou une valeur décimale. La méthode de conversion peut comprendre l’application d’une ou d’une pluralité d’opérations mathématiques sur une pluralité de valeurs stockées dans le conteneur de données CONTX. Par exemple, parmi les opérations, le procédé de l’invention permet de supprimer des valeurs d’une série temporelle pour réduire la fréquence ou de dupliquer des valeurs pour augmenter la fréquence. La base de conversion des données comprend l’organisation des données suivant une échelle de temps définie.

Selon une variante, les paramètres intrinsèques comprennent un unique paramètre. Selon une autre variante, les paramètres intrinsèques comprennent n’importe quelle combinaison des paramètres précités. Un avantage est de pouvoir organiser les données suivant un schéma logique du conteneur de données CONTX.

Selon un mode de réalisation, le conteneur de données CONTX comprend au moins une première donnée D1 d’une première série temporelle ctsi.t, stsi.t et au moins une seconde donnée d’une seconde série temporelle cts 2 t , sts 2,t.

Selon un mode de réalisation, le conteneur de données CONTX comprend une pluralité de données d’au moins une série temporelle ctsi. t , stsi. t . Dans ce mode de réalisation, la pluralité de données comprend des données horodatées sur un intervalle de dates INTX ou un ensemble de dates GRANX. Les données horodatées sur un intervalle de dates INTX comprennent des données régulières d’une série temporelle. Par « données régulières », on entend des données mesurées, produites ou reçues suivant une fréquence fixe. Les données horodatées sur un ensemble de dates comprennent des données irrégulières d’une série temporelle. Par données irrégulières, on entend des données mesurées, produites ou reçues suivant une fréquence variable. Selon une variante, les données irrégulières d’une série temporelle ctsi.t, stsi.t sont traitées par un ensemble d’étapes comprenant une ou une pluralité d’opérations mathématiques appliquées sur lesdites données irrégulières pour les convertir en données régulières. Selon un exemple, une opération mathématique utilisée peut être l’échantillonnage de valeurs ou la duplication de valeurs.

Selon un mode de réalisation, le conteneur de données CONTX contient des données horodatées sur un même intervalle de dates INTX selon des périodicités différentes. Un intérêt est de pouvoir stocker selon un même schéma logique de données une pluralité de données horodatées brutes et une pluralité de données horodatées issues d’un traitement visant à modifier la périodicité de la pluralité de données pour ensuite insérer ladite pluralité de données dans la table historique TAB1. Par données brutes, on entend des données qui sont mesurées, transmises ou reçues sur lesquelles aucun traitement visant à modifier leur périodicité n’a été effectué.

Création de la table historique

Selon un mode de réalisation de l’invention, la pluralité d’étapes préliminaires comprend la création d’une table historique TAB1 . Dans ce mode de réalisation, la création de la table historique TAB1 comprend une étape de paramétrage de la table historique TAB1 . L’étape de paramétrage de la table historique comprend l’association d’un conteneur de données CONTX et d’une première fréquence FREQ1 à une colonne historique COLX de la table historique TAB1 . Un avantage est de pouvoir stocker des données suivant une même périodicité au sein d’une même colonne historique COLX. Selon une variante, une unique série temporelle ctsi.t, stsi.t est associée à la colonne historique. Dans ce mode de réalisation, l’étape de paramétrage de la table historique comprend la création d’une clé primaire CPX. La clé primaire comprend une concaténation d’un identifiant de ligne PKX et d’un ou d’une pluralité d’identifiants de colonnes TKX de la table historique TAB1. Un avantage est de pouvoir identifier de manière unique un enregistrement dans la table historique TAB1 . Selon un mode de réalisation, la table historique TAB1 comprend une pluralité de colonnes historiques COLX. Chaque ligne de la table historique TAB1 peut être associée à une unique source de données S_D. Chaque colonne historique peut être associée à une première fréquence FREQ1 , chaque première fréquence FREQ1 pouvant être différente d’une colonne historique COLX à une autre. Un avantage est de pouvoir organiser les données dans la table historique TAB1 par source de données et par périodicité. La pluralité de colonnes historique COLX est par exemple associée à une pluralité de conteneurs (CONTI,CONÏ2... ,CONT n ) et à une pluralité de fréquences (FREQ1 , FREQ2,... ,FREQn). Chaque colonne historique COLX est par exemple associée à un conteneur différent et à une fréquence différente.

Réception des données

Selon un mode de réalisation de l’invention, la pluralité d’étapes préliminaires comprend la réception d’une pluralité de données G_S_DT. La réception d’une pluralité de données G_S_DT comprend la réception d’une pluralité de données issues d’une source de données S_D distante. Selon une variante, la réception comprend la réception d’une pluralité de données issues d’une pluralité de sources distantes S_D. La réception d’une pluralité de données G_S_DT peut par exemple comprendre la réception d’une pluralité de données financières et/ou d’une pluralité de données issues d’une station météo. Dans ce mode de réalisation, la réception d’une pluralité de données G_S_DT comprend la réception d’une pluralité de données aux moyens d’une interface de communication.

Selon un mode de réalisation, la réception des données est périodique suivant une fréquence prédéfinie. Un avantage est d’adapter la réception des données suivant les sources de données et les cas d’usages.

Transmission des données

Selon un mode de réalisation de l’invention, la pluralité d’étapes préliminaires comprend la transmission d’au moins une donnée. L’étape de transmission peut comprendre la transmission de données issues d’une même source de données S_D. Selon une variante, la transmission comprend la transmission de données issues de deux sources de données S_D différentes. La transmission d’au moins une donnée comprend la transmission des données vers un serveur possiblement distant. Selon un mode de réalisation, la transmission des données est automatisée suivant une fréquence prédéfinie. Un avantage est de simplifier le processus de transmission des données et de l’adapter en fonction de la source de données S_D et des besoins de l’exploitant desdites données.

Organisation et transformation des données

Selon un mode de réalisation de l’invention, la pluralité d’étapes préliminaires comprend l’organisation et la transformation des données TRANS_DT. L’organisation et la transformation des données peuvent comprendre la transformation des données pour obtenir des données périodiques suivant la fréquence FREQ1 associée à la colonne historique COLX de la table historique TAB1 dans laquelle lesdites données seront stockées. La transformation des données TRANS_DT peut comprendre l’application d’une ou d’une pluralité d’opérations mathématiques pour obtenir des données périodiques suivant la fréquence FREQ1 . Selon une variante, la transformation des données TRANS_DT peut comprendre la sélection d’une ou d’une pluralité de données d’une plage de données et la suppression des données non sélectionnées. Selon une autre variante, la transformation des données TRANS_DT peut comprendre à la fois la sélection d’une ou d’une pluralité de données d’une plage de données et l’application d’une ou d’une pluralité d’opérations mathématiques sur lesdites données sélectionnées et/ou sur les données non sélectionnées. Un avantage est d’optimiser les données dans le conteneur de données CONTX préalablement à leur stockage dans la table historique TAB1 .

Génération d’une requête

Selon un mode de réalisation, la pluralité d’étapes préliminaires comprend la génération d’une requête GEN_REQ. La requête est générée via un système de gestion de bases de données. Dans un mode préféré, le système de gestion de bases de données est un système NoSQL.

On entend par « requête » un message de données directement émis depuis un système informatique vers un autre système informatique de sorte à transmettre des données. Les données transmises peuvent être des données d’une série temporelle. La requête peut être émise spontanément suivant une règle d’émission par exemple exécutée périodiquement. La requête peut aussi être émise consécutivement à une action générée par un système entraînant la transmission de données d’un autre système. Selon un mode de réalisation, la requête comprend une ou une pluralité de premières données D1 d’au moins une première série temporelle ctsi.t, stsi.t et/ou au moins une donnée scalaire oses. . Dans la suite de la description, on notera la « première » série temporelle ctsi. t une série temporelle « donnée » de manière à la différencier d’une autre série temporelle sans pour autant limiter cette désignation à un ordre dans une séquence au sein d’une pluralité de série.

Selon un mode de réalisation, la requête peut également comprendre au moins une unité de mesure. L’unité de mesure permet de qualifier la nature de la première donnée d’une série temporelle. Selon différents exemples, cette unité de mesure peut être une unité de mesure d’une variable physique telle qu’une unité de Température comme le degré Celsius ou le Kelvin ; ou encore une unité de pression telle que le bar ou le Pascal. Selon un autre exemple, l’unité de mesure est une unité de mesure différente d’une unité de mesure d’une variable physique. A titre d’exemple, l’unité de mesure peut être une devise telle que le dollar ou l’euro, ou même le Bolivar souverain. L’unité de mesure peut être également une mesure d’un état de fonctionnement d’une pièce mécanique ou d’un système informatique tel que des pannes ou des logs. Selon un mode de réalisation, cette unité de mesure peut être enrichie d’une gamme de valeurs telles qu’une valeur minimale, une valeur maximale, ou d’un paramètre de type flottant ou entier, etc.

Dans ce mode de réalisation, la requête comprend une pluralité de premières données D1 d’au moins une première série temporelle ctsi.t, stsi.t régulière. On rappelle que la première série temporelle comprend des données enregistrées sur un intervalle de dates INTX, l’écart temporel entre l’enregistrement de deux données horodatées successives étant constant. Dans ce mode de réalisation, la requête comprend également l’intervalle de dates correspondant à ladite première série temporelle ctsi.t, stsi.t régulière.

Selon une variante, la requête peut comprendre une pluralité de données d’au moins une première série temporelle ctsi.t, stsi.t irrégulière. On entend par « première série temporelle irrégulière » une série temporelle dont les données sont enregistrées sur un ensemble de dates GRANX, l’écart temporel entre l’enregistrement de deux données horodatées successives n’étant pas constant. Selon cette variante, la requête comprend également l’ensemble de dates GRANX associées à la première série temporelle ctsi. t , stsi.t irrégulière.

Selon un mode de réalisation, la requête comprend une requête d’enregistrement d’une pluralité de données contenues dans un conteneur de données CONTX. Dans ce mode de réalisation, la requête comprend une requête d’enregistrement des données comprises dans ledit conteneur de données CONTX dans la table historique TAB1 . Selon une variante, la requête comprend une requête de mise à jour d’une pluralité de données préalablement enregistrées dans la table historique TAB1 . Par « mise à jour », on entendra l’enregistrement d’une ou d’une pluralité de données à la suite d’une ou d’une pluralité d’autres données préalablement enregistrées dans la table historique TAB1 .

Emission de la requête

Selon un mode de réalisation, la pluralité d’étapes préliminaires comprend l’envoi de la requête REQ vers une entité possiblement distante. L’entité comprend une couche transport apte à recevoir la requête REQ. La requête REQ est ensuite transmise à un processeur de requête, ledit processeur de requête étant configuré pour scanner la requête et vérifier la conformité de ladite requête REQ. Stockage des données

Selon le premier aspect, l’invention concerne un procédé 1 mis en œuvre par ordinateur pour encoder au moins une première série temporelle ctsi.t, stsi.t suivant un formatage prédéfini et pour enregistrer ladite série temporelle ctsi t, stsi.t dans une base de données BD1 comprenant l’une ou une pluralité des étapes préliminaires décrites précédemment. Dans cet objectif la figure 2 détaille les principales étapes du procédé de l’invention.

La figure 2 décrit l’encodage et le stockage des données STORE_DT du procédé 1 d’encodage selon le premier aspect de l’invention. En particulier la figure 2 décrit les différentes étapes permettant d’aboutir à un encodage d’une première donnée d’une première série temporelle cts stsi. t . L’invention s’applique plus particulièrement à un ensemble de données d’une série temporelle et trouve notamment un intérêt à être appliquée pour traiter de grandes quantités d’information.

Etape de réception Le procédé selon l’invention comprend une étape de réception REC1 d’au moins une première donnée horodatée D1, chaque donnée horodatée D1 définissant au moins une donnée d’une série temporelle ctsi. t , stsi, t. Selon un mode de réalisation décrit en figure 3, l’étape de réception

REC1 comprend la lecture 2 d’une requête et l’extraction des données D1 à DN issues de ladite requête REQ. La requête REQ comprenant notamment un intervalle de dates INTX ou un ensemble de dates GRANX définissant l’horodatage d’une pluralité de données horodatées d’au moins une série temporelle ctsi.t, stsi.t. Selon une variante, la requête REQ de données comprend également au moins une donnée scalaire oses non horodatée.

Selon un mode de réalisation, l’étape de réception REC1 comprend le stockage des données sur un même espace mémoire. Un avantage est d’améliorer les performances notamment à la lecture. Etape d’accès à une table historique

Le procédé selon l’invention comprend une étape décrite en figure 4 d’accès ACC1 à une table historique TAB1 prédéfinie de la base de données BD1. La table historique à laquelle un utilisateur accède est par exemple une table historique parmi une pluralité de tables historique allant de TAB1 à TABN. Un exemple de table historique est représenté à la figure 6. Cette étape comporte notamment l’accès préalable 3 à une base de données BD1 comportant ladite table historique TAB1.

Selon un mode de réalisation, l’étape d’accès ACC1 à la table historique TAB1 comprend la création préalable de ladite table historique TAB1 dans une base de données BD1 lorsque cette dernière n’est pas préexistante. Selon une variante, l’étape d’accès ACC1 comprend l’accès à une table historique TAB1 préexistante.

Etape de création d’une colonne historique Le procédé selon l’invention comprend une étape de création CREAI d’une nouvelle colonne historique COLX dans la table historique TAB1, une première fréquence FREQ1 et un conteneur de données CONTX étant associée à ladite nouvelle colonne historique COLX. Préférentiellement, cette étape est réalisée à chaque nouvelle réception d’une ou plusieurs nouvelles données d’une série temporelle. Selon un mode de réalisation, l’étape de création CREAI comprend la création d’une pluralité de colonnes historiques COLX dans la table historique TAB1 , une fréquence et un conteneur de données CONTX étant associée à chaque colonne historique COLX et chacune desdites fréquences étant différente. Cette mise en oeuvre est particulièrement intéressante lorsque plusieurs données associées à un même contexte sont reçues de manière concomitante. Cela est, par exemple, le cas pour des données provenant de différents capteurs d’un même dispositif, tel que par exemple une station météo.

Etape d’indexation des données

Le procédé selon l’invention comprend une étape d’indexation INDEX1 de chaque première donnée horodatée D1 dans un ensemble de cellules de la nouvelle colonne historique COLX. Chaque première donnée horodatée reçue est par exemple indexée dans une seule cellule d’un ensemble de cellules d’un conteneur de données CONTX associé à la colonne historique COLX.

Selon un mode de réalisation préféré, en référence à la figure 10, l’indexation de chaque première donnée horodatée D1 comprend l’indexation de chaque intervalle de dates INTX et/ou de chaque ensemble de dates GRANX associée à chaque première donnée horodatée D1. Cette indexation INDEX1 peut être mise en oeuvre par l’encodage des dates GRANX ou de l’intervalle de dates INTX sous la forme d’une valeur numérique entière ENTX correspondant à la position d’une valeur ou d’un ensemble de valeurs de la série temporelle ctsi.t, stsi.t dans la table historique TABi. Ce mode de réalisation présente un intérêt particulier pour améliorer les performances à l’écriture et à la lecture des données.

Selon un mode de réalisation, l’étape d’indexation INDEX1 de chaque première donnée horodatée D1 comprend l’indexation de données horodatées et/ou de données scalaires oses.

Etape d’encodage

Le procédé selon l’invention comprend une étape d’encodage ENC1 , décrite en figure 5, de chaque première donnée D1 de la première série temporelle cts1 , sts1 et d’au moins une première métadonnée MD1 de ladite première série temporelle cts1 , sts1 , ledit encodage produisant un champ binaire BINX 4. La première métadonnée MD1 peut comporter une pluralité d’informations caractérisant la structuration de chaque première donnée D1. Selon un mode de réalisation, la métadonnée MD1 peut comprendre en outre des données caractérisant un protocole d’encodage et de décodage de chaque première donnée D1. Cet aspect est particulièrement avantageux notamment pour simplifier l’opération d’encodage à l’écriture et de décodage à la lecture de chaque première donnée D1.

Selon un mode de réalisation, le champ binaire BINX peut également comprendre au moins une donnée scalaire oses encodée avec chaque première donnée D1 et chaque première métadonnée MD1.

Selon un mode de réalisation, le champ binaire BINX peut comprendre un « en-tête ».

Selon un mode de réalisation, le champ binaire BINX est mis à jour consécutivement à l’encodage d’au moins une nouvelle première donnée associée à la série temporelle ctsi.t, stsi.t et à l’enregistrement dudit encodage dans la cellule CELLX de la table historique TAB1 comprenant le champ binaire BINX. Ce mode de réalisation présente un intérêt particulier du fait qu’il n’est pas nécessaire d’écraser les premières données enregistrées pour enregistrer un champ binaire BINX mis à jour. Par conséquent, la mise à jour du champ binaire passe par une requête d’encodage ne comprenant que les nouvelles données de mise à jour. Ce mode de réalisation permet donc un gain de performance à l’écriture de chaque nouvelle première donnée dans la table historique TAB1 .

Selon un mode de réalisation, l’étape d’encodage ENC1 produit une pluralité de champs binaires BINX. Cela est particulièrement avantageux notamment dans le cas où l’utilisateur souhaite enregistrer une pluralité de données d’au moins une série temporelle cts1 , sts1 dans une pluralité de cellules de la table historique TAB1 .

Etape d’enregistrement

Le procédé selon l’invention comprend une étape d’enregistrement ENR1 , également décrite en figure 5, du champ binaire BINX produit par l’encodage dans une nouvelle cellule CELLX de la table historique TAB1 de la base de données BD1 .

Selon un mode de réalisation, l’étape d’enregistrement ENR1 comprend l’enregistrement ENR1 d’une pluralité de champs binaires BINX dans une pluralité de cellules de la table historique TAB1 . Indexation d’identifiant de colonne

Selon un mode de réalisation décrit en figures 7, 8 et 9, le procédé selon l’invention comprend une étape d’indexation d’un identifiant de la colonne historique noté INDEX IDC. Cette indexation peut être mis oeuvre par exemple par une combinaison d’une clé primaire, notée CPX, et d’un identifiant unique, noté UIID.

La clé primaire CPX est par exemple une concaténation d’un identifiant de ligne PKX et d’au moins un identifiant de colonne TKX. Préférentiellement, ladite clé primaire est créée au moment de l’indexation de l’identifiant IDC de la colonne historique COLX 5.

Chaque ligne à laquelle est associé chaque identifiant de ligne PKX peut être stockée sur le même matériel informatique. Dans une variante de ce mode, une ligne ou une pluralité de lignes auxquelles est associé chaque identifiant de ligne PKX sont stockées sur un matériel informatique différent.

Selon un mode de réalisation, un identifiant unique universel UIID est associé à chaque colonne historique COLX, ledit identifiant unique universel UIID étant généré à partir d’un code unique UCOD d’un matériel informatique et de la date de création DCRC de ladite colonne historique COLX 6.

Selon un mode de réalisation, l’invention peut comprendre une combinaison des étapes préalablement décrites afin de mettre en oeuvre un procédé d’encodage optimisé selon le matériel informatique disponible tel qu’un espace mémoire, le volume et la nature des données à encoder, ainsi que selon les fréquences associées ou non aux données reçues.

Traitement des données

Selon un autre aspect, l’invention concerne un procédé pour convertir des données enregistrées et encodées à partir du procédé d’encodage 1 . Ledit procédé pour convertir des données peut être implémenté de différentes manières. Par exemple, le procédé peut être :

soit implémenté dans une première réalisation consécutivement à la mise en oeuvre du procédé d’encodage 1 selon des étapes supplémentaires,

soit implémenté dans une seconde réalisation indépendamment de la mise en oeuvre du procédé d’encodage 1 dans la mesure où ce procédé de conversion exploite des données enregistrées dans une base de données selon un format de données et une architecture de base de données prédéfinie.

Selon chacune des première et seconde réalisations, le procédé de conversion comprend une pluralité d’étapes consécutives illustrées en figure 11

Selon un mode de réalisation, l’invention concerne un procédé 1 d’encodage comprenant une étape de sélection d’une fréquence de travail SELECT_FT et de sélection d’une période de temps. La fréquence de travail est définie par l’utilisateur et la période de temps correspond à la période suivant laquelle l’utilisateur souhaite exploiter une pluralité de données. Ce mode est particulièrement avantageux lorsqu’un utilisateur souhaite travailler suivant une fréquence différente de la fréquence associée à la colonne historique COLX dans laquelle les données sont enregistrées.

Selon un mode de réalisation, l’invention concerne un procédé 1 d’encodage comprenant une étape de sélection d’une méthode de conversion SELECT_MC de données en fonction de la fréquence de travail FT comportant la détermination d’un outil de calcul, une étape de conversion des données CONVERT selon ladite méthode de conversion pour produire un ensemble de données traitées DT et une étape de lecture des données converties LIRE. L’outil de calcul est utilisé pour convertir les données stockées dans la colonne historique COLX suivant la fréquence associée à ladite colonne à la fréquence de travail FT. Une variante consiste à déterminer une pluralité d’outils de calcul pour convertir les données stockées dans la colonne historique COLX à la fréquence de travail FT. Les outils de calcul utilisés peuvent être par exemple, et à titre non limitatif, la moyenne, le minimum, le maximum, la première valeur, la dernière valeur. Ce mode de réalisation est particulièrement avantageux pour permettre à un utilisateur d’exploiter une pluralité de données selon une périodicité choisie par ce dernier au moment de la lecture de ladite pluralité de données. A titre d’exemple, le passage de données horaires à des données journalières peut comprendre la mise en œuvre d’une sélection parmi les données horaires ou un calcul sur lesdites données horaires pour obtenir une donnée journalière.

Selon un mode de réalisation, l’étape de conversion des données CONVERT comprend une distribution des premières données D1 au moyen d’un outil de calcul lorsque la fréquence de travail FT est supérieure à la première fréquence FREQ1. Cette étape de conversion peut comprendre alternativement une sélection ou un calcul, au moyen d’un outil de calcul, d’un sous-ensemble de valeurs des premières données lorsque la fréquence de travail FT est supérieure à la première fréquence FREQ1. A titre d’exemple, le passage de données journalières à des données horaires peut comprendre la mise en œuvre d’une sélection parmi les données journalière ou un calcul sur lesdites données journalières pour obtenir une donnée horaire. L’outil de calcul peut être configuré pour mettre en œuvre au moins une opération mathématique, par exemple une méthode d’interpolation numérique. La méthode d’interpolation numérique peut par exemple comprendre une interpolation linéaire ou une interpolation polynomiale, pour déterminer une pluralité de données manquantes.

Compaction des données

Selon un mode de réalisation, le procédé d’encodage selon l’invention comprend une pluralité d’étapes pour compacter une pluralité de données. Une première étape est la création d’une nouvelle colonne historique COLX’. Une seconde étape est la sélection 7 d’un premier ensemble ENS1 de données d’une première colonne COLX. Une troisième étape est la sélection

8 d’un second ensemble ENS2 8 de données d’une seconde colonne COLX2 et enfin une dernière étape est le regroupement d’une pluralité de données D1 , D2 d’au moins deux séries temporelles ctsi.t, stsi.t cts2,t, sts2,t ou de plages de valeurs différentes d’une même série temporelle dans la nouvelle colonne historique COLX’.

Ce mode est particulièrement avantageux pour optimiser les performances en libérant notamment de l’espace mémoire par la compaction

9 d’une pluralité de données dans une même nouvelle colonne COLX’.

Selon un mode de réalisation, le regroupement d’une pluralité de données D1 , D2 comprend le remplacement d’un ensemble de données de ladite pluralité de données, indexées selon un intervalle de dates INTX ou un ensemble de dates GRANX, par un ensemble de données plus récentes indexées selon le même intervalle de dates INTX ou le même ensemble de dates GRANX.

Ce mode est particulièrement avantageux notamment dans le cas où un utilisateur souhaite mettre à jour des données erronées. De plus, le temps de remplacement des données est optimisé, car il ne nécessite pas la suppression préalable des données remplacées. Les performances sont donc avantageusement améliorées.

En résumé, le procédé selon l’invention permet de traiter efficacement de grands volumes de données avec des performances à l’écriture et à la lecture considérablement améliorées par rapport aux systèmes de l’art antérieur. Le procédé selon l’invention permet notamment de traiter de grands volumes de données sans la mise en oeuvre de commandes telles que les commandes « ORDER BY » ou « GROUP BY » qui sont des commandes présentant une faible performance. Le procédé selon l’invention permet notamment d’accroître les performances à l’insertion des données, mais aussi lors de la lecture suivant une bonne fiabilité. Le procédé selon l’invention permet notamment de choisir les fréquences de travail adaptées à l’environnement de travail d’un utilisateur, et permet à ce dernier de déterminer les méthodes de traitement de données qu’il souhaite mettre en oeuvre, par exemple en ce qui concerne le traitement des données manquantes ou encore l’agrégation des données.

Cas d’exemple des stations météo

L’invention sera mieux comprise à la lecture du cas d’exemple ci- après illustrant une mise en oeuvre du procédé d’encodage selon l’invention.

Dans cet exemple, en référence à la figure 2, l’étape de réception REC1 comprend la réception d’une pluralité de premières données D1 issue de deux stations météo Smété-i , Smété2 et d’une station de mesure de la qualité de l’air. Les premières données D1 reçues issues des deux stations météos Smété-i , Smété2 comportent des données de pression et des données de vitesse du vent définissant les données de deux séries temporelles ctsi , t,ctS2 , t. Les premières données D1 reçues de la station de mesure de qualité de l’air comportent des données de teneur moyenne en particules définissant les données d’une série temporelle stsi.t.

Les données des séries temporelles issues des deux stations météos sont réceptionnées toutes les secondes et les données issues de la station de mesure de qualité de l’air sont réceptionnées une fois par jour. Les données reçues de chaque station météo sont organisées selon un conteneur de données CONTX définissant un schéma logique d’organisation des données des séries temporelles. Dans cet exemple, les données reçues de chaque station météo comprennent également une donnée scalaire csci,csc2 correspondant au nom de la ville dans laquelle est localisée la station météo.

En référence aux figures 2 et 4, les données de chaque série temporelle et les données scalaires csci, csc2 sont encodées et enregistrées dans deux cellules différentes d’une même table historique TAB1 comprise dans une première base de données BD1. Les données de la station de mesure de la qualité de l’air sont encodées et enregistrées dans une cellule d’une deuxième table historique de la première base de données BD1. Dans cet exemple, la première table historique TAB1 comporte deux lignes correspondant aux deux stations météo et la deuxième table historique comprend une seule ligne correspondant à la station de mesure de la qualité de l’air. Selon un autre exemple, les données des deux stations météo et les données de la station de mesure de la qualité de l’air pourraient être enregistrées dans la même table historique TAB1. Dans ce cas, la table historique TAB1 comporterait trois lignes correspondant aux données des deux stations météo et aux données de la station de mesure de la qualité de l’air.

Les premières données D1 enregistrées de chaque série temporelle ctsi ,t ,ctS2.t,stsi.t comprennent une pluralité de données horodatées et non horodatées définissant une nouvelle colonne historique COLX pour chacune desdites séries temporelles. Une première fréquence FREQ1 est associée à chaque colonne historique COLX. Dans cet exemple, la première fréquence FREQ1 correspond à la fréquence d’enregistrement des données dans la table historique TAB1 pour chaque station météo. Cette première fréquence FREQ1 pourrait correspondre à l’enregistrement des données dans la table toutes les secondes, toutes les minutes ou encore toutes les heures. La fréquence de réception des données horodatées et non horodatées des stations météo et la fréquence de leur enregistrement dans la table historique TAB1 peut être la même fréquence ou bien une fréquence différente.

En référence à la figure 3 et à la figure 10, le procédé d’encodage comprend l’indexation INDEX d’un intervalle de dates INTX sous la forme d’entiers ENTX pour chacune des séries temporelles ctsi.t,ctS2 ,t ,stsi.t, qui sont des séries temporelles régulières. Par exemple, si les données enregistrées dans la table historique TAB1 correspondent à des données d’une ou plusieurs séries temporelles régulières reçues pendant un mois du 1 er Janvier 2020 au 31 Janvier 2020, l’indexation comprend l’indexation de l’intervalle de dates INTX allant du 1 er Janvier 2020 au 31 Janvier 2020 sous la forme d’entiers ENTX. Dans cet exemple, la première date de l’intervalle de dates est indexée sous la forme d’un entier ENTX et la seconde date de l’intervalle de dates est indexée sous la forme d’un autre entier ENTX.

En référence à la figure 5, l’encodage ENC1 des données de chaque série temporelle et des données scalaires, csci, csc2 , produit trois champs binaires BINX. Dans cet exemple, les champs binaires produits par l’encodage des données des stations météo comprennent des données de pression, des données de vitesse du vent, les intervalles de dates sous forme d’entiers et les données scalaires correspondant aux noms des villes dans lesquelles se situent les stations météo. Chaque champ binaire BINX comprend également une première métadonnée MD1. La première métadonnée MD1 comprend un champ fixe définissant la structure de chaque donnée encodée dans le champ binaire BINX. La première métadonnée MD1 comprend également une information permettant de décoder les données contenues dans chaque champ binaire BINX.

En référence à la figure 6, les données de chaque série temporelle et les données scalaires csci, csc2 sont enregistrées dans une nouvelle cellule CELLX de la table historique TAB1 . Chaque ligne de la table historique TAB1 correspond à une station différente. Dans cet exemple, la première ligne correspond à la première station météo et la deuxième ligne correspond à la seconde station météo. Dans cet exemple, la table historique TAB1 ne comporte que deux lignes. L’identifiant de ligne PKX correspond à l’identifiant de la station météo. Par exemple, pour la première ligne de la table historique TAB1 , l’identifiant PK1 correspond à l’identifiant de la première station météo. Le champ binaire BINX comprenant les données de pression et de vitesse du vent de la première station météo est enregistré dans une seule cellule de la table historique TAB1 , sur la ligne correspondant à la première station météo.

Dans cet exemple, les données de chaque champ binaire BINX de chaque cellule de la table historique TAB1 est mis à jour consécutivement à l’encodage ENC1 et l’enregistrement de nouvelles premières données D1 de chaque série temporelle et des données scalaires csci, csc2. Les nouvelles premières données de chaque station météo peuvent comprendre de nouvelles données de pression et de vitesse du vent reçues sur un nouvel intervalle de temps, par exemple des données de pression et de vitesse du vent reçues toutes les minutes du 1 er Février 2020 au 10 Février 2020.

En référence à la figure 7, la figure 8 et la figure 9, pour la première station météo, une étape d’indexation d’un identifiant de la colonne historique INDEX IDC est mise en oeuvre. Cette étape d’indexation INDEX IDC est mise en oeuvre par la concaténation d’une clé primaire CPX et d’un identifiant unique UIID. Dans notre exemple, l’identifiant unique UIID peut correspondre à un identifiant unique universel, mieux connu dans la terminologie anglo- saxonne sous le nom de « Universally unique identifier », permettant à un système distribué d’identifier de façon unique une information. La clé primaire correspond à la concaténation de l’identifiant de ligne PK1 correspondant à l’identifiant de la station météo et d’au moins un identifiant de colonne TKX à TKN. L’identifiant unique UIID est généré à partir d’un code unique UCOD et de la date de création DCRC de la colonne historique.

Dans le cadre de l’exemple, un utilisateur peut décider d’exploiter les données de chaque série temporelle et les données scalaires csci, csc2, des deux stations météo et de la station de mesure de la qualité de l’air à une fréquence de travail FT. La fréquence de travail, dans notre exemple, est une fréquence journalière. En référence à la figure 11 , cette étape correspond à la sélection de la fréquence de travail SELECT_FT. L’utilisateur sélectionne ensuite une méthode de conversion SELECT_MC. Les données de chaque série temporelle et les données scalaires csci, csc2, sont ensuite converties à la fréquence de travail suivant la méthode de conversion sélectionnée. Par exemple, les données de pression et de vitesse du vent enregistrées dans la table historique TAB1 peuvent être convertie à une fréquence journalière par une opération mathématique de moyenne journalière sur l’ensemble des valeurs. L’utilisateur peut ensuite mettre en oeuvre l’étape de lecture READ pour lire les données converties à la fréquence de travail FT.

En référence à la figure 12, une opération de compactage des données, mieux connue dans la terminologie anglo-saxonne sous le terme de « compaction », est réalisée sur une pluralité d’ensembles de données pour les deux stations météos et pour la station de mesure de la qualité de l’air. Pour chacune des stations, l’opération de compactage comprend la création d’une nouvelle colonne historique COLX’, le regroupement d’un premier ensemble de données ENS1 d’une première colonne COLX et le regroupement d’un second ensemble de données ENS2 d’une seconde colonne COLX2 dans la nouvelle colonne historique créée COLX’. La première colonne historique COLX et la seconde colonne historique COLX2 sont ensuite supprimées de sorte à ne conserver que la nouvelle colonne historique créée COLX’, comprenant les deux ensembles de données ENS1 et ENS2. Dans cet exemple, les performances sont avantageusement améliorées consécutivement à la libération d’espace mémoire par la mise en oeuvre de l’opération de compactage des données.

La figure 13 illustre notamment un cas dans lequel les données de deux stations météo Smété-i , Smété2 sont enregistrées dans une même table historique TAB1. Chaque ligne de la table correspond à une station météo. Un ensemble de données D1 ,... ,Dn sont indexées dans une colonne historique COLX. L’ensemble de données D1 ,... ,Dn indexés sont encodés pour produire un champ binaire BINX. Le champ binaire BINX consécutif à l’encodage est ensuite enregistré dans une seule cellule de la table historique TAB1.

Configuration matérielle du système

La figure 14 est un exemple de configuration matérielle d’un système 100 configuré pour mettre en oeuvre le procédé d’encodage de l’invention.

D’un point de vue matériel, le système peut être vu comme un calculateur interagissant avec un produit programme d’ordinateur. Le système comprend par exemple un ordinateur, un micro-ordinateur ou un réseau d’ordinateurs.

Le système est par exemple un système distribué. Il comprend par exemple un ensemble d’ordinateurs répartis en noeuds.

Le système 100 comprend un module de calcul 110. Ce module de calcul 110 comprend, par exemple, un ou plusieurs processeurs aptes à interpréter des instructions sous forme de programme informatique. Le traitement peut être exécuté par un processeur, ou de façon simultanée ou séquentielle, ou selon un autre procédé, par un ou plusieurs processeurs.

Le module de calcul 110 comprend, un module de traitement de données 111 pour effectuer des calculs, une mémoire 112, couplée opérationnellement au circuit traitement de données 111 , un support lisible par ordinateur 114 et éventuellement un lecteur 113 adapté à lire le support lisible par ordinateur 114. Le système 100 comprend également un dispositif d’entrée, un dispositif de sortie et un dispositif de communication.

Chaque fonction du système 100 est exécutée en amenant le module de traitement de données 111 à lire un programme prédéterminé sur un matériel tel que la mémoire 112 de telle sorte que le module de traitement de données 111 exécute des calculs, commande des communications effectuées par le dispositif de communication et à lire et/ou écrire des données dans la mémoire 112 et le support lisible par ordinateur 114.

Le procédé est exécuté sur un ordinateur unique ou sur un système distribué entre plusieurs ordinateurs (notamment via l’utilisation de l’informatique en nuage).

La mémoire 112 est un support d'enregistrement lisible par ordinateur, et peut être configurée avec, par exemple, au moins l'un des éléments suivants : une mémoire morte (ROM, de l'anglais Read-Only Memory), une mémoire vive (RAM, de l'anglais Random Access Memory) et un autre support de stockage adéquat. La mémoire 112 peut comporter un système d’exploitation et charger les programmes selon l’invention. Elle comporte des registres adaptés à enregistrer des variables de paramètres créés et modifiés au cours de l’exécution des programmes précités.

Le produit programme d’ordinateur peut comprendre le support d’enregistrement lisible par ordinateur 114 qui est un dispositif tangible et qui peut être configuré avec, par exemple, au moins un des éléments suivants : un support amovible, comme par exemple, de façon non limitative, un disque magnéto-optique (par exemple, un disque compact à lecture seule (CD-ROM, de l'anglais Compact Disc Read-Only Memory), un disque amovible, une unité de disque dur, une base de données, un serveur, ou tout autre support de stockage adéquat. En variante, les instructions du programme sont issues d’une source externe et téléchargées via un réseau.

L’invention se rapporte également à un produit programme d’ordinateur comprenant le support lisible par ordinateur 114 contenant des instructions qui, lorsqu'elles sont exécutées par le module de calcul 110, amènent le système 100 à mettre en œuvre les étapes du procédé de l’invention.

Le système 100 comprend en outre une interface utilisateur 120 comprenant dispositif d’entrée 121 et un dispositif de sortie 122. L'interface utilisateur 120 comprend un dispositif d'entrée 121 pour permettre à utilisateur de saisir des données ou des commandes de façon à pouvoir interagir avec les programmes selon l’invention. Le dispositif d’entrée 121 comprend, par exemple, un clavier ou un une interface de pointage, tel qu’une souris. Le dispositif de sortie 122 est conçu pour restituer des informations à un utilisateur, de façon sensorielle ou électrique, comme, par exemple de façon visuelle ou sonore. L’interface de sortie 122 comprend, par exemple, une interface graphique.

Le système peut comprendre un ensemble d’au moins un dispositif de communication. L’ensemble d’au moins un dispositif de communication permet une communication entre les éléments du système 100 et éventuellement entre au moins un élément du système et un dispositif extérieur au système 100. Ce dispositif de communication peut établir un lien physique entre des éléments du système 100 et/ou entre un élément du système 100 et un dispositif extérieur au système 100 et/ou un lien en communication à distance (sans fil) entre des éléments du système 100 et/ou entre un élément du système et un dispositif extérieur au système 100.