Pratiques conseillées pour le stockage des données temporelles

Les données temporelles peuvent être stockées de différentes façons. Voici quelques bonnes pratiques que vous pouvez suivre pour stocker des données temporelles.

Stocker des horodatages dans un champ de date

Il est recommandé de stocker les horodatages de vos données temporelles dans un champ de date dédié. Il s’agit d’un type de champ de base de données qui permet de stocker les informations de date et d’heure. Il optimise les performances des requêtes et prend en charge des requêtes de base de données plus sophistiquées que lorsque vous stockez des valeurs temporelles dans un champ numérique ou de chaîne. En fonction de vos sources de données, les types de champs de données disponibles sont Date, DateOnly, TimeOnly et TimestampOffset.

S’il n’est pas possible d’utiliser un champ de date dédié, vous pouvez stocker les horodatages de vos données dans des champs de type chaîne ou numérique. Par exemple, vous pouvez stocker des données annuelles sous la forme 2000, 2001, etc., ou stocker une valeur de date et d’heure complète telle que 2015-07-04T13:11:26.002, qui utilise le style ISO-8601. Pour les champs de type chaîne, compte tenu de la nécessité d’une interrogation et d’un tri efficaces, les valeurs de texte doivent répertorier les valeurs d’unité de temps de la plus grande à la plus petite, par exemple 20120126 pour le 26 janvier 2012.

Remarque :

L’affichage de date n’est pris en charge que pour la plage des années 100 à 10 000 après JC. Pour des dates en dehors de cette plage, il est recommandé de convertir les valeurs soit en format numérique (et de filtrer à l’aide du curseur de plage) soit en format chaîne (pour étiquetage).

Vous pouvez utiliser l’outil de géotraitement Convertir un champ temporel pour convertir un champ de type chaîne ou numérique contenant des horodatages en champ de date.

Stocker les données temporelles dans un format de ligne

Si vous utilisez des données temporelles dans ArcGIS AllSource, stockez les valeurs temporelles associées à des entités individuelles dans un format de ligne. Vous pouvez utiliser le curseur temporel pour parcourir vos données dans le temps. Le curseur temporel filtre l’affichage en fonction de la couche pour n’afficher que les lignes dans une période spécifiée.

Chaque entité ou ligne d’une table peut avoir des valeurs temporelles dans un champ unique représentant un moment donné ou des valeurs temporelles dans deux champs représentant une durée avec un début et une fin d’observation.

Selon que les attributs de vos données changent au fil du temps ou que la forme de chaque entité évolue au fil du temps, vous pouvez stocker vos données temporelles dans une table unique ou dans des tables distinctes.

Les données temporelles sont souvent représentées dans des colonnes de votre table attributaire. Par exemple, les coûts médicaux par comté pour 1990, 1991 et 1992 peuvent être répertoriés dans des colonnes distinctes sur une seule ligne dans la table. Pour visualiser ces données au fil du temps en utilisant les fonctions de filtrage des données du curseur temporel, vous devez reformater la table de façon à ce que les valeurs temporelles soient au format ligne.

Indexer les champs contenant des valeurs temporelles

Pour optimiser la visualisation du temps et les performances des requêtes, il est recommandé d’indexer les champs contenant les valeurs temporelles. Vous pouvez utiliser l’outil de géotraitement Ajouter un index attributaire pour ajouter un index à un champ d’une table ou classe d’entités existante.

Utiliser l'heure standard

Pour les données temporelles collectées dans des régions qui adoptent l’heure d’été, vous devez essayer de stocker les valeurs temporelles dans vos données en heure standard. Les données collectées avec l'heure d'été peuvent être difficiles à gérer. L'heure d'été peut varier selon les régions, et les règles qui régissent le passage à l'heure d'été peuvent évoluer avec le temps.

Le stockage des valeurs temporelles en heure standard évite toute perte ou superposition des données au cours de leur compilation et permet de visualiser le temps pendant les heures de transition sans aucune ambiguïté.

Utiliser des valeurs nulles dans un champ temporel

Il arrive qu’une valeur nulle soit stockée dans un champ temporel. Par exemple, une couche comprenant une heure de début et une heure fin peut utiliser une heure de fin nulle pour indiquer qu’une entité existe dans le futur. Puis, à mesure de l’avancée du curseur temporel, l’entité apparaît lorsque l’heure de début est incluse et continue à être affichée pendant le reste de la lecture. L’inverse est également vrai : une heure de début nulle indique que l’entité existe dans le passé et celle-ci s’affiche immédiatement depuis le début jusqu’à ce que l’heure de fin soit atteinte.

