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 2ª de 10 a 20, a 3ª para o valor 50 e a 4ª 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)