Romanticus
Grünschnabel
Hallo,
ich bin nunmehr seit etwa 3-4 Stunden auf der Suche nach einer Lösung für mein Problem. Ich habe zwei mySQL Datenbanken (5.1.11). Die eine ist die produktive DB, auf der die Daten dauernd aktualisiert werden. Außerdem ist das DB-Schema etwas suboptimal, um es mal vorsichtig ausdrücken. Viele Daten sind redundant, einige fehlen usw. Die zweite Datenbank soll eine Art DataWarehouse darstellen, die die bereinigte und zum Teil aufbereitete Daten aus der produktiven Datenbank enthalten, auf denen verschiedene Analysen ablaufen werden.
Problem: Die Daten müssen möglichst effizient und performant aus der ersten Datenbank in die zweite übertragen werden.
Lösung 1: Ein Script, das die Daten aus der ersten DB einliest, transformiert und in die zweite schreibt. Vorteil - Die Transformationen können beliebig komplex werden (+für mich weniger Einarbeitungszeit). Nachteil - viele SELECT- und INSERT-/UPDATE-Statements.
Lösung 2 (meine Entscheidung): Verwenden der Möglichkeiten, die mySQL 5 bietet (Views, Trigger, Stored Procedures).
Ich habe nun auf der ersten Datenbank Views erstellt, die schon transformierte Daten zurückgibt. Meine Idee ist folgende - eine Stored Procedure auf der zweiten Datenbank, die ein SELECT auf diese Views macht und die Ergebnisse bei sich in die entsprechende Tabellen schreibt. Leider habe ich bis jetzt nicht rausfinden können, ob das überhaupt möglich ist und, wenn ja, wie ich das anstelle.
Ich hoffe, dass es nicht zu verwirrend war und mir jemand helfen kann. Ein Stichwort sollte reichen .
Gruß,
Romanticus
ich bin nunmehr seit etwa 3-4 Stunden auf der Suche nach einer Lösung für mein Problem. Ich habe zwei mySQL Datenbanken (5.1.11). Die eine ist die produktive DB, auf der die Daten dauernd aktualisiert werden. Außerdem ist das DB-Schema etwas suboptimal, um es mal vorsichtig ausdrücken. Viele Daten sind redundant, einige fehlen usw. Die zweite Datenbank soll eine Art DataWarehouse darstellen, die die bereinigte und zum Teil aufbereitete Daten aus der produktiven Datenbank enthalten, auf denen verschiedene Analysen ablaufen werden.
Problem: Die Daten müssen möglichst effizient und performant aus der ersten Datenbank in die zweite übertragen werden.
Lösung 1: Ein Script, das die Daten aus der ersten DB einliest, transformiert und in die zweite schreibt. Vorteil - Die Transformationen können beliebig komplex werden (+für mich weniger Einarbeitungszeit). Nachteil - viele SELECT- und INSERT-/UPDATE-Statements.
Lösung 2 (meine Entscheidung): Verwenden der Möglichkeiten, die mySQL 5 bietet (Views, Trigger, Stored Procedures).
Ich habe nun auf der ersten Datenbank Views erstellt, die schon transformierte Daten zurückgibt. Meine Idee ist folgende - eine Stored Procedure auf der zweiten Datenbank, die ein SELECT auf diese Views macht und die Ergebnisse bei sich in die entsprechende Tabellen schreibt. Leider habe ich bis jetzt nicht rausfinden können, ob das überhaupt möglich ist und, wenn ja, wie ich das anstelle.
Ich hoffe, dass es nicht zu verwirrend war und mir jemand helfen kann. Ein Stichwort sollte reichen .
Gruß,
Romanticus