Immagina che ti abbiano inviato un file CSV con info sugli studenti, magari da un altro database o da un'app esterna. Copiare ogni record a mano? No grazie. Ed è proprio qui che entra in gioco il caricamento massivo dei dati.
Ecco alcune situazioni dove il caricamento massivo ti salva la vita:
- Migrazione dei dati: devi spostare dati da un sistema all'altro. Per esempio, da Excel o da un altro database a PostgreSQL.
- Inizializzazione del database: riempi il tuo database con dati di partenza, tipo la lista delle città, dei corsi o delle categorie di prodotti.
- Integrazione con sistemi esterni: aggiunta regolare di nuovi dati, ad esempio aggiornamenti da terze parti tramite file.
- Aggiornamento di grandi quantità di dati: devi sostituire dati vecchi con quelli aggiornati.
Tutto chiaro fin qui? Se sì, andiamo avanti!
Approcci principali al caricamento massivo dei dati
Prima di entrare nei dettagli, vediamo velocemente quali sono i modi per aggiungere tanti dati al database, non solo una o due righe. Vedremo come farlo con le query SQL, e poi daremo un'occhiata a un metodo più comodo e moderno: il caricamento da file.
Query SQL per inserire dati
Già sai che per aggiungere dati si usa il comando INSERT INTO. Funziona benissimo se hai pochi record. Tipo così:
INSERT INTO students (id, name, age, course)
VALUES (1, 'Otto Lin', 20, 'Programmazione');
Ma se parliamo di decine, centinaia o migliaia di righe, questo metodo non è più efficace. Certo, puoi automatizzare tutto via codice, ma gestire manualmente così tanti insert diventa un incubo.
Caricamento da file
Per questo spesso si usa il caricamento dei dati da file, tipo CSV (Comma-Separated Values). È un formato di testo semplice, dove ogni riga è un record e i valori sono separati da virgole o punti e virgola.
Esempio di contenuto di un file CSV:
id,name,age,course
1,Otto Lin,20,Programmazione
2,Maria Chi,21,Design
3,Alex Ming,19,Matematica
Questo formato è facile da leggere sia per le persone che per i programmi. Puoi aprire un CSV in Excel, lavorarci in Python o in un altro linguaggio, e importarlo facilmente nel database. Il caricamento massivo da file è molto più veloce rispetto all'inserimento manuale e riduce il rischio di errori di digitazione.
Preparazione al caricamento massivo
Il segreto di un caricamento di successo è la preparazione. Prepareremo il database per ricevere i dati, controlleremo che la struttura sia giusta e che i dati siano ok.
Verifica della struttura delle tabelle
Prima di tutto, assicurati che nel tuo database ci sia una tabella che corrisponde alla struttura del file. Ad esempio, se carichi studenti, devi avere una tabella con le colonne giuste.
Esempio di tabella per caricare dati sugli studenti:
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL,
course TEXT
);
Punti importanti:
- Assicurati che i tipi di dato delle colonne siano uguali a quelli del file. Se
ageè un numero, anche nel CSV quella colonna deve avere solo numeri. - Le colonne con vincoli (
NOT NULL,UNIQUE) richiedono una preparazione dei dati ancora più attenta.
Verifica dei dati
Ora due parole sui dati. Ecco cosa controllare prima di caricare:
- Niente righe vuote o valori sbagliati. Per esempio, la riga:
12,,20,Programmazionedarà errore, perchénameè un campo obbligatorio.
Separatore giusto. Se nel tuo CSV usi la virgola (
,), assicurati che sia impostata correttamente. Se invece usi il punto e virgola (;), devi specificarlo quando carichi i dati.Codifica. PostgreSQL si aspetta file in UTF-8. Se il tuo file è in un'altra codifica (tipo Windows-1251), devi convertirlo.
Una battuta nerd per rilassarsi
Perché ai programmatori piace così tanto usare i CSV? Perché dopo ore passate con JSON, finalmente vedono dati "semplici"... almeno finché non trovano una virgola nel testo.
Applicazioni pratiche del caricamento massivo
Nei progetti veri il caricamento massivo si usa ovunque. Per esempio:
- Quando aggiorni il catalogo prodotti di un e-commerce. Un file CSV con migliaia di prodotti si carica in pochi secondi.
- Quando migri i clienti da un CRM all'altro. Tutti i dati dei clienti, indirizzi e ordini vengono caricati da CSV in PostgreSQL.
- Nell'analisi dati, quando devi caricare i dati delle vendite del mese per fare analisi.
Ora che hai capito perché serve e come prepararti, possiamo passare agli strumenti concreti per il caricamento dei dati, come il comando COPY. Ma di questo parleremo nella prossima lezione.
GO TO FULL VERSION