Gestion des données

Synchronisez vos données de l'Edge au Cloud avec Actian Zen EasySync

Johnson Varughese

28 août 2024

Synchronisez vos données de l'Edge au Cloud avec Actian Zen EasySync

Bienvenue dans le monde d'Actian Zen, une solution de gestion des données polyvalente et puissante conçue pour vous aider à créer des applicationsEmbarqué faible latence . Voici la troisième partie de la série de blogues de démarrage rapide qui vise à aider les développeurs d'applications Embarqué à démarrer avec Actian Zen.

Établir la cohérence et consolider les données sur différents appareils et serveurs sont essentiels pour la plupart des solutions edge-to-cloud. La synchronisation des données est nécessaire pour presque toutes les applications mobiles, périphériques ou IoT, et les développeurs sont familiers avec les concepts et les défis de base. C'est pourquoi de nombreux développeurs expérimentés apprécient les solutions efficaces. L'outil Actian Zen EasySync est un nouvel utilitaire spécialement conçu à cette fin.

Ce blog vous guidera à travers les étapes de la configuration et du fonctionnement d'EasySync.

Qu'est-ce que EasySync ?

Zen EasySync est un outil polyvalent de synchronisation des données des données qui automatise la synchronisation des enregistrements nouvellement créés ou mis à jour d'un serveur de base de données Zen à un autre. Cet outil transfère les données entre plusieurs serveurs, que vous travailliez en périphérie ou au sein d'un réseau centralisé. Les principales caractéristiques d'EasySync sont les suivantes

  • Calendrier de synchronisation flexible: La synchronisation peut être programmée pour rechercher des modifications à un intervalle défini ou peut être utilisée comme un outil de transfert par lotsen fonction de vos besoins.
  • Logging (enregistrement): Les fonctions de journalisation permettent de surveiller l'activité générale, de détecter les erreurs et de résoudre les problèmes liés à des résultats inattendus.

Conditions préalables

Avant d'utiliser EasySync, assurez-vous que les éléments suivants sont présents dans votre installation Zen :

  • Données du système: Les fichiers doivent avoir les données système v2 activées, avec le format de fichier version 13 ou version 16.
  • ZEN 16.0 installé.
  • Clé unique: Les fichiers source et destination doivent avoir une clé unique utilisateur.

Scénarios d'utilisation d'EasySync

EasySync prend en charge différents scénarios de synchronisation des données , ce qui en fait un outil flexible pour différents cas d'utilisation. Voici quelques scénarios d'utilisation courants décrits dans le diagramme ci-dessous :

  1. Appuyer sur la télécommande: Synchronise les données d'une base de données locale vers une base de données distante.
  2. Tirer de la télécommande: Synchronise les données d'une base de données distante vers une base de données locale.
  3. Tirer et pousser vers les télécommandes: Synchronisation des données entre plusieurs bases de données distantes.
  4. Données agrégées de Edge: Collecter des données à partir de plusieurs bases de données périphériques et les synchroniser avec une base de données centrale.
  5. Diffuser les données à Edge: Distribuer les données d'une base de données centrale à plusieurs bases de données périphériques.

tableau actian edge easysync

Premiers pas avec EasySync

Pour démontrer comment utiliser EasySync, nous allons créer une application Python qui simule des données de capteurs et les synchronise à l'aide d'EasySync. Cette application créera une table de capteurs sur votre périphérique et votre serveur distant, insérera des données de capteurs aléatoires et synchronisera les données avec une base de données distante. La base de données distante peut contenir divers ensembles de données provenant de plusieurs appareils périphériques.

Étape 1 : Création du fichier de configuration

Tout d'abord, nous devons créer un fichier de configuration JSON (config.json). Ce fichier définira les paramètres de synchronisation et les fichiers à synchroniser, les fichiers étant stockés dans un dossier source (demodata) et un dossier destination (demodata).

Voici un exemple de fichier de configuration :

{
  "version": 1,
  "settings": {
    "polling_interval_sec": 10,
    "log_file": " C:/ProgramData/Actian/Zen/logs/datasync.log",
    "record_err_log": " C:/ProgramData/Actian/Zen/logs/recorderrors.log",
    "resume_on_error": true
  },
  "files": [
    {
      "id": 1,
      "source_file": "btrv://localhost/demodata?dbfile= sensors.mkd",
      "source_username": "",
      "source_password": "",
      "destination_file": "btrv://<Destination Server>/demodata?dbfile= sensors.mkd",
      "destination_username": "",
      "destination_password": "",
      "unique_key": 0
    },
    {
      "id": 2,
      "source_file": "btrv://localhost/demodata?dbfile=bookstore.mkd",
      "destination_file": "btrv://<Destination Server>/demodata?dbfile=bookstore.mkd",
      "create_destination": true,
      "unique_key": 1
    }
  ]
}

Étape 2 : Écrire le script Python

Ensuite, nous créons un script Python qui simule les données des capteurs, crée la table de base de données nécessaire et insère des enregistrements dans la base de données. 

Enregistrez le code Python suivant dans un fichier nommé run_easysync.py. Exécutez le script pour créer la table des capteurs sur votre périphérique local et sur le serveur, et pour insérer des données sur votre périphérique.

import pyodbc
import random
import time
from time import sleep
random.seed()
def CreateSensorTable(server, database):
    try:
db_connection_string = f"Driver={{Pervasive ODBC Interface}};
ServerName={server};
DBQ={database};"
        conn = pyodbc.connect(db_connection_string, autocommit=True)
        cursor = conn.cursor()
       # cursor.execute("DROP TABLE IF EXISTS sensors;")
        cursor.execute("""
            CREATE TABLE sensors SYSDATA_KEY_2(
                id IDENTITY,
                ts DATETIME NOT NULL,
                temperature INT NOT NULL,
                pressure FLOAT NOT NULL,
                humidity INT NOT NULL
            );
        """)
        print(f"Table 'sensors' created successfully on {server}")
     except pyodbc.DatabaseError as err:
         print(f"Failed to create table on {server} with error: {err}")
def GetTemperature():
     return random.randint(70, 98)
def GetPressure():
     return round(random.uniform(29.80, 30.20), 3)
def GetHumidity():
     return random.randint(40, 55)
def InsertSensorRecord(server, database):
     temp = GetTemperature()
     press = GetPressure()
     hum = GetHumidity()
     try:
      insert = 'INSERT INTO sensors (id, ts, temperature, pressure, humidity) VALUES (0, NOW(), ?, ?, ?)'
        db_connection_string = f"Driver={{Pervasive ODBC Interface}};ServerName={server};DBQ={database};"
        conn = pyodbc.connect(db_connection_string, autocommit=True)
        cursor = conn.cursor()
        cursor.execute(insert, temp, press, hum)
        print(f"Inserted record [Temperature {temp}, Pressure {press}, Humidity {hum}] on {server}")
    except pyodbc.DatabaseError as err:
        print(f"Failed to insert record on {server} with error: {err}")
# Main
local_server = "localhost"
local_database = "Demodata"
remote_server = "remote-server_name"
remote_database = "demodata"

# Create sensor table on both local and remote servers
CreateSensorTable(local_server, local_database)
CreateSensorTable(remote_server, remote_database)

while True:
    InsertSensorRecord(local_server, local_database)
    sleep(0.5)

Synchronisation des données d'un appareil IoT vers un serveur distant

Intégrons maintenant le processus de synchronisation des données à l'aide de l'outil EasySync afin de garantir que les données des capteurs de l'appareil IoT sont répliquées sur un serveur distant.

Étape 3 : Lancer EasySync

Pour synchroniser les données à l'aide d'EasySync, procédez comme suit :

  1. Assurez-vous que l'option easysync est installé et accessible depuis votre ligne de commande.
  2. Exécutez le script Python pour commencer à générer et à insérer les données des capteurs.
  3. Exécutez la commande EasySync pour lancer le processus de synchronisation.

Ouvrez votre ligne de commande et naviguez jusqu'au répertoire contenant votre fichier de configuration et votre script Python . Exécutez ensuite la commande suivante :

easysync -o config.json

Cette commande lance l'utilitaire EasySync avec le fichier de configuration spécifié et s'assure que le processus de synchronisation commence.

Conclusion

Actian Zen EasySync est un outil simple mais efficace pour automatiser la synchronisation des données entre les serveurs de base de données Zen. En suivant les étapes décrites dans ce blog, vous pouvez facilement configurer et exécuter EasySync. EasySync offre la flexibilité et la fiabilité dont vous avez besoin pour gérer vos données à la périphérie. N'oubliez pas de vous assurer que vos fichiers sont au bon format, que les données système v2 sont activées et qu'ils possèdent une clé unique utilisateur pour une synchronisation transparente. Avec EasySync, vous pouvez gérer en toute confiance les données des appareils IoT et les synchroniser efficacement avec des serveurs distants.

Pour plus de détails et de guides visuels, consultez le site de l Académie Actian et la documentation complète documentation. Bon codage !

Portrait de Johnson Varughese

À propos de Johnson Varughese

Johnson Varughese gère l'ingénierie de Support chez Actian, aidant les développeurs à tirer parti des interfaces ZEN (Btrieve, ODBC, JDBC, ADO.NET, etc.). Il fournit des conseils techniques et une expertise en matière de dépannage afin d'assurer une performance robuste des applications dans différents environnements de programmation. La richesse des connaissances de M. Johnson en matière d'interfaces d'accès aux données a permis de rationaliser de nombreux projets de développement. Ses articles sur le blogue d'Actian décrivent en détail les meilleures pratiques pour l'intégration de Btrieve et d'autres interfaces. Consultez ses articles pour optimiser vos applications axées sur les bases de données.