Wir haben eine große Produktion MSSQL Datenbank (MDF appx. 400GB) und ich habe eine Test-Datenbank. Alle Tabellen, Indizes, Ansichten usw. sind gleich. Ich muss sicherstellen, dass die Daten in den Tabellen dieser beiden Datenbanken konsistent sind. Also muss ich alle neuen Zeilen einfügen und alle aktualisierten Zeilen jeden Tag in die Test-DB aus der Produktion aktualisieren.Wie werden SSIS-Pakete dynamisch ausgeführt?
Ich kam auf die Idee, SSIS-Pakete zu verwenden, um die Daten konsistent zu machen, indem aktualisierte Zeilen und neue Zeilen in allen Tabellen überprüft werden. Mein SSIS-Fluss ist;
Ich habe Pakete in SSIS für jede Tabellen separat, weil; Ordentlich;
- Ich bekomme den Timestamp-Wert in der Tabelle, um die letzten 1 Tageszeilen zu bekommen, anstatt die ganze Tabelle zu bekommen.
- Ich bekomme die Zeilen der Tabelle in der Produktion
- Dann im 'Lookup' Tool verwenden, um diese Daten mit der Test-Datenbanktabelle Daten zu vergleichen.
- Dann im bedingten Sprit, um eine Ahnung zu bekommen, ob die Daten neu oder aktualisiert sind. Wenn die Daten neu sind, füge ich diese Daten in das Ziel 5_2 ein. Wenn die Daten aktualisiert werden, aktualisiere ich die Daten in der Zieltabelle.
Datenfluß im MTRule und STBranch Paket im Bild
Das Problem besteht darin, für jede Tabelle alle diese Einzelstrom zu schaffen im sich wiederholenden und ich habe mehr als 300 Tabelle wie folgt . Es dauert viele Stunden :(
Was im fragen ist;
Gibt es eine Möglichkeit in SSIS diese dynamisch zu tun
PS: Jede einzelne Tabelle hat seine eigenen Spalten und PK-Werte, aber meine Daten? fließen Schema ist immer gleich.. (Unten)
Warum nicht nächtliche Backup-Wiederherstellung für Test db? Wenn es zu Testzwecken ist, können wir die Produktionsdaten nicht überlasten. Haben Sie im Test eine Waschanforderung? –
Ich habe vergessen zu sagen, dass ich keine Backup-Restore-Operationen durchführen kann, da unser prod sql in der Cloud ist, aber der Test sql nicht ist. Aus anderen Gründen kann die Sicherungsdatei nicht von der Cloud zum Testserver verschoben werden. –
Wie viele Daten haben sie? Haben Sie Delta-Attribut für alle wichtigen Tabellen festgelegt? Wenn Sie Volllast für alle Tabellen mit großem Volumen durchführen wollen, dann wird das auch eine kostspielige Operation sein. –