- 1,829
- 911
- CPU
- I7 3770
- Scheda Madre
- Asrock Z77 Extreme 4
- HDD
- Samsung 850 pro 250GB
- RAM
- Corsair Vengeance LP 16GB
- GPU
- Gigabyte GTX1060 6GB
- Monitor
- Dell U2412M
- PSU
- Seasonic Focus Plus 650
- Case
- Corsair Graphite 760T
- OS
- Debian / Ubuntu
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??