Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: Datensynchronisierung beschleunigen

Datensynchronisierung beschleunigen 2 Jahre 9 Monate her #1620

  • Andreas Schauerte
  • Andreas Schauertes Avatar
  • Offline
  • Senior Member
  • Beiträge: 49
Hallo,
zwischen unserer Warenwirtschaft (DB++ -> ODBC) und einer eigenentwickelten Software (MySQL 5.6) sollen möglichst schnell und mit möglichst geringer Datenbankbelastung mehrmals am Tag Daten abgeglichen werden. (Immer von ODBC -> MySQL)
Bislang verfahre ich z.B. für Adressen wie folgt:
1.) Daten via ODBC in MySQL Tabelle "anschrift_tmp" kopieren. (Vor Import leeren)
2.) Tabelle "anschriften" leeren (MySQL Heater "TRUNCATE TABLE anschrift")
3.) Mittels MySQL Heater "INSERT INTO anschrift SELECT * FROM anschrift_tmp"
Daten von anschrift_tmp in MySQL Tabelle anschrift kopieren
4.) Tabelle anschrift_tmp mittels MySQL Heater leeren ("TRUNCATE TABLE anschrift_tmp")
5.) Danach ein "OPTIMIZE TABLE anschrift"

Dies war nur eine Beispieltabelle. Es werden auf dieselbe Art und weise für mehrere Tabellen Daten kopiert. Teils mit mehreren 10.000 oder 100.000 Datensätzen.
Viele Datensätze bleiben seit dem letzten Abgleich natürlich unverändert, werden jedoch trotzdem jedes Mal gelesen und in die Datenbank geschrieben.

Das ganze funktioniert, allerdings suche ich Optimierungsmöglichkeiten da die Geschwindigkeit zu langsam und Datenbelastung meiner Meinung nach zu hoch sind. Außerdem befürchte ich die Vorteile von MySQL (query-cache usw) durch das leeren der Tabellen nicht ausnutzen zu können.
Haben Sie Anregungen und Tipps für mich, wie ich das ganze optimieren könnte?
Vielen Dank schon vorab!
Letzte Änderung: 2 Jahre 9 Monate her von Andreas Schauerte.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Datensynchronisierung beschleunigen 2 Jahre 9 Monate her #1624

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Schauerte,

um den Aufwand für eine Datensynchronisation möglichst gering zu halten benötigen Sie ein zusätzliches Feld (TIMESTAMP) in der Ursprungstabelle, sowie müsste entweder die Applikation dieses Feld bei jeder Änderung oder Neuanlage selbst aktualisieren oder aber sie lassen das über einen Datenbanktrigger von der Datenbank automatisch setzen. Evtl. existiert in der Tabelle ein solches Feld für letzte Aktualisierung bereits?
So könnten Sie z.B. eine dynamische Abfrage implementieren die jeweils nur seit der letzten Datensynchronisation die benötigten Daten selektiert und in die MySQL Tabelle überführt.

Wenn das ein gangbarer Weg für Sie erstelle ich Ihnen gerne ein kleines Skript, das den SELECT dynamisch aufbaut und nach der Synchronisation den zuletzt verwendeten TIMESTAMP für die nächste Ausführung speichert.
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Datensynchronisierung beschleunigen 2 Jahre 9 Monate her #1625

  • Andreas Schauerte
  • Andreas Schauertes Avatar
  • Offline
  • Senior Member
  • Beiträge: 49
Hallo Herr Stark,
danke für den Tipp! Hört sich vielversprechend an! Ich prüfe das ganze und würde ggf. nochmal auf Sie zukommen.
Gruß A. Schauerte
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Datensynchronisierung beschleunigen 2 Jahre 9 Monate her #1626

  • Andreas Schauerte
  • Andreas Schauertes Avatar
  • Offline
  • Senior Member
  • Beiträge: 49
Guten morgen Herr Stark,
ich habe in Erfahrung bringen können, dass die Datenbank für einige Tabellen Änderungen je Datensatz abspeichert. Z.B. in der Spalte anschrift_aenderung. Hier wird das Datum der Änderung im Format 20140214 gespeichert.
Wären Sie mir bei einem Skript behilflich? Vielen Dank!
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Datensynchronisierung beschleunigen 2 Jahre 9 Monate her #1627

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Schauerte,

im Anhang finden Sie das Beispiel inkl. einer Access Datenbank. Hier werden 2 .NET Script Heater verwendet um einmal vor dem Start das letzte aktualisierte Datum aus einer Datei „lastchange.txt“ zu lesen. Ist die Datei vorhanden wird daraus das Datum gelesen und es wird der FlowHeater Paramater$LAST$“ gesetzt. Dieser Parameter wird auf der READ Seite verwendet um die zu synchronisierte Datenmenge einzugrenzen. Hinweis: Bei diesem .NET Script Heater muss „Ausführung bei“ auf „Start“ gestellt werden!

Der zweite .NET Script Heater aktualisiert die Datei „lastchange.txt“ währen der Datensynchronisation mit dem größten Datum das verarbeitet wurde. Dies wird für den nächsten Lauf der Datensynchronisation benötigt. Hinweis: Bei diesem .NET Script Heater muss „Ausführung bei“ auf „Pro Zeile/Satz“ gestellt werden!

Das Beispiel verwendet für LastChange ein Textfeld, dies wurde verwendet da Sie oben geschrieben haben das Format wäre 20140202. Bitte prüfen Sie das, evtl. muss das noch auf den Datentyp DATETIME umgestellt werden.

Da das Feld lt. Ihren Angaben keine Uhrzeit Informationen enthält wird in dem Beispiel immer das komplette letzte Datum mit selektiert, es wird immer der komplette letzte Tag Synchronisiert!



Dateianhang:

Dateiname: datensynch...rung.zip
Dateigröße:14 KB
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Datensynchronisierung beschleunigen 2 Jahre 9 Monate her #1630

  • Andreas Schauerte
  • Andreas Schauertes Avatar
  • Offline
  • Senior Member
  • Beiträge: 49
Vielen, vielen Dank! Das Skript ist wirklich Gold wert!
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.084 Sekunden