SAP HANA Admin - partição de tabela

Usando o particionamento, você pode dividir as tabelas de armazenamento de coluna em tabelas menores em um sistema de vários hosts. Você pode até mesmo dividir as tabelas em partes menores e mais gerenciáveis ​​usando o particionamento. O particionamento pode ser feito usando instruções DML SQL.

Quando uma tabela é particionada, ela contém diferentes conjuntos de linhas para cada parte e o particionamento pode ser feito com base em diferentes algoritmos - Particionamento Hash, Particionamento de Nível Único ou Particionamento multinível.

A seguir estão as vantagens de usar o particionamento de tabela -

Particionando poda

Você pode determinar se uma consulta pode ser analisada em uma partição específica. Usando este método, você pode reduzir a carga no sistema e, portanto, melhorar o tempo de resposta.

Example- Quando você particiona uma tabela com base no ano, uma consulta é executada para analisar os dados de um determinado ano. Você pode usar uma partição específica e, portanto, o desempenho da consulta é aprimorado.

Balanceamento de carga

Você pode dividir partições individuais em vários hosts e, portanto, uma consulta não é processada por um único servidor, resultando em um melhor balanceamento de carga em todos os servidores que hospedam partições de tabela.

Limitação de tamanho

Em uma tabela de armazenamento de coluna, o número máximo de linhas que podem ser inseridas é de cerca de 2 bilhões. Você pode superar isso distribuindo as linhas de uma tabela de coluna em várias partições e, portanto, o limite de tamanho é aumentado para 2 bilhões para cada partição.

Operação de fusão Delta aprimorada

Durante a fusão delta, se os dados forem modificados apenas para algumas partições, você precisará fundir menos partições na fusão delta.

Processamento paralelo de consultas

Usando partições, você pode executar várias consultas em paralelo e, portanto, melhorar o tempo de resposta.

Vamos agora discutir os tipos de partição.

Particionamento de Nível Único

Existem diferentes tipos de particionamento de nível único disponíveis no sistema SAP HANA -

  • Particionamento Hash
  • Particionamento Round Robin
  • Particionamento de intervalo

No particionamento Hash, as linhas são distribuídas igualmente para realizar o balanceamento de carga. Você não precisa de informações detalhadas sobre o conteúdo da tabela neste tipo de particionamento.

Em comparação com o Particionamento Hash, no Particionamento Round Robin as linhas são igualmente distribuídas para cada partição e as novas linhas são igualmente atribuídas a cada partição.

Para criar 4 partições de uma tabela usando Round Robin, você pode usar as seguintes consultas SQL. Nenhuma chave primária deve ser definida.

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

Este comando criará 4 partições de uma tabela.

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

Isso criará 4 partições na coluna a e b, e você precisa especificar pelo menos uma coluna.

Particionamento de intervalo

No particionamento de intervalo, você cria partições dedicadas para determinados valores e deve ter um conhecimento profundo do conteúdo da tabela para colunas de particionamento.

Example - Criação de uma partição para cada mês do calendário.

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)

Isso criará 4 partições, uma para o intervalo de partição 1 a 10, a de 10 a 20, a para o valor 50 e a para todos os outros valores.

Particionamento multinível

No particionamento multinível, você pode superar a limitação do particionamento de nível único HASH e RANGE para usar colunas-chave como colunas de particionamento. Usando o particionamento multinível, você pode particionar uma coluna que não seja uma chave primária. O tipo mais comum de partição multinível éHASH-Range Partitioning.

No particionamento multinível Hash-Range, você implementa o particionamento Hash no primeiro nível para implementar o balanceamento de carga e o particionamento Range no segundo nível para implementar o particionamento baseado no 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)

Em vez de usar o particionamento Hash no primeiro nível, você também pode usar o particionamento Round Robin e é conhecido como 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)