Announcement

Collapse
No announcement yet.

SSIS - Migration von Datenbanken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SSIS - Migration von Datenbanken

    Hallo zusammen

    Da ich leider noch kein Meister in MS Sql server 2005 bin hab ich da mal ne frage.
    Ich hab 2 Datenbanken, nachfolgend db1 und db2 genannt. Die db2 soll nun in die db1 migriert werden (migrationswerkzeug soll SSIS sein). Das Problem dabei sind jedoch die Beziehungen der Tabellen untereinander. Damit diese von db2 übernommen werden können müsste ich beim anfügen an die db1 den neuen key irgendwie auslesen können und dann auch noch wissen welchem alten Key der neue entspricht, um damit dann die alten relationen wieder herstellen zu können (also ein sogenannter KeyLogger). Die Quell und Zieldb sollen jedoch strukturell (Spalten, tabellen) nicht verändert werden (denn sonst wüsst ich ne lösung). (hört sich kompliziert an, aber auf dieses problem ist sicherlich auch schon mal jemand gestossen).
    kleines beispiel:

    db1.tbl_Typ:

    key | bezeichnung
    1 | van
    2 | kombi
    3 | limousine

    db1.tbl_Car:

    key | TypIDFS | Beschreibung
    1 | 2 | das ist ein kombi
    2 | 2 | das auch
    3 | 1 | Ich bin ein van
    ------------------------------------

    db2.tbl_Typ:

    key | bezeichnung
    1 | van
    2 | cabrio
    3 | lkw

    db2.tbl_Car:

    key | TypIDFS | Beschreibung
    1 | 2 | das ist ein gabi
    2 | 2 | das auch
    3 | 1 | Ich bin ein van

    ------>daraus soll werden:

    db1.tbl_Typ:

    key | bezeichnung
    1 | van
    2 | kombi
    3 | limousine
    -> 4 | cabrio
    -> 5 | lkw

    db1.tbl_Car:
    key | TypIDFS | Beschreibung
    1 | 2 | das ist ein kombi
    2 | 2 | das auch
    3 | 1 | Ich bin ein van
    -> 4 | 4 | das ist ein gabi
    -> 5 | 4 | das auch
    -> 6 | 1 | Ich bin ein van

    tbl_KeyLogger:
    tabelle | keyAlt | KeyNew
    tbl_Typ | 2 | 4
    tbl_Typ | 3 | 5
    tbl_Car | 1 | 4
    tbl_Car | 2 | 5
    tbl_Car | 3 | 6

    ich hoffe dass die fragestellung ausreichend ist und danke bereits im vorfeld für euere antworten. :-)

    Freundliche Grüsse

  • #2
    Hallo,
    vielleicht führst Du in einer temp_table die Daten aus DB2 zusammen (denormalisieren), dass das dann so aussieht:

    van | ich bin ein van
    cabrio | das ist ein gabi
    cabrio | das auch
    lkw | null

    um dann anschließend die db1.tbl_Typ mit nem distinct aus Spalte 1 der temp_table und anschließend db1.tbl_Car mithilfe eines Lookups aufzufüllen...

    Ich habs nicht ausprobiert, müsste aber klappen.

    Viel Erfolg...

    Comment


    • #3
      Danke

      Vielen Dank für deine Antwort, werd ich noch ausprobieren ob das funktionieren würde.
      Da die zeit aber etwas knapp wurde, musste ich dann doch auf die altbewährte methode zurückgreifen, hab bei jeder tabelle nun eine neue spalte (oldKey), welche den alten key direkt beim abfüllen kriegt (naja, muss die zieldb halt doch befleckt werden).
      danach lese ich die beiden IDs wieder aus um sie in der KeyLog-Tabelle wieder zusammenzufügen (über sinn und zweck lässt sich streiten. ).

      Comment

      Working...
      X