Die beste Technologie für die Synchronisierung von Daten zwischen verschiedenen Datenbank-Schemata?
Ich habe eine vorhandene SQL Server 2005-Datenbank, läuft unsere Buchhaltung/Inventur-Anwendung. Wir sind auf der Suche mit einem neuen Online-Bestell-framework - die hat eine eigene Datenbank.
Wenn wir diese neuen Rahmenbedingungen, die wir brauchen, um die übertragung der Online-Bestell-Daten (Bestand, Preise, Bestellungen, Kunden) - fast realtime - an und aus, unsere bestehende inventory-Datenbank. Die übertragung der Daten nicht in Echtzeit, aber es muss schnell sein. Beide Datenbanken werden in der SQL Server.
Also meine Frage ist... was ist der beste Weg, um transer Daten hin und her zwischen zwei Datenbanken mit unterschiedlichen Schemata?
Replikation? SSIS? Was würden Sie vorschlagen, und warum?
Jede mögliche Hilfe würde geschätzt!
InformationsquelleAutor der Frage Clinemi | 2009-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Persönlich würde ich fliehen aus diesem Alptraum so schnell, wie ich konnte. Da Sie noch nicht gekauft haben, diese online-Bestellung würde ich vorschlagen, dass die Aufbewahrung der Daten im Einklang mit der bestehenden Anwendung ist ein triftiger Grund, nicht zu tun ist so eine Sache. Wenn Sie kaufen diese werden Sie ewig bereuen, wie mucked up Ihre Daten werden und wie viel Zeit und Geld Sie verbringen, versuchen, die Dinge richtig zu arbeiten. Das ist eine Katastrophe warten, um zu geschehen. Sie"ll am Ende mit Menschen, um Elemente, die angeblich im iventory, wenn es keine im Lager. Tun Sie dies nicht. Dies ist eine Garantie für verärgerte Kunden und wütend auf die Manager. Weit, weit billiger über die Zeit zu mieten, die einige Entwickler zusammen mit Ihrer eigenen online-Bestellung, die auf Ihre Datenbank. Wenn Sie voran gehen über Ihre Einwände, würde ich update meinen Lebenslauf.
InformationsquelleAutor der Antwort HLGEM
Die Business-Regeln der Harte Teil
One-way-sync? Zwei-Wege-Synchronisation? Echtzeit-push? Nightly-updates? Dump und reload? Vergleichen und aktualisieren? Konfliktlösung? Welche Seite gewinnt? Push-nur-lese-info eine Möglichkeit, und bestellen info der anderen Art? Was ist mit änderungen/Stornierungen/etc? Tun, um Status zu bekommen zurückgedrängt?
Können Sie sehen, wo ich bin werde hier. Technologie ist eine sekundäre Frage.
Weil der business-Regeln Problem, und da die beiden Systeme haben unterschiedliche Schemata (und andere Zwecke), ist dies nicht eine standard-Daten-verschieben, und die meisten der "standard" - Antworten (replication, log shipping, etc) sind vom Tisch.
Gibt es Rahmenbedingungen gibt, soll helfen, mit dieser, wie Microsoft BizTalk oder Scribe Insight. Diese sind langwierig und teuer, obwohl.
Es ist nicht allzu schwer zu erstellen Sie eine benutzerdefinierte Warteschlange-ing-system entweder auf Basis von SQL-Triggern oder geplante schiebt (je nach Bedarf) in C# oder Ihre bevorzugte Sprache. Das ist wohl der Weg, den ich gehen würde. Es würde wahrscheinlich beinhalten eine Dritten "transfer" - Datenbank, in der Sie der Warteschlange der änderungen von der einen Seite, und einem Modul zum anwenden von Geschäftsregeln und schieben Sie die Daten auf der anderen.
InformationsquelleAutor der Antwort BradC
Aus persönlicher Erfahrung würde ich nur die Replikation verwenden, wenn es keine andere Wahl gab. Sie haben es abreißen Sie für jedes schema zu ändern und es hat eine Tendenz zu gerade sprengen.
Für diese, ich würde am ehesten die Verwendung von SSIS. Es ist ziemlich einfach zu bauen, eine transformation-Paket und ziemlich einfach zu pflegen.
InformationsquelleAutor der Antwort NotMe
Replikation funktioniert gut, und wenn es zwei Wege, es könnte Ihre einzige praktikable option, da der Konflikt-Auflösung ist eingebaut.
Wenn du gehst one-way, SSIS oder Trigger auf Tabellen, die wäre gut, und würde push der Daten in Echtzeit (für Trigger) oder bei welchem Intervall, das Sie möchten (SSIS). Der Vorteil von SSIS wäre, dass es ein Prozess im hintergrund, in der Erwägung, dass Auslöser könnte möglicherweise halten Sie Transaktionen auf der Angebotsseite, während Sie push der Daten.
Wenn Sie auf der Suche zum verschieben von großen Datenmengen, es gibt andere Produkte gibt, kann es für Sie tun, aber wenn es nicht zu viel Daten, eine Lösung mit SQL Server-tools sollten tun, alles, was Sie brauchen.
InformationsquelleAutor der Antwort SqlRyan