La chiave per la connessione a un MS SQL Server da posizioni arbitrarie è ODBC .
Stai cercando un linguaggio che possa gestire facilmente la lettura di csv e inserire i dati su ODBC.
Ci sono diverse scelte per ODBC. Se sei un negozio Java, puoi andare a ottenere jdbc per SQL Server e connetterti a il database in questo modo. Chiedi a .jar di essere parte del tuo percorso di classe e connetterti. Probabilmente questo dovrebbe essere l'opzione se hai persone con tecnologie di dettatura elevate (java è abbastanza sicuro e puoi sempre trovare o assumere un programmatore java).
Me? Sono un ragazzo perl nel cuore. Scriccatura di un file di dati ed esportazione in un altro è un classico dominio perl soluzione.
Con perl, si otterrebbe DBI ( documenti ) per l'interfaccia con un livello di database, e quindi DBD :: CSV ( tutorial ) per leggere i dati dal file csv come se fosse era un database stesso, quindi DBD :: ODBC per scrivere su un ODBC connessione. L'installazione di moduli perl tramite CPAN è abbastanza semplice (anche se ammetto che lo dico dopo averlo fatto molte, molte volte).
Questo potrebbe essere fatto con Text :: CSV invece . Tuttavia, vi è una certa eleganza nell'approccio DBD di scrivere un programma per leggere da un database arbitrario (fare qualsiasi trasformazione appropriata sui dati) e scrivere su un altro database arbitrario. Se fatto bene, e ti ritrovi a voler copiare i dati da un altro database a un certo punto, diventa una modifica abbastanza piccola al codice (installa il driver DBD appropriato per il database e leggi i dati.
Adottando un approccio completamente diverso che si piega di più nel mondo sysadmin rispetto al dominio del programmatore, è possibile spostare i dati dalla macchina Linux alla macchina Windows su base regolare.
- Puoi mettere i file su una condivisione di samba e montarli da windows.
- Opzione simile a quella precedente, potresti rendere il file disponibile su un server web e poi recuperarlo ed elaborarlo su Windows.
- Con i pacchetti appropriati, si potrebbe montare una condivisione Windows su Linux (qualcosa lungo la linea di
mount -t cifs -o guest,uid=client_user,gid=users //192.168.1.100/share /path_to/mount
o //192.168.44.100/share /path_to/mount cifs guest,_netdev 0 0
in / etc / fstab)
- Invece di condividere linux in windows, o windows in linux, NAS (network attached storage) è un modo semplice per avere un singolo server (non linux o windows) che serve i file a ciascuno.
-
Configura un server ftp su linux e ha un lavoro programmato per estrarre il file da windows.
- Avere un lavoro automatico su linux ( cron ) ftp il file su windows (questo presuppone che tu abbia impostato un ftp server su alcune macchine Windows).
- Crea un'app Web su Windows che può inserire un file csv in un database, chiama questa app web tramite arricciatura da finestre.
Queste opzioni richiedono un maggior grado di sincronizzazione tra le macchine. Rendere il file disponibile richiede che entrambe le macchine possano accedervi reciprocamente. Questo può essere difficile se si dice, nel dmz e un altro no. Avere due serie di programmi per eseguire il lavoro su macchine diverse (copia file, file di processo) richiede che gli orologi siano sincronizzati in modo ragionevole e siano in grado di eseguire più serie di processi pianificati.