Domanda

Ho bisogno di convertire i dati che esiste già in un database MySQL, un database di SQL Server.

L'avvertenza è che il vecchio database è stato mal progettato, ma il nuovo è in una forma 3N corretta. Se uno ha qualche consiglio su come andare a fare questo? Ho SSMS 2005.

  1. Posso usare questo per la connessione al DB MySQL e creare un DTS? O devo usare SSIS?
  2. Devo scritto il DB MySQL e modificare ogni affermazione a "inserire" in Server database SQL?

Qualcuno ha attraversato questo prima? Si prega di aiutare !!!

È stato utile?

Soluzione

questo link . L'idea è quella di aggiungere il database MySQL come un server collegato in SQL Server tramite il driver ODBC MySQL. Quindi è possibile eseguire tutte le operazioni che ti piace sul database MySQL tramite SSMS, tra cui la copia di dati in SQL Server.

Congratulazioni per muoversi nel mondo RDBMS!

Altri suggerimenti

SSIS è progettato per fare questo genere di cose. Il primo passo è quello di tracciare manualmente dove ogni dato andrà nella nuova struttura. Così il vostro vecchio tavolo aveva quattro campi, nella vostra nuova struttura fileds1 e 2 Vai alla tabella A e il campo tre e quattro andare a tabella B, ma anche bisogno di avere l'id generato automaticamente dalla tabella a. Prendere appunti su dove i tipi di dati sono cambiati e potrebbe essere necessario apportare modifiche o di cui ha richiesto Campi in cui i dati non è stato richiesto prima etc.

Quello che di solito faccio è creare le tabelle di gestione temporanea. Mettere i dati in forma denormalizzato in una tabella di gestione temporanea e poi passare a tabelle di gestione temporanea normalizzati e fare la pulizia lì e aggiungere i nuovi ID non appena li si deve tabelle di gestione temporanea. Una cosa che dovrete fare se si sta spostando da un database denormalizzato ad uno normalizzata è che sarà necessario per eliminare i duplicati dalle tabelle padre prima di inserirli nelle tabelle di produzione attuali. Potrebbe anche essere necessario fare dataclean come ci può essere richiesto Campi nella nuova struttura che non era tenuta nei vecchi o converstion dati questioni becasue di trasferirsi a tipi di dati migliori (per esempio se si è memorizzato date nel vecchio database in campi varchar ma muoversi correttamente in datetime nel nuovo db, è possibile che alcuni record che non hanno date valide.

Un altro problema che dovete pensare è come si intende convertire da vecchi id discografiche per quelli nuovi.

Questo non è un compito facile, ma è fattibile se si prende il tempo e lavorare con metodo. Ora non è il momento di provare le scorciatoie.

Quello che vi serve è un ETL (Extract, Transform, Load) strumento.

http://en.wikipedia.org/wiki/Extract,_transform , _load # Strumenti

Io in realtà non so fino a che punto uno strumento di 'ETL' si arriva a seconda dei disegni originali di database e nuovi. Nella mia carriera ho avuto a che fare più di un paio di migrazioni di dati e di solito sempre avuto per la progettazione di un programma di utilità speciale che aggiornare un database fresca con i record dal vecchio database, e sì abbiamo codificato è completo di tutto l'aggiornamento / inserimento dichiarazioni che avrebbero trasformato i dati.

Non so quanti tavoli il database ha, ma se non sono troppi, allora si potrebbe considerare l'idea alla radice grugnito. Questa è una tecnica che è garantito per lavorare, dopo tutto.

Se si va al database in SSMS e fare clic destro, sotto compiti dovrebbe essere un'opzione per "Importa dati". Si può cercare di usare quello. E 'fondamentalmente solo una procedura guidata che crea un pacchetto SSIS per voi, che può poi o eseguire in modo automatico o che si può salvare e quindi modificare, se necessario.

Il grosso problema è come è necessario per trasformare i dati. Questo va in un sacco di specifiche che non si include (e che sono probabilmente troppo numerosi per voi di includere qui comunque).

Sono certo che SSIS in grado di gestire qualunque trasformazioni che devi fare per cambiarla dal vecchio formato al nuovo. Un'alternativa sarebbe quella di se solo importare le tabelle in MS SQL così com'è in tabelle di gestione temporanea, quindi utilizzare il codice SQL per trasformare i dati nelle tabelle 3NF. E 'tutta una questione di che cosa il vostro più comodo. Se si va al secondo percorso, quindi il processo di importazione che ho citato sopra in SSMS potrebbe essere utilizzato. Sarà anche creare le tabelle di destinazione per voi. Basta essere sicuri che si dà loro nomi univoci, forse come prefisso "STG_" o qualcosa del genere.

Davud menzionato server collegati. Questo è sicuramente un altro modo che si può andare (e ottenuto il mio upvote). Personalmente, preferisco copiare le tabelle sopra in MS SQL primo dal server collegati a volte possono avere stranezza, soprattutto quando si tratta di tipi di dati non mappatura tra diversi fornitori. Avendo i tavoli tutti in MS SQL sarà anche probabilmente un po 'più veloce e fa risparmiare tempo se si deve eseguire nuovamente o correggere porzioni dei dati. Come ho detto, però, il metodo di server collegato probabilmente sarebbe troppo bene.

Ho fatto questo andando nella direzione opposta e SSIS funziona bene, anche se avrei potuto bisogno di usare un compito script per trattare con lieve tipo di dati stranezza. SSIS fa ETL .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top