Amministratore SAP HANA - Partizione tabella

Utilizzando il partizionamento, è possibile suddividere le tabelle dell'archivio colonne in tabelle più piccole in un sistema a più host. È anche possibile dividere le tabelle in parti più piccole e più gestibili utilizzando il partizionamento. Il partizionamento può essere eseguito utilizzando le istruzioni SQL DML.

Quando una tabella è partizionata, contiene diversi set di righe per ciascuna parte e il partizionamento può essere eseguito in base a diversi algoritmi: partizionamento hash, partizionamento a livello singolo o multilivello.

Di seguito sono riportati i vantaggi dell'utilizzo del partizionamento della tabella:

Potatura di partizionamento

È possibile determinare se una query può essere analizzata in una partizione particolare. Utilizzando questo metodo, è possibile ridurre il carico sul sistema e quindi migliorare il tempo di risposta.

Example- Quando si partiziona una tabella in base all'anno, viene eseguita una query per analizzare i dati per un determinato anno. È possibile utilizzare una partizione specifica e quindi le prestazioni delle query sono migliorate.

Bilancio del carico

È possibile dividere singole partizioni su più host e quindi una query non viene elaborata da un singolo server, il che si traduce in un migliore bilanciamento del carico su tutti i server che ospitano le partizioni della tabella.

Limitazione delle dimensioni

In una tabella di archivio di colonne, il numero massimo di righe che è possibile immettere è di circa 2 miliardi. È possibile superare questo problema distribuendo le righe di una tabella di colonne su più partizioni e quindi il limite di dimensione viene aumentato a 2 miliardi per ogni partizione.

Operazione di fusione delta migliorata

Durante l'unione delta, se i dati vengono modificati solo per alcune partizioni, è necessario unire meno partizioni nell'unione delta.

Elaborazione parallela delle query

Utilizzando le partizioni, è possibile eseguire più query in parallelo e quindi migliorare il tempo di risposta.

Parliamo ora dei tipi di partizionamento.

Partizionamento a livello singolo

Sono disponibili diversi tipi di partizionamento a livello singolo nel sistema SAP HANA:

  • Partizionamento hash
  • Partizionamento Round Robin
  • Partizionamento dell'intervallo

Nel partizionamento hash, le righe vengono distribuite equamente per eseguire il bilanciamento del carico. Non sono necessarie le informazioni dettagliate sul contenuto della tabella in questo tipo di partizionamento.

Rispetto al partizionamento hash, nel partizionamento Round Robin le righe sono equamente distribuite a ciascuna partizione e le nuove righe sono ugualmente assegnate a ciascuna partizione.

Per creare 4 partizioni di una tabella utilizzando Round Robin, è possibile utilizzare le seguenti query SQL. Nessuna chiave primaria dovrebbe essere definita.

CREATE COLUMN TABLE TABLENAME (a INT, b INT, c INT) 
PARTITION BY ROUNDROBIN PARTITIONS 4

Questo comando creerà 4 partizioni di una tabella.

CREATE COLUMN TABLE Table_Name (a INT, b INT, c INT, PRIMARY KEY (a,b)) 
PARTITION BY HASH (a, b) PARTITIONS 4

Questo creerà 4 partizioni sulla colonna a e be devi specificare almeno una colonna.

Partizionamento dell'intervallo

Nel partizionamento a intervalli, crei partizioni dedicate per determinati valori e dovresti avere una conoscenza approfondita del contenuto della tabella per il partizionamento delle colonne.

Example - Creazione di una partizione per ogni mese di calendario.

CREATE COLUMN TABLE TABLE_NAME (a INT, b INT, c INT, PRIMARY KEY (a,b)) 
PARTITION BY RANGE (a) 
(PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20, 
PARTITION VALUE = 50, PARTITION  OTHERS)

Ciò creerà 4 partizioni, una per gamma del divisorio 1 a 10, 2 ° da 10 a 20, 3 rd per il valore 50, e 4 ° per tutti gli altri valori.

Partizionamento multilivello

Nel partizionamento multilivello, è possibile superare la limitazione del partizionamento a livello singolo HASH e RANGE per utilizzare le colonne chiave come colonne di partizionamento. Utilizzando il partizionamento multilivello, è possibile partizionare una colonna che non è una chiave primaria. Il tipo più comune di partizionamento multilivello èHASH-Range Partitioning.

Nel partizionamento multilivello Hash-Range, si implementa il partizionamento hash al primo livello per implementare il bilanciamento del carico e il partizionamento Range al secondo livello per implementare il partizionamento basato sul tempo.

CREATE COLUMN TABLE Table_name (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY HASH (a, b) PARTITIONS 4,
RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)

Invece di utilizzare il partizionamento hash al primo livello, puoi anche utilizzare il partizionamento Round Robin ed è noto come Round Robin-Range multilevel partitioning.

CREATE COLUMN TABLE Table_name (a INT, b INT, c INT) 
PARTITION BY ROUNDROBIN PARTITIONS 4,
RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)