This is the Trace Id: 16619a6e538b448d01ced28c9ae28623
Passa a contenuti principali
Azure

Che cos'è il partizionamento orizzontale del database?

Il partizionamento orizzontale del database è un metodo di scalabilità orizzontale che aumenta le prestazioni e la disponibilità delle soluzioni in sistemi distribuiti a livello globale.

Definizione del partizionamento orizzontale del database

Il partizionamento orizzontale del database si riferisce al processo di suddivisione di un grande database in segmenti più piccoli e gestibili, chiamati partizioni. Supporta la scalabilità orizzontale in modo che applicazioni e sistemi possano gestire volumi crescenti di dati e utenti senza compromettere prestazioni o disponibilità. Le organizzazioni utilizzano strategie di partizionamento orizzontale per superare i limiti di archiviazione e altre sfide legate alla scalabilità dei database negli ambienti cloud moderni.

  • Il partizionamento orizzontale del database è definito come un metodo di scalabilità orizzontale che divide un database in partizioni indipendenti che operano su un'architettura senza condivisione (SNA).
  • I dati vengono suddivisi tra le partizioni utilizzando chiavi di partizione, che consentono alle applicazioni di instradare le richieste alle partizioni appropriate.
  • I dati vengono comunemente suddivisi tra le partizioni usando valori numerici, funzioni hash, directory di ricerca o posizioni geografiche.
  • I vantaggi del partizionamento orizzontale del database includono prestazioni di query migliorate, supporto alla scalabilità orizzontale e maggiore tolleranza agli errori.
  • I casi d'uso del partizionamento orizzontale includono banche, e-commerce e piattaforme di social media, che spesso devono gestire una crescita rapida o picchi di dati o utenti.

Come funziona il partizionamento orizzontale del database?

Il partizionamento orizzontale del database è una tecnica usata per scalare orizzontalmente grandi database dividendoli in parti più piccole e indipendenti chiamate partizioni. Ogni partizione funziona come un database separato che contiene un sottoinsieme distinto dei dati complessivi ma mantiene lo stesso schema. Questo permette alle partizioni di formare collettivamente un unico database logico anche se operano su server separati.

Il partizionamento orizzontale del database segue un'architettura senza condivisione (SNA), un modello di calcolo distribuito in cui ogni partizione opera autonomamente senza condividere risorse di elaborazione, memoria o archiviazione con altre partizioni.

Una chiave di partizione, ovvero un campo specifico o una combinazione di campi nei dati, determina quali dati saranno memorizzati in ogni partizione. Quando un'applicazione deve leggere o scrivere dati, usa la chiave di partizione per indirizzare la richiesta alla partizione appropriata.

Strategie di partizionamento

Le organizzazioni gestiscono i dati distribuiti su più partizioni in modi diversi. Ecco alcune strategie comuni:

  • Partizionamento orizzontale basato su intervalli o dinamico: i dati vengono suddivisi in base a intervalli di valori nella chiave di partizione. Ad esempio, a una partizione di un database di e-commerce possono essere assegnati numeri ID cliente da 1 a 1.000.000, e a un'altra partizione numeri ID cliente da 1.000.001 a 2.000.000. Questo metodo è efficiente per le query di intervallo, ma può comportare una distribuzione non uniforme se determinati intervalli vengono consultati con maggiore frequenza.
  • Partizionamento orizzontale basato su hash: i dati vengono distribuiti uniformemente tra le partizioni applicando una formula matematica chiamata funzione hash a ogni chiave di partizione. Questo approccio aiuta a prevenire sovraccarichi ma può disperdere dati correlati su più partizioni, rendendo meno efficienti le query di intervallo.
  • Partizionamento orizzontale basato su directory o su ricerca: una mappa delle partizioni indica quali chiavi di partizione corrispondono a quali dati. Questa strategia offre flessibilità per aggiungere rapidamente più chiavi di partizione secondo necessità, ma aggiunge complessità e potenziali sovraccarichi.
  • Partizionamento orizzontale per area geografica: i dati vengono partizionati in base alla posizione geografica, riducendo la latenza per gli utenti in diverse aree geografiche e supportando i requisiti di residenza dei dati. Molte piattaforme abbinano il partizionamento orizzontale per area geografica alla replica del database per una maggiore resilienza.

Altre informazioni sui database.

Quali sono i principali vantaggi del partizionamento orizzontale del database?

Il partizionamento orizzontale del database richiede una selezione accurata delle chiavi di partizione, una strategia di partizionamento orizzontale e l'ottimizzazione dell'instradamento delle query. Ecco alcuni vantaggi chiave del partizionamento orizzontale del database:

  • Migliora le prestazioni delle query: distribuendo i dati su più partizioni, i database possono recuperare più rapidamente il set di dati necessario per eseguire ogni query. Questo si traduce in tempi di risposta più rapidi.
  • Supporta la scalabilità orizzontale: invece di aumentare la capacità di risorse su un singolo server, le organizzazioni possono gestire volumi crescenti di dati e carichi di lavoro scalando orizzontalmente e aggiungendo più partizioni (e server). Scopri di più sulla scalabilità verticale rispetto alla scalabilità orizzontale.
  • Rafforza la tolleranza di errore: poiché il partizionamento orizzontale utilizza un approccio SNA, ogni partizione è isolata dalle altre. Qualsiasi problema che colpisce una partizione non impatta le altre, migliorando l'affidabilità del sistema. La replica dei dati tra le partizioni protegge ulteriormente la disponibilità.
  • Favorisce l'efficienza dei costi: le partizioni di dati richiedono meno risorse hardware e software rispetto ai grandi database, che spesso necessitano di server costosi e di fascia alta.

Aiuta a ottimizzare i carichi di lavoro AI: database complessi e monolitici possono rallentare la capacità dell'IA di accedere ai dati, fare previsioni e apprendere nel tempo. Il partizionamento orizzontale supporta la creazione di un ambiente distribuito e ricco di dati dove l'IA può funzionare in modo più efficace.

Esempi specifici di settore del partizionamento orizzontale del database

Il partizionamento orizzontale del database è particolarmente prezioso per soluzioni cloud che sperimentano una crescita rapida o picchi imprevedibili di dati o traffico utenti. I seguenti casi d'uso mostrano come il partizionamento orizzontale può essere applicato in diversi settori:

  • E-commerce: le piattaforme retail suddividono i dati di clienti e ordini tra le partizioni, garantendo ricerche di prodotti rapide e esperienze di checkout fluide durante i periodi di picco degli acquisti.
  • Servizi finanziari: i record per transazioni bancarie e finanziarie vengono suddivisi per data o numero di conto, permettendo query efficienti e un'archiviazione sicura e scalabile.
  • Gaming online: i dati di giocatori o sessioni vengono divisi per area geografica e ID utente, bilanciando i carichi tra le partizioni e minimizzando la latenza (il tempo necessario ai dati per raggiungere la destinazione) per il pubblico globale.
  • Social media: le piattaforme di social media dividono i dati di profili utente e feed attività per ID utente o intervallo temporale. Questo approccio permette alla piattaforma di interrogare rapidamente i post recenti e supportare milioni di utenti contemporanei.
  • Software come servizio (SaaS): le app SaaS multi-tenant dividono comunemente i dati per ID tenant, isolando i dati dei clienti e semplificando la gestione con la crescita degli utenti. Possono anche suddividerli per carico di lavoro del tenant o posizione geografica.

Scopri di più sull'analisi dei big data.

Il futuro del partizionamento orizzontale del database

Distribuendo i dati su più server indipendenti, il partizionamento orizzontale riduce il carico su ogni singolo server, minimizza i colli di bottiglia e migliora la disponibilità e la reattività del sistema. I vantaggi dell'uso del partizionamento orizzontale del database negli ambienti cloud moderni aumenteranno con l'evoluzione dell'IA e di altre tecnologie correlate.

Tra le tendenze da tenere d'occhio si segnalano le seguenti:

Flussi di lavoro di partizionamento orizzontale assistiti dall'IA

Funzionalità intelligenti, come la selezione automatica delle chiavi di partizione, il riequilibrio del carico e l'instradamento delle query, diventeranno sempre più diffuse.

Vantaggio: operazioni semplificate e ottimizzate e scalabilità senza precedenti

Ripartizionamento senza tempi di inattività

Le piattaforme dati moderne supporteranno sempre più i cambiamenti delle chiavi di partizione senza richiedere tempi di inattività o migrazioni dati complesse.

Vantaggio: maggiore flessibilità nell'aggiornare le strategie di partizionamento orizzontale man mano che i carichi di lavoro evolvono

Partizionamento orizzontale combinato con database serverless

I database serverless forniscono e gestiscono in modo indipendente i server per ogni partizione. Scalano inoltre la capacità su richiesta in base a query guidate da eventi.

Vantaggio: riduzione del carico operativo

Partizionamento orizzontale per area geografica adattivo e basato su criteri

I flussi di lavoro di partizionamento orizzontale automatizzati instradano automaticamente i dati tra le partizioni geografiche basandosi su regole di criteri di una posizione geografica incorporate nel codice. Vantaggio: conformità più rapida ai requisiti normativi e di privacy in evoluzione

Scopri di più sul cloud computing.

Domande frequenti

  • Il partizionamento orizzontale del database è il processo di scalabilità orizzontale di un grande database su più server, ognuno dei quali ospita una partizione con un sottoinsieme distinto dei dati complessivi. Il partizionamento orizzontale viene utilizzato per gestire in modo efficiente volumi di dati e traffico utente in crescita distribuendo query e archiviazione su più macchine anziché affidarsi a un singolo server di grandi dimensioni.
  • Sia il partizionamento orizzontale che il partizionamento ottimizzano le operazioni del database suddividendo un grande database in sottoinsiemi più piccoli. Tuttavia, mentre il partizionamento divide i dati sullo stesso server, il partizionamento orizzontale distribuisce i dati su più server. La replica si riferisce al mantenimento di copie multiple dello stesso set di dati su server diversi per garantire ridondanza. 
  • Sì, il partizionamento orizzontale del database migliora le prestazioni e la scalabilità delle applicazioni. Distribuendo dati e carichi di lavoro tra le partizioni, il partizionamento orizzontale riduce i tempi di risposta delle query e aumenta la tolleranza di errore. Le organizzazioni possono anche scalare le app orizzontalmente. La scelta delle chiavi di partizione e delle strategie di partizionamento è essenziale per ottimizzare il partizionamento orizzontale dei dati.
  • Sì, Azure e altre piattaforme cloud offrono supporto integrato per il partizionamento orizzontale del database. Ad esempio, il database SQL di Azure fornisce diversi strumenti per ottimizzare la scalabilità del database, inclusa una libreria client che semplifica la creazione e la gestione delle partizioni.