Toutefois, lorsque le temps est stocké dans un champ unique, une entité ayant une valeur nulle ne peut pas être comprise dans un intervalle de temps et est exclue.

Déterminer le type de champ de date à utiliser

La manière dont vous stockez vos données et prévoyez d’utiliser la date a des répercussions directes sur les types de champs de date et d’heure recommandés. Il est important de faire le bon choix en fonction de vos besoins. Quatre types de champs de date sont disponibles : Date, DateOnly, TimeOnly et TimestampOffset.

Le tableau suivant détaille les considérations à prendre en compte pour déterminer le type de champ de date à utiliser :

Type de champ de dateCe qu’il contientComment le fuseau horaire est définiÀ quoi est-il adapté

Date

Date et heure

S’il s’agit d’une couche temporelle, un fuseau horaire peut être défini pour la couche, ce qui permet de définir une position absolue dans le temps.

Toutes les valeurs du champ sont censées se trouver dans le même fuseau horaire.

Valeurs temporelles toutes en UTC (Exemple 1) ou toutes dans le même fuseau horaire local (Exemple 2).

  • Exemple 1 : groupe spécifique capturant les données relatives à la foudre dans le monde entier.
  • Exemple 2 : gouvernement local stockant les dates et heures auxquelles les restaurants de son comté ont fait l’objet d’un contrôle sanitaire pour la dernière fois.

DateOnly

Héritage :

Ce format a été présenté dans ArcGIS Pro 3.2.

Composant de date uniquement

Lorsque la couche devient temporelle, le fuseau horaire est défini sur None (Aucun). Cela signifie que la partie relative à la date du curseur temporel, quel que soit le fuseau horaire de la carte, est utilisé pour filtrer et afficher le contenu.

Remarque :

Une seule journée du champ DateOnly présente une durée effective de 24 heures, les lignes étant donc affichées même si le curseur temporel filtre une partie de cette journée.

Données capturées dans la granularité des jours ou lorsqu’un élément s’applique ou représente l’ensemble de la journée.

  • Exemple 1 : historiens gérant les dates d’inauguration des dirigeants mondiaux.
  • Exemple 2 : groupe de scientifiques surveillant la température de l’air quotidienne maximale dans les villes du monde entier.

TimeOnly

Héritage :

Ce format a été présenté dans ArcGIS Pro 3.2.

Composante temporelle uniquement

Les couches utilisant le champ TimeOnly ne peuvent pas devenir des couches temporelles.

Données qui se répètent tous les jours ou contenu dans lequel seule la composante temporelle compte.

  • Exemple 1 : zoo gérant la routine quotidienne pour nourrir ses animaux.
  • Exemple 2 : installation de sécurité qui assure le suivi du déverrouillage des portails et des portes selon un horaire quotidien fixe.

TimestampOffset

Héritage :

Ce format a été présenté dans ArcGIS Pro 3.2.

Décalage de date, d’heure et de fuseau horaire relatif par rapport à UTC

La valeur de décalage de fuseau horaire étant déjà stockée avec la valeur dans chaque cellule, il n’y a aucune possibilité de choisir un fuseau horaire nommé pour la couche. Chaque valeur de la table peut utiliser un décalage horaire différent.

Remarque :
Le décalage en heures indique le décalage temporel par rapport au temps universel coordonné (UTC) plutôt que par rapport à un fuseau horaire nommé, par exemple l’heure normale du Pacifique. Plusieurs fuseaux horaires nommés pouvant partager le même décalage temporel, le stockage n’est pas un fuseau horaire particulier avec une meilleure prise en compte de l’heure d’été ou des changements historiques.

Les valeurs temporelles dont les dates traversent plusieurs fuseaux horaires et la valeur d’heure locale sont importantes.

  • Exemple 1 : compagnie aérienne gérant ses horaires de décollage et d’atterrissage en heure absolue dans le monde, tout en tenant compte de l’heure locale pour les passagers.
  • Exemple 2 : étude des coûts liés à un séisme dont les événements sont rapportés en temps absolu tout en capturant l’heure locale à laquelle les résidents ont ressenti le séisme.