cdtux
Utente Èlite
- Messaggi
- 1,829
- Reazioni
- 911
- Punteggio
- 108
Devo creare uno script per sincronizzare i dati di due database eterogenei sia per tecnologie (MSSQL e Postgress) che per struttura delle tabelle/dati.
Mi trovo ad avere un db "master" (MSSQL) sul quale ho accesso in sola lettura (non posso "toccarlo" in alcun modo) e un db "slave" (Postgress) che invece posso implementare a mio piacimento.
Sul db master i vari dati che mi interessano sono divisi tra n tabelle (che ovviamente non hanno timestamp!!! :cav:), sul db slave invece le tabelle sono state unificate e sono stati inseriti dei nuovi fields che mi servono.
Per mantenere in sync i dati pensavo di utilizzare gli hash.
In soldoni, calcolo l'hash (item per item) dei dati del master ogni X minuti/ore, lo confronto con l'hash precedente salvato in una tabella (del tipo: id + old_hash + new_hash + timestamp) e in caso aggiorno i dati.
Anche se non mi sembra un metodo molto efficente, le performance non dovrebbero essere un problema visto che la quantità degli item non è grandissima (sono circa 10k items e se ne aggiungono circa 1k/anno).
Ci sono altre strategie/metodi che potrei utilizzare per sincronizzare i dati dei due db??
Mi trovo ad avere un db "master" (MSSQL) sul quale ho accesso in sola lettura (non posso "toccarlo" in alcun modo) e un db "slave" (Postgress) che invece posso implementare a mio piacimento.
Sul db master i vari dati che mi interessano sono divisi tra n tabelle (che ovviamente non hanno timestamp!!! :cav:), sul db slave invece le tabelle sono state unificate e sono stati inseriti dei nuovi fields che mi servono.
Per mantenere in sync i dati pensavo di utilizzare gli hash.
In soldoni, calcolo l'hash (item per item) dei dati del master ogni X minuti/ore, lo confronto con l'hash precedente salvato in una tabella (del tipo: id + old_hash + new_hash + timestamp) e in caso aggiorno i dati.
Anche se non mi sembra un metodo molto efficente, le performance non dovrebbero essere un problema visto che la quantità degli item non è grandissima (sono circa 10k items e se ne aggiungono circa 1k/anno).
Ci sono altre strategie/metodi che potrei utilizzare per sincronizzare i dati dei due db??