Synchronisez vos données de l'Edge au Cloud avec Actian Zen EasySync
Johnson Varughese
28 août 2024

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 :
- Appuyer sur la télécommande: Synchronise les données d'une base de données locale vers une base de données distante.
- Tirer de la télécommande: Synchronise les données d'une base de données distante vers une base de données locale.
- Tirer et pousser vers les télécommandes: Synchronisation des données entre plusieurs bases de données distantes.
- 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.
- Diffuser les données à Edge: Distribuer les données d'une base de données centrale à plusieurs bases de données périphériques.
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 :
- Assurez-vous que l'option easysync est installé et accessible depuis votre ligne de commande.
- Exécutez le script Python pour commencer à générer et à insérer les données des capteurs.
- 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 !
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.