Datenmanagement

Synchronisieren Sie Ihre Daten von der Cloud mit Actian Zen EasySync

Johnson Varughese

28. August 2024

Synchronisieren Sie Ihre Daten von der Cloud mit Actian Zen EasySync

Willkommen zurück in der Welt von Actian Zen, einer vielseitigen und leistungsstarken Datenmanagement , mit der Sie niedrige Latenz eingebettet Apps erstellen können. Dies ist Teil 3 der Schnellstart-Blogserie, die sich darauf konzentriert, eingebettet App-Entwicklern den Einstieg in Actian Zen zu erleichtern.

Die Einrichtung von Beständigkeit und die Konsolidierung von Daten über verschiedene Geräte und Server hinweg sind für die meisten Cloud unerlässlich. Die Synchronisierung von Daten ist für fast jede mobile, Edge- oder IoT erforderlich, und die Entwickler sind mit den grundlegenden Konzepten und Herausforderungen vertraut. Aus diesem Grund schätzen viele erfahrene Entwickler effiziente Lösungen. Das Actian Zen EasySync Tool ist ein neues Dienstprogramm, das speziell für diesen Zweck entwickelt wurde.

Dieser Blog führt Sie durch die Schritte zum Einrichten und Ausführen von EasySync.

Was ist EasySync?

Zen EasySync ist ein vielseitiges Tool Datensynchronisierung , das die Synchronisierung von neu erstellten oder aktualisierten Datensätzen von einem Zen-Datenbankserver zu einem anderen automatisiert. Dieses Tool überträgt Daten über mehrere Server hinweg, unabhängig davon, ob Sie am Rande oder innerhalb eines zentralisierten Netzwerks arbeiten. Zu den wichtigsten Funktionen von EasySync gehören:

  • Flexibler Zeitplan für die Synchronisierung: Synchronisierung von Daten kann so geplant werden, dass in einem bestimmten Intervall nach Änderungen gesucht wird, oder es kann als Batch-Transfer-Tool verwendet werdenverwendet werden, je nach Bedarf.
  • Protokollierung: Überwachen Sie allgemeine Aktivitäten, erkennen Sie Fehler und beheben Sie unerwartete Ergebnisse mit den Funktionen.

Voraussetzungen

Bevor Sie EasySync verwenden, müssen Sie sicherstellen, dass Ihre Zen-Installation die folgenden Punkte erfüllt:

  • System-Daten: Die Dateien müssen die Systemdaten v2 mit dem Dateiformat Version 13 oder Version 16 enthalten.
  • ZEN 16.0 installiert.
  • Einzigartiger Schlüssel: Sowohl die Quell- als auch die Zieldatei müssen einen Nutzer eindeutigen Schlüssel haben.

EasySync-Verwendungsszenarien

EasySync unterstützt verschiedene Datensynchronisierung und ist damit ein flexibles Werkzeug für unterschiedliche Anwendungsfälle. Einige gängige Anwendungsszenarien sind im folgenden Diagramm dargestellt:

  1. Drücken Sie auf die Fernbedienung: Synchronisieren Sie Daten aus einer lokalen Datenbank mit einer entfernten Datenbank.
  2. Ziehen von Remote: Synchronisieren Sie Daten aus einer entfernten Datenbank mit einer lokalen Datenbank.
  3. Ziehen und Drücken auf Fernbedienungen: Synchronisieren Sie Daten zwischen mehreren entfernten Datenbanken.
  4. Aggregierte Daten von Edge: Sammeln Sie Daten aus mehreren Edge-Datenbanken und synchronisieren Sie sie mit einer zentralen Datenbank.
  5. Verbreiten Sie Daten an den Rand: Verteilen Sie Daten von einer zentralen Datenbank an mehrere Edge-Datenbanken.

actian edge easysync-Karte

Erste Schritte mit EasySync

Um die Verwendung von EasySync zu demonstrieren, werden wir eine Python erstellen, die Sensordaten simuliert und mit EasySync synchronisiert. Diese Anwendung erstellt eine Sensortabelle auf Ihrem Edge-Gerät und dem Remote-Server, fügt zufällige Sensordaten ein und synchronisiert die Daten mit einer Remote-Datenbank. Die entfernte Datenbank kann verschiedene Datensätze von mehreren Edge-Geräten enthalten.

Schritt 1: Erstellen der Konfigurationsdatei

Zunächst müssen wir eine JSON-Konfigurationsdatei erstellen (config.json). In dieser Datei werden die Synchronisierungseinstellungen und die zu synchronisierenden Dateien definiert, wobei die Dateien in einem Quell- (demodata) und einem Zielordner (demodata) gespeichert werden.

Hier ist ein Beispiel dafür, wie die Konfigurationsdatei aussehen könnte:

{
  "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
    }
  ]
}

Schritt 2: Schreiben des Python

Als nächstes erstellen wir ein Python , das Sensordaten simuliert, die erforderliche Datenbanktabelle erstellt und Datensätze in die Datenbank einfügt. 

Speichern Sie den folgenden Python in einer Datei namens run_easysync.py. Führen Sie das Skript aus, um die Sensortabelle auf dem lokalen Edge-Gerät und dem Server zu erstellen und die Daten auf dem Edge-Gerät einzufügen.

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)

Synchronisierung von Daten von IoT mit einem entfernten Server

Lassen Sie uns nun den Datensynchronisierung mit dem EasySync-Tool einbinden, um sicherzustellen, dass die Sensordaten vom IoT auf einen Remote-Server repliziert werden.

Schritt 3: EasySync ausführen

Um die Daten mit EasySync zu synchronisieren, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass die easysync installiert und über die Befehlszeile zugänglich ist.
  2. Führen Sie das Python aus, um mit der Generierung und dem Einfügen von Sensordaten zu beginnen.
  3. Führen Sie den Befehl EasySync aus, um den Synchronisierungsprozess zu starten.

Öffnen Sie Ihre Befehlszeile und navigieren Sie zu dem Verzeichnis, das Ihre Konfigurationsdatei und Ihr Python enthält. Führen Sie dann den folgenden Befehl aus:

easysync -o config.json

Dieser Befehl führt das Dienstprogramm EasySync mit der angegebenen Konfigurationsdatei aus und stellt sicher, dass der Synchronisierungsprozess beginnt.

Schlussfolgerung

Actian Zen EasySync ist ein einfaches, aber effektives Tool zur Automatisierung der Datensynchronisierung zwischen Zen-Datenbankservern. Wenn Sie die in diesem Blog beschriebenen Schritte befolgen, können Sie EasySync leicht einrichten und ausführen. EasySync bietet die Flexibilität und Zuverlässigkeit, die Sie benötigen, um Ihre Daten zu verwalten . Vergewissern Sie sich, dass Ihre Dateien das richtige Format haben, dass Systemdaten v2 aktiviert sind und dass Sie einen Nutzer eindeutigen Schlüssel für eine nahtlose Synchronisierung besitzen. Mit EasySync können Sie Daten von IoT zuverlässig verwalten und effizient mit Remote-Servern synchronisieren.

Weitere Einzelheiten und visuelle Anleitungen finden Sie in der Actian Akademie und die umfassende Dokumentation. Viel Spaß beim Kodieren!

Kopfbild von Johnson Varughese

Über Johnson Varughese

Johnson Varughese ist Manager of Support Engineering bei Actian. Er unterstützt Entwickler bei der Erstellung von Anwendungen mit ZEN-Schnittstellen wie Btrieve, ODBC, JDBC, ADO.NET, Btrieve2 und anderen. Seine Aufgabe besteht darin, technische Anleitungen zu geben, Fehler zu beheben und sicherzustellen, dass Entwickler diese Schnittstellen effektiv nutzen können, um robuste und effiziente Anwendungen in verschiedenen Programmierumgebungen zu erstellen. Johnsons Fachwissen in diesen Technologien trägt dazu bei, Entwicklungsprozesse zu rationalisieren und die Leistung und Funktionalität der entwickelten Anwendungen zu verbessern.