Nouveautés de Zen V15 : Suivi facile des modifications de données
Actian Corporation
22 septembre 2021

La maintenance des données est une exigence permanente dans tout environnement de base de données. L'archivage des données historiques, la synchronisation des données après un accès hors ligne ou l'audit des données modifiées sont autant de questions qui nécessitent généralement une programmation personnalisée. La plupart de ces solutions nécessitent souvent des modifications de la conception de la base de données ou des processus fastidieux pour accomplir ces tâches. Avec la sortie de Zen v15, il y a maintenant un moyen facile de faire cela pour n'importe quel fichier de données Zen existant sans impacter les applications existantes et les dispositions de données - c'est appelé "System Data v2".
Les données système existent depuis longtemps ; elles fournissent un identifiant unique caché pour chaque enregistrement dans un fichier de données. Elles sont utilisées conjointement avec la journalisation des transactions pour assurer l'intégrité des données et la récupération en cas de défaillance du système. Il est également utilisé par DataExchange (pour la réplication de données entre diverses instances de serveurs Zen Windows dans des environnements de données distribuées) pour identifier de manière unique les enregistrements dans les fichiers répliqués entre les systèmes. Les valeurs cachées peuvent être récupérées via des opérations Btrieve Get standard en lisant le numéro de clé 125 ; cependant, en plus d'être uniques, les données du système ne fournissent pas d'informations supplémentaires.
Zen v15 introduit System Data v2, qui fournit deux valeurs uniques cachées sur chaque enregistrement. Ces valeurs sont des horodatages réels qui représentent le moment où l'enregistrement a été inséré dans le fichier et le moment où il a été mis à jour pour la dernière fois. Ces horodatages sont automatiquement traités par le moteur pour chaque insertion et mise à jour reçue, quelle que soit l'interface utilisée. Ainsi, les applications écrites à l'aide de Btrieve, Btrieve 2, ODBC, ADO.NET, PDAC, Java, etc. feront toutes en sorte que les horodatages des données système v2 soient maintenus si cette option est activée dans le fichier de données. Le format de fichier 13.0 est requis pour les données système v2, et l'utilitaire de reconstruction peut être utilisé pour activer cette option sur les fichiers que vous sélectionnez.
Comme les données originales du système, les nouvelles valeurs cachées peuvent être récupérées via les méthodes Btrieve standard en lisant les numéros de clé 125 (heure d'insertion) et 124 (heure de mise à jour). En outre, il est possible d'accéder aux valeurs de la version 2 des données du système via n'importe quelle interface SQL en utilisant les noms de colonnes virtuelles sys$create et sys$update. Les données de ces colonnes sont stockées sous la forme d'un Timestamp(7), qui est un horodatage standard avec une granularité de septasecondes.
Examinons un exemple exécuté dans le Centre de contrôle Zen (la console de gestion de la base de données Zen) :
Pour créer une table contenant des données système v2, ajoutez le mot-clé "SYSDATA_KEY_2" à l'instruction CREATE TABLE :
créer une table sensorData SYSDATA_KEY_2
(location varchar(20), temp real) ;
Ce mot-clé peut également être utilisé dans une instruction ALTER TABLE pour reconstruire un fichier existant afin d'y inclure les nouvelles valeurs syskey. Dans les deux cas, on obtient un fichier de la version 13.0.
Insérons maintenant quelques lignes et voyons à quoi ressemblent les colonnes virtuelles :
insert into sensorData values('Machine1', 77.3) ;
insert into sensorData values('Machine2', 79.8) ;
insert into sensorData values('Machine3', 65.4) ;
insert into sensorData values('Machine4', 90.0) ;
sélectionner "sys$create", "sys$update", sensorData.* from sensorData ;
sys$create sys$update location temp
=========================== =========================== ======== =====
2021-09-13 12:49:45.0000000 2021-09-13 12:49:45.0000000 Machine1 77.3
2021-09-13 12:49:45.0000001 2021-09-13 12:49:45.0000001 Machine2 79.8
2021-09-13 12:49:45.0000002 2021-09-13 12:39:45.0000002 Machine3 65.4
2021-09-13 12:49:45.0000003 2021-09-13 12:49:45.0000003 Machine4 90.0
Initialement, l'heure de création et l'heure de mise à jour sont enregistrées sous la même valeur. Vous remarquerez que les valeurs de données syskey indiquent les fractions de secondes sous la forme de sept chiffres. Cette partie de l'horodatage est utilisée pour garantir l'unicité de la valeur, et non pour représenter les septasecondes réelles de l'insertion.
Après avoir mis à jour une ligne, vous verrez que seule la valeur sys$update a changé :
-mettre à jour une ligne :
update sensorData set temp = 90.1 where location = 'Machine1' ;
-rechercher les lignes qui ont été mises à jour :
select "sys$create", "sys$update", sensorData.* from sensorData
où sys$update > sys$create;
sys$create sys$update location temp
=========================== =========================== ======== =====
2021-09-13 12:49:45.0000000 2021-09-14 11:57:46.0000000 Machine1 90.1
Autres exemples de requêtes :
-Rechercher les lignes insérées ou mises à jour au cours des 20 dernières minutes :
select "sys$create", "sys$update", sensorData.* from sensorData
where "sys$update" > Timestampadd(SQL_TSI_MINUTE, -20, now()) ;
-retourne toutes les lignes CHANGÉES, y compris le nombre de minutes écoulées depuis la dernière mise à jour
select sensorData.*, Timestampdiff(SQL_TSI_MINUTE, "sys$update",now()) NumMins
from sensorData where "sys$update" > "sys$create" ;
–return the number of rows, inserted in the last 24 hours:
select count(*) as Last24Count from sensorData
where Timestampdiff(SQL_TSI_hour, “sys$create”, now()) < 24;
Les index de System Data v2 sont entièrement optimisables par le moteur SQL. Ainsi, une requête avec des restrictions ou des tris sur les colonnes virtuelles utilisera l'index lorsque cela est approprié.
Le suivi de l'heure de création et de la date de dernière mise à jour peut désormais être facilement réalisé avec Zen v15 et la fonctionnalité System Data v2. Téléchargez la version d'essai ici et essayez-la !
S'abonner au blog d'Actian
Abonnez-vous au blogue d'Actian pour recevoir des renseignements sur les données directement à vous.
- Restez informé - Recevez les dernières informations sur l'analyse des données directement dans votre boîte de réception.
- Ne manquez jamais un article - Vous recevrez des mises à jour automatiques par courrier électronique pour vous avertir de la publication de nouveaux articles.
- Tout dépend de vous - Modifiez vos préférences de livraison en fonction de vos besoins.