Gestion des données

Le service de gestion de données

Le schéma suivant présente les échanges entre chaque service lors de l’ingestion de données issue d’un processus externe. Chaque service est décrit plus précisément dans son chapitre.

Ingestion de la donnée

Diagram

Modèle - Domaine objet

Chaque entité métier (item) présente en base est un document. Chaque item possède un ensemble d’attributs qui peut être valorisé ou non. L’item est une unité atomique de lecture et de modification.

Un champ représente la définition d’un type métier. Par exemple une couleur est une chaîne de caractères d’une certaine longueur.

Une 'class' représente le type de l’objet stocké (lieu, voiture, personne, événement, attentat…​). Une classe possède des attributs qui ont un nom et un champ qui représente son type. A noter que plusieurs attributs de la même classe peuvent utiliser le même champ.

Dans notre contexte, on appelle ontologie l’ensemble des règles qui définissent pour une classe donnée les attributs.

Les objets sont reliés entre eux dans un graph orienté et typé.

Chaque item est ajouté avec des meta-données système :

Métadata Type Mapping elastic

Identifiant de l'item

UUID

Keyword

Identifiant de l'item

String

Keyword

Identifiant de la class

UUID

Keyword

Identifiant du dataset

UUID

Keyword

Identifiant de la dataset definition

UUID

Keyword

Date d’insertion

UUID

Date

Date d’insertion

Date

Date

Stockage des données des structurées

Plusieurs bases de données structurées sont disponibles :

  • Elasticsearch

  • Postgis

  • Kuzzle

  • Kuzzle Asset

  • Kuzzle Measure

Il est possible d’associer un stockage à une classe lors de sa création. Le stockage par défaut est Elasticsearch. Postgis est recommandé pour le stockage de données géodésiques lourdes et/ou complexes. Les stockages Kuzzle Asset et Kuzzle Measure sont utilisés pour le stockage de données iot.

Lors de la création d’une classe, un événement de création de classe est envoyé au service de gestion de données pour qu’il crée la structure de stockage associée à celle-ci.

  • Elasticsearch : création d’un index.

  • Postgis : création d’une table.

  • Kuzzle : création d’un index et d’une collection "provoly".

  • Dans le cas des stockages Kuzzle Asset et Kuzzle Measure, les index sont déjà présents. Aucun événement n’est envoyé.