Data-Base Clone-Tool
Transcription
Data-Base Clone-Tool
Data-Base Clone-Tool Die Applikation mit dem Namen „Data-Base Clone-Tool“ bietet seinen Benutzern die Möglichkeit, Daten, welche auf der Datenbank A vorhanden sind, auf die Datenbank B zu synchronisieren. In der Praxis könnten auf diese Weise zum Beispiel aktuelle und oder historische Daten aus der ERP-Datenbank in eine Testumgebung überspielt werden. Ausgangslage An und für sich keine richtige Novität, zumal schon diverse datenbank-interne Mechanismen bestehen, welche Daten von DB-A auf DB-B synchronisieren. Der Einsatz solcher Funktionen ist jedoch immer mit einem gewissen Definitionsaufwand und der Pflege der Installation verbunden. Das Hauptproblem bei der ganzen Thematik war und ist jedoch immer noch die Performance! Die Geschwindigkeit also, mit der Daten von A nach B transferiert werden. Es müsste möglich sein, mindestens einen Insert (MS-SQL) von ca. 1000 Records p/Sekunde zu erreichen. Ausserdem sollte das Ausführen einfacher INSERT, UPDATE und DELETE Operationen auf einer Tabelle gewährleistet sein, damit kleinere manuelle Datenmanipulationen möglich sind, ohne grosse SQL-Scripts und Prozeduren zu Erstellen und Auszuführen. Symotech AG Industriestrasse 38 CH-5314 Kleindöttingen Tel. +41 56 268 85 70 Fax +41 56 268 85 99 [email protected] Vorteile „Data-Base Clone-Tool“ bietet die Möglichkeit, einzelne oder auch alle Tabellen einer Datenbank von einem System zum anderen zu transferieren. Dabei ist die Basis der Datenbank-Plattform sehr variabel gehalten, womit auch Transfers von und zu AS/400 DB2, MS-SQL, Oracle oder My-SQL gewährleistet sind. Alle gewünschten Objekte (Tabellen) können per Drag & Drop von der Ursprungsdatenbank auf die Zieldatenbank verschoben werden. Im Vorfeld sind also keine aufwendigen Definitionsarbeiten und auch keine Programmierkenntnisse nötig. Eine hohe Leistungsperformance dient dazu, den Transfer grosser Datenmengen in möglichst kurzer Zeit durchführen zu können. Hier kommt Parallel-Processing zum Einsatz, welches durch den Einsatz entsprechender Hardware beeinflusst werden kann. Zusätzlich dazu können einfache manuelle Datenbankoperationen per Dialog ausgeführt werden. Funktionsweise Hauptdialog der Applikation ist in zwei Hälften aufgeteilt, eine Herkunft- und eine Zielinstanz. Natürlich können auch Tabellen von derselben Instanz verglichen werden. Clone-Operationen in der gleichen Instanz sind nicht möglich. www.symotech.ch Die Hauptaufgabe der Anwendung, das Clonen von Tabellen und Daten, steht auf der Stufe Instanz und Tabelle zur Verfügung. Auf Stufe Instanz können einzelne Tabellen für die verschiedenen Funktionen selektiert werden. Damit in einer grossen Menge von Tabellen nicht bei jedem Lauf die Selektion neu gemacht werden muss, können die Einstellungen jeweils gespeichert werden. Zudem erzeugt der Dialog auch direkt ein LOG-Protokoll welches einzelne Resultate aus der Verarbeitung speichert. Messungen während der Prototypenphase haben gezeigt, dass es ohne Parallel-Processing nicht gehen kann. Je nach Ausstattung des Systems (Prozessoren / Kerne) kann die Transferleistung stark vergrössert werden. Beschreibung der Methoden Für das Kopieren der Daten vom Herkunft- zum Zielsystem stehen insgesamt vier Varianten gemäss nachfolgender Tabelle zur Verfügung. Da bei einer Menge <n> an Tabellen mit wenig Datensätzen und einer oder mehreren Tabellen mit grossen Mengen an Datensätzen der Parallel-Prozess pro Tabelle nicht wirklich schnell ist, wurde in der Version 3.0 die Möglichkeit implementiert, dass pro Tabelle mehrere WHERE-Klauseln definiert werden können die dann ebenfalls in einem eigenen Task ausgeführt werden. Methode Beschreibung Copy Data (Standard/Sequentiell) Es werden alle selektierten Tabellen nacheinander verarbeitet Copy Data V.-1.0 (Parallel) Die Logik für Data-Reader (FROM) und der Bulkinsert (TO) werden getrennt. Der Data-Reader wird direkt im Parallel-Process Start ausgeführt, und als Referenz an den Bulkinsert-Process übergeben. MS-SQL Schema-Struktur ist verfügbar. (Implementierung in DataBase Parallel-Klasse) Copy Data V.-2.0 (Parallel) Der Data-Reader (FROM) und der Bulkinsert (TO) werden in einer Methode Implementiert, welche durch den Parallel-Process (TASK) gestartet wird. Pro Task sind also alle Operationen gekapselt und threadsicher implementiert. MS-SQL Schema-Struktur ist verfügbar. (Implementierung in DataBase Parallel-Klasse) Copy Data V.-3.0 (Parallel) Der Data-Reader (FROM) und der Bulkinsert (TO) werden in einer Methode implementiert, welche durch den Parallel-Process (TASK) gestartet wird. Pro Task sind also alle Operationen gekapselt und threadsicher implementiert. MS-SQL Schema-Struktur ist verfügbar. Absoluter Vorteil dieser Methode ist, dass sogar einzelne Tabellen durch mehrere WHERE-Bedingungen auf einzelne Tasks aufgeteilt werden. Dadurch werden auch grosse Datenmengen in einzelnen Tabellen auf mehrere Tasks aufgeteilt. (DataBase-Interface / DataBase-Klasse) Symotech AG Industriestrasse 38 CH-5314 Kleindöttingen Tel. +41 56 268 85 70 Fax +41 56 268 85 99 [email protected] www.symotech.ch