Usa le Partizioni, Luke! Un modo semplice e provato per ottimizzare le tue Query SQL
Utilizza le Partizioni, Luke! Un metodo semplice e provato per ottimizzare le tue Query SQL
Se hai mai scritto una query SQL che ci mette un attimo a eseguirsi, questo è l’articolo che fa per te
I Data Scientist amano SQL, ma che brutto lavoro che facciamo nel scrivere query performanti (forse perché passiamo troppo tempo a dibattere se si pronuncia “S-Q-L” o “sequel”?).
In questo articolo, ti mostrerò come utilizzare partizioni SQL per ottimizzare le tue query e scrivere codice più veloce e conveniente da eseguire. Se hai padroneggiato le basi di SQL e vuoi iniziare a sfruttare competenze di Data Science di livello superiore, questa sarà una grande aggiunta al tuo set di strumenti.
Cos’è una tabella partizionata?
Una tabella partizionata è una tabella divisa in segmenti/partizioni (chi l’avrebbe mai detto?).
In una tabella partizionata, ogni segmento è memorizzato in una posizione diversa sul server. Questo è diverso da una normale tabella SQL (non partizionata), in cui l’intera tabella si trova in una singola posizione.
- Tutte le funzioni chiamano
- Qual è l’algoritmo di arrampicata in AI?
- Classificazione di serie storiche per la rilevazione della fatica nei corridori – Un tutorial
Ecco un confronto utilizzando dati di esempio sulle vendite giornaliere di tre dei miei libri preferiti:
Sia la tabella non partizionata che quella partizionata contengono gli stessi dati; l’unica differenza è che la tabella partizionata suddivide i dati in segmenti diversi. Rimane comunque una singola tabella (ovvero non sono tre tabelle separate); sta solo memorizzando i dati in modo diverso.
Perché dovremmo preoccuparcene? Beh, come vedremo tra poco, possiamo sfruttare questa struttura per scrivere query SQL più efficienti.
Creazione di tabelle partizionate
Creare una tabella partizionata è semplice come bere un bicchiere d’acqua.
Ad esempio, se utilizzassimo il seguente codice per creare una normale tabella (non partizionata)…
CREATE TABLE `myproject.mydataset.unpartitioned` ( data DATE, nome_libro STRING, vendite_totali INT64);INSERT INTO `myproject.mydataset.unpartitioned`VALUES ('2023-12-01', 'Shoe Dog', 154), ('2023-12-01', 'Born to Run', 90), ('2023-12-02', 'Running with the…