Questo è uno scenario comune nel mondo del database. È bello vedere qualcuno che vuole impararlo. Le aziende inviano i dati avanti e indietro su sistemi diversi tutto il tempo (sia i loro sistemi che i sistemi dei loro clienti e i loro sistemi di venditori). Non riesco a parlare con strumenti gratuiti per farlo perché vivo nel mondo di SQL Server e SSIS è lo strumento che usiamo fornito con SQL Server. Ma quello che vuoi cercare sono gli strumenti ETL. Gli strumenti per questo sono là fuori, semplicemente non so quali sono i migliori. ETL sta per Extract, Transform, Load, che sono i passaggi nel processo di spostamento dei dati da un database all'altro.
Permettetemi di descrivere alcuni dei problemi a cui dovete pensare quando si inviano i dati avanti e indietro tra due sistemi. Il primo e più importante è che è altamente improbabile che i due database abbiano una struttura simile. I campi che sono riutilizzati in uno potrebbero non esistere nell'altro. I tipi di dati saranno diversi. Le regole aziendali saranno diverse. I valori di ricerca saranno diversi.
Dovrai gestire cose come la tabella Stati che esisterà in un db e tutti gli indirizzi devono usare un codice di stato USA a 2 cifre valido nel campo Stato richiesto, ma i dati provengono da una tabella che consente qualsiasi valore ( o anche senza valore) da inserire in un campo di stato nella tabella degli indirizzi, quindi ha cose come Virginia, Ohoi (anziché Ohio), CA, ON (stato canadese dell'Ontario), e Sconosciuto, nonché valori nulli. Devi capire cosa fare con i record che hanno dati che non si adattano al database di ricezione.
Devi pensare a come abbinare i record esistenti a quelli già presenti nel tuo database.
Un'altra cosa a cui devi pensare è come gestire i dati che vengono uniti da un database a causa della ricerca e della correzione dei duplicati. Hai bisogno di avere modo di assicurarti che venga unito nell'altro database?
Devi pensare alle prestazioni. Questo può essere un processo intenso che richiede molte risorse di entrambi i database. È necessario pensare in termini di come posso minimizzare l'impatto sugli altri utenti del database.
La maggior parte degli strumenti ETL consente di inviare direttamente all'altro database (in genere se si trovano nella stessa rete) e altre volte è necessario creare uno o più file da inviare a un clinet in un'altra posizione. Quindi devi pensare a quale dovrebbe essere la struttura dei dati inviati. Dovresti avere un file denormalizzato o diversi file che riescono a ridefinire il modo in cui il tuo database viene normalizzato. Il mittente dovrebbe pulire i dati alle specifiche delle ricevute o viceversa o entrambi dovrebbero fare un po 'di lavaggio. Esistono requisiti legali (ad esempio, è possibile inviare i dati dei pazienti da un ufficio docotprs ad un ospedale).
C'è molto di più, ETL è una specialità complessa, ma penso che sia sufficiente per iniziare a pensare alla pianificazione che devi fare una volta trovato il tuo strumento.