
Cos’è il Partizionamento?
Il partizionamento prevede la suddivisione di grandi oggetti del database, come tabelle, indici e viste, in parti più piccole e gestibili. Questo metodo migliora l’organizzazione dei dati, rendendo più semplice la gestione di dataset di grandi dimensioni e aumentando le prestazioni, soprattutto per dati complessi o voluminosi.
I principali vantaggi del partizionamento sono una migliore controllabilità, prestazioni e disponibilità. Permette agli amministratori di ottimizzare e mantenere indipendentemente le diverse parti del database, migliorando l’efficienza delle query e il tempo di attività del sistema, consentendo strategie di gestione più mirate.
- In alcuni casi, il partizionamento migliora le prestazioni durante l’accesso alle tabelle partizionate.
- Il partizionamento può fungere da colonne principali negli indici, riducendo la dimensione dell’indice e aumentando la possibilità di trovare in memoria gli indici più ricercati. Quando una parte consistente di una sezione viene utilizzata nel resultset, la scansione di questa sezione può essere eseguita molto più velocemente rispetto a un accesso occasionale ai dati distribuiti nell’intera tabella tramite l’indice.
- Il caricamento e la cancellazione massiva dei dati possono essere eseguiti aggiungendo e rimuovendo sezioni, contribuendo ad aumentare le prestazioni.
- I dati raramente utilizzati possono essere trasferiti su dispositivi di archiviazione meno costosi.

In DataSunrise, il partizionamento viene utilizzato per suddividere le tabelle del database Audit Storage in sezioni (tabelle più piccole). L’Audit Storage è un database utilizzato per memorizzare i risultati del Monitoraggio dell’Attività del Database di DataSunrise.
- Semplifica l’amministrazione dell’Audit Storage, poiché i dati partizionati sono distribuiti in partizioni in base al momento del partizionamento. L’amministratore del database può disabilitare le query sulle partizioni, archiviarle, ecc.
- Aumenta le prestazioni durante l’accesso, il recupero dei dati e la scrittura dei dati nelle tabelle partizionate;
- Aumenta le prestazioni durante la cancellazione dei dati di audit obsoleti dall’Audit Storage;
DataSunrise supporta il partizionamento per i seguenti tipi di database Audit Storage:
- PostgreSQL
- MySQL
- MS SQL Server
Parametri del Partizionamento
Può essere trovato in Impostazioni di Sistema -> Parametri aggiuntivi.
- Partitions Length (days) – lunghezza della partizione, in giorni (se AuditPartitionShort == 1, allora in minuti). Può essere trovato in Impostazioni di Sistema -> Audit Storage. Se Partitions Length viene modificato, tutte le partizioni create in anticipo verranno eliminate e verranno create nuove partizioni con i nuovi parametri di lunghezza della partizione.
- AuditPartitionCountCreatedInAdvance – numero di partizioni create in anticipo. In tal modo, vengono create partizioni vuote da riempire in futuro. Questo consente a DataSunrise di scrivere dati nelle partizioni esistenti senza ritardi;
- AuditPartitionFirstEndDateTime – data/ora della fine della prima partizione. Questo orario è necessario per l’adeguamento dei confini della partizione intorno a un valore “rotondo”. Ad esempio: lunedì 00:00:00 (per una lunghezza della partizione di 7 giorni).
Il Partizionamento negli Ambienti Dati Moderni
Il partizionamento è diventato essenziale negli ambienti di big data. Molte piattaforme cloud offrono opzioni di partizionamento automatico. AWS Redshift utilizza stili di distribuzione per un’ottimale disposizione dei dati. Azure Synapse impiega metodi di distribuzione per migliorare le prestazioni delle query. Il partizionamento funziona bene con data lake che memorizzano petabyte di informazioni. Consente un recupero dei dati più rapido nelle applicazioni di business intelligence. Molte organizzazioni implementano strategie di partizionamento basate sul tempo. Questo approccio risulta efficace per dati storici e serie temporali. Un partizionamento adeguato riduce i costi ottimizzando l’utilizzo dello storage. Migliora anche il rispetto delle politiche di conservazione dei dati.
Strategie Efficaci di Distribuzione dei Dati
La creazione di strategie efficaci per la distribuzione dei dati nei database richiede una pianificazione attenta basata sui modelli di accesso e sulle esigenze aziendali. L’organizzazione per intervalli funziona al meglio per valori sequenziali come le date, consentendo ai team di accedere rapidamente ai dati recenti mentre si archivia le informazioni più vecchie.
La distribuzione tramite hash distribuisce i dati in modo uniforme tra i segmenti di storage, ideale per il bilanciamento del carico in ambienti ad alta concorrenza. Gli approcci basati su liste organizzano i record in base a specifici valori categorici, rendendoli perfetti per la segmentazione geografica o per reparto.
Molte organizzazioni implementano metodi ibridi, combinando diverse tecniche di distribuzione per massimizzare i benefici in termini di prestazioni riducendo al minimo il carico di manutenzione. Analisi regolari di pruning assicurano che le query colpiscano costantemente solo i segmenti di dati necessari, offrendo prestazioni ottimali con l’aumentare dei volumi di dati.
Gestione del Partizionamento in DataSunrise
DataSunrise include meccanismi di gestione del partizionamento: DataSunrise crea tabelle aggiuntive necessarie per il funzionamento (per PostgreSQL), crea e mantiene funzioni di partizionamento aggiornate, schemi partizionati, gruppi di file e indici (per MS SQL), modifica chiavi e indici per conformarsi ai requisiti di partizionamento (per MySQL), abilita il partizionamento, crea ed elimina partizioni.
Le SELECT vengono eseguite tramite la tabella principale. Le operazioni di INSERT/UPDATE vengono eseguite direttamente sulla partizione (eccetto in MS SQL Server). Ciò contribuisce ad aumentare la velocità di scrittura.
Nomi delle Partizioni e delle Tabelle
Le partizioni per PostgreSQL sono organizzate come tabelle figlie denominate <table_name>_p<datetime>, dove <table_name> è la tabella principale e <datetime> rappresenta il tempo di confine superiore della partizione nel seguente formato: YYYYMMDDhhmm.
Per MySQL, il partizionamento viene implementato utilizzando meccanismi nativi. I nomi delle partizioni sono formati secondo il seguente schema: p<datetime>, dove <datetime> rappresenta il tempo di confine superiore della partizione nel seguente formato: YYYYMMDDhhmm.
Per MS SQL Server, il partizionamento viene implementato tramite schemi.