Importare csv di grandi dimensioni in MariaDb/mysql

Ci sono parecchi modi per importare dei dati in formato csv in una tabella mysql/MariaDb con vari wizards piu’ o meno semplici, ma se si deve importare un file di qualche giga nascono problemi di timeout e diventa tutto piu’ complicato. Con questo metodo si carica tutto velocemente, gli unici vincoli sono che bisogna avere un accesso ssh al database e bisogna avere la struttura della tabella gia’ esistente nel database. Se abbiamo questi prerequisiti procediamo cosi:

Aprire una sessione ssh sul database con il comando:

mysql -u <user> -p <NomeDatabase> -h <IP_DataBase>

Dalla console del database digitare:

LOAD DATA LOCAL INFILE <‘Percorso_del_csv’> IGNORE INTO TABLE <NomeTabella> FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’;

In pochi minuti la tabella verra’ popolata con i dati del csv locale.

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Problemi di accesso da remoto a SQL server

Capita che installando da zero SQL server non e’ possibile accedere da remoto ma solo dalla macchina locale.

Per risolvere questo problema bisogna andare in SQL Management in locale e controllare nelle proprieta’ che sia impostato l’accesso remoto:

Tasto destro su localhost poi proprieta’ , scegliere connessioni e flaggare “permetti connessioni remote a questo server” (probabilmente e’ gia’ settato).

Poi da Windows andare in “Configuration Manager” (sotto SQL management tool) scegliere a sinistra Protocolli SQLEXPRESS e impostare TCP/IP a Enabled poi sotto IP Address impostare la porta 1433 (quella di default) sull’interfaccia desiderata E ANCHE sull’ultima (IP All)

Riavviare il servizio SQLServer

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

SuperWebService

SuperWebservice è un web service che permette di implementare chiamate sql a database o a funzioni di sistema.  E’ possibile implementare i propri servizi web tramite semplici file di configurazione.
Ogni configurazione viene chiamata da protocollo HTTP o socket diretto e contiene comandi SQL, il risultato verrà ritrasmesso al client formattato come definito nella configurazione stessa (json, xml, csv etc).

E’ la soluzione ideale per esporre al mondo Internet servizi e informazioni residenti in AS400 (e non solo). Con il plugin sarà possibile effettuare:
– Scambio di informazioni tra il proprio ERP e il mondo WEB
– Effettuare chiamate a programmi o a comandi di sistema tramite chiamate WEB
– Aggiornare la base dati AS400 e non solo

Caratteristiche di Super WEB Service
– Multipiattaforma
– Permette l’interoperabilità tra AS400 e il WEB
– Utilizza standard e protocolli “open”: integrabili con qualsiasi piattaforma WEB
– Uso di HTTPS per il trasporto dei messaggi non necessita che vengano integrati firewall
– Può essere utilizzato per fornire in modo semplice servizi WEB “integrati” e complessi
– Protocolli e formati supportati e gestiti: XML, JSON, CSV, SOAP e HTTP

Maggiori informazioni al sito http://www.thundersystems.it/it/news/web-service-as400-web/

SuperWebService

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Abilitare SQL Server alla gestione remota (Abiliando la porta 1433)

Installando SQL Server Express (mi risulta anche per qualce altra versione) potrebbe non essere possibile accedere da remoto con SQL Management Studio ricevendo l’errore “si è verificato un errore durante la connessione al server“. In pratica il server non è i ascolto sulla porta standard 1433, dove punta il client. Questo succede perche la 1433 era fonte di vulnerabilità e Microsoft invece di risolvere le vulnerabilità ha tolto l’accesso alla porta cambiando l’ascolto in porte dinamiche (lato server) ma il client di gestione continua a usare il veccio modo.

Per abilitare la gestione remota bisogna:

  • Innanzitutto abilitare e avviare il servizio “SQL SERVER BROWSER” dalla gestione servizi
  • Poi dal menu Tutti i Programmi–>SQL Server–>Strumenti di Configurazione–>Gestione Configurazione di SQL Server
  • Andare in “Protocolli per <NOMEISTANZA>” –>TCP/IP
  • Nella scheda “Protocollo” controllare che sia “abilitato” e in “attesa per tutti”
  • Nella scheda “Indirizzi IP” controllare che la sezione IP2 sia “Abilitata” “Attiva” e sia impostata con l’indirizzo ip corretto e porte dinamiche vuoto (non zero).
  • Nella scheda “IPAll” ci sia la porta 1433 e porte dinamiche vuoto (non zero)
  • A questo punto è sufficente riavviare il servizio SQL Server

PS: Nel server bisogna abilitare il firewall e/o l’antivirus ad accettare le connessioni su quella porta dalle macchine che riteniamo idonee.

VN:F [1.9.22_1171]
Rating: 4.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Calcolare date in SQL

Per aggiungere o togliere anni o giorni o mese in un sql usare:

SELECT DATEADD(yy,10, DATEDIFF(dd,0,GETDATE()))

dove yy sta per anno mm per mese dd per giorno.

Per calcolare nel passato usare un numero negativo. Alcuni esempi:

Per aggiungere 10 anni (yy) alla data di oggi:  SELECT DATEADD(yy,10, DATEDIFF(dd,0,GETDATE()))

Per togliere 7 giorni  (dd) alla data di oggi:  SELECT DATEADD(dd, -7, DATEDIFF(dd,0,GETDATE()))

Per aggiungere 1 mese (mm) alla data di oggi:  SELECT DATEADD(mm,1 , DATEDIFF(dd,0,GETDATE()))

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

SQL Server aggiornare una tabella con il contenuto di un’altra

Per aggiornare un campo (o più di uno) in una tabella con il valore di un’altra in join con la nostra tabella da aggiornare l’istruzione è la seguente:

UPDATE TABELLA_DA_AGGIORNARE
set CAMPO_DA_AGGIORNARE = new.CAMPO_OK
from TABELLA_DA_AGGIORNARE
inner join TABELLA_OK as new on new.CAMPO = old.CAMPO

Dove new.TABELLA è la tabella con i dati a posto mentre old.TABELLA è la tabella con il campo da aggiornare

VN:F [1.9.22_1171]
Rating: 8.0/10 (12 votes cast)
VN:F [1.9.22_1171]
Rating: +4 (from 10 votes)

SQL – Formattazione date con lo zero non significativo per mesi a una cifra

Per formattare il mese (o il giorno) con lo zero non significativo, per esempio gennaio = 01 invece di 1 usare la formula:

RIGHT (’00’ + CONVERT(varchar(2), DATEPART(month, GETDATE())), 2)

dove getdate() è la data odierna e va sostituita con il campo data voluto.

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Confronto date in SQL Server

Dato che SQL Server memorizza le date in formato AAA-MM-GG HH:MM:SS confrontando due campi data risultano sempre differenti. Per prendere solo la parte AAMMGG bisogna usare la funzione CONVERT ( data_type [ ( length ) ] , DATA_DA_CONFRONTARE [ , style ] ). La funzione restituisce  una stringa lunga quanto ci pare (lenght) nel formato che ci pare (style). Alcuni esempi che trrasformano la data di oggi (GETDATE()) in vari formati.

CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)

per confrontare se DATA1 è maggiore di oggi :

CONVERT(VARCHAR(10),DATA1 ,111) >= CONVERT(VARCHAR(10), GETDATE() ,111

per ulteriori dettagli leggere qui

 

VN:F [1.9.22_1171]
Rating: 9.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Utilizzo i cookie per essere sicuro che tu possa avere la migliore esperienza sul mio sito. Se continui ad utilizzare questo sito assumo che tu ne sia felice.. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi