Tables de faits et de dimension

Lors de la conception du schéma d’une base de données Azure Data Explorer, considérez les tables comme appartenant à l’une des deux catégories.

Tables de faits

Les tables de faits sont des tables dont les enregistrements sont des « faits » immuables, tels que les journaux de service et les informations de mesure. Les enregistrements sont progressivement ajoutés à la table en continu ou en segments volumineux. Les enregistrements y restent jusqu’à ce qu’ils soient supprimés en raison de leur coût ou parce qu’ils ont perdu leur valeur. Sinon, les enregistrements ne sont jamais mis à jour.

Les données d’entité sont parfois conservées dans des tables de fait, où les données d’entité changent lentement. Par exemple, les données relatives à une entité physique, comme une pièce d’équipement de bureau qui change rarement d’emplacement. Étant donné que les données dans Kusto sont immuables, la pratique courante consiste à ce que chaque table contienne deux colonnes :

  • Colonne d’identité (string) qui identifie l’entité
  • Colonne d’horodatage de la dernière modification (datetime)

Seul le dernier enregistrement de chaque identité d’entité est ensuite récupéré.

Tables de dimension

Tables de dimension :

  • Conserver les données de référence, telles que les tables de recherche d’un identificateur d’entité dans ses propriétés
  • Conserver des données de type instantané dans des tables dont le contenu entier change en une seule transaction

Les tables de dimension ne reçoivent pas régulièrement de nouvelles données. Au lieu de cela, l’ensemble du contenu des données est mis à jour en même temps, à l’aide d’opérations telles que .set-or-replace, les étendues .move ou les tables .rename.

Parfois, les tables de dimension peuvent être dérivées de tables de faits. Ce processus peut être effectué via une vue matérialisée sur la table de faits, avec une requête sur la table qui prend le dernier enregistrement pour chaque entité.

Différencier les tables de faits et de dimension

Il existe des processus dans Kusto qui différencient les tables de faits des tables de dimension. L’un d’entre eux est l’exportation continue.

Ces mécanismes sont garantis pour traiter les données dans les tables de faits une seule fois. Ils s’appuient sur le mécanisme de curseur de base de données .

Par exemple, chaque exécution d’un travail d’exportation continue exporte tous les enregistrements qui ont été ingérés depuis la dernière mise à jour du curseur de base de données. Les travaux d’exportation continue doivent faire la différence entre les tables de faits et les tables de dimension. Les tables de faits traitent uniquement les données nouvellement ingérées, et les tables de dimension sont utilisées comme recherches. Par conséquent, la table entière doit être prise en compte.

Il n’existe aucun moyen de « marquer » une table comme étant une « table de faits » ou une « table de dimension ». La façon dont les données sont ingérées dans la table et la façon dont la table est utilisée sont ce qui identifie son type.