Ajuste de desempenho
Definição de parâmetros de tarefa de sincronização
- max_full_sync_task_threads_num: número de segmentos de sincronização completa. Por padrão, ele é definido como metade das vCPUs nos nós FE. Aumentar esse valor tornará a sincronização completa mais rápida, mas mais vCPUs e memória de OLTP e OLAP serão consumidas. Defina um valor apropriado para esse parâmetro com base na carga do sistema ao executar uma tarefa de sincronização completa. Se várias tarefas de sincronização completa forem executadas ao mesmo tempo, diminua o valor desse parâmetro.
- max_incremental_sync_task_threads_num: número de segmentos incrementais de sincronização. Por padrão, ele é definido como metade das vCPUs nos nós FE. Um valor maior indica que mais segmentos são usados para sincronização incremental, mais recursos são consumidos e a latência de sincronização é menor. Se houver mais de cinco tarefas de sincronização em uma instância, reduza o número de segmentos de sincronização para cada tarefa.
- expect_tablet_size: tamanho esperado dos dados de origem armazenados em cada bucket, em GB. O valor padrão é 3. Se a maioria das tabelas em um banco de dados tiver menos de 3 GB de dados, mas houver algumas tabelas com uma quantidade significativa de dados, diminua esse valor.
- expect_tablet_num_for_one_partition: número padrão esperado de buckets em cada partição. Se esse parâmetro for definido como 0, o número de buckets será calculado com base no tamanho dos dados. O valor padrão é 2. Se não houver dados em uma tabela, esse valor padrão será usado. Se houver dados em uma tabela, o número de buckets será calculado da seguinte forma: tamanho dos dados/valor de expect_tablet_size. Se uma chave de partição for especificada para sincronização de tabela, você precisará avaliar o número de buckets necessários para os dados em cada partição. O número de buckets de uma tabela é calculado da seguinte forma: número de partições x número de buckets em cada partição.
Melhoria do desempenho da consulta
- Cache de consulta
O cache de consulta é adequado para cenários em que os dados podem ser categorizados como dados quentes e dados frios e as consultas agregadas são executadas com frequência. Para ativar o cache de consulta, use o DAS para se conectar ao banco de dados OLAP e execute SET GLOBAL enable_query_cache=true;
- Chaves de classificação
Adicione critérios de filtro comumente usados às chaves de classificação. A ordem das chaves de classificação deve ser determinada com base na frequência de uso e na cardinalidade dos dados, com prioridade dada à alta cardinalidade. É aconselhável definir no máximo cinco chaves de classificação. As chaves de classificação são amplamente utilizadas para ajustar o desempenho do OLAP. Ao criar uma tarefa de sincronização, você pode usar a sincronização de tabela para definir chaves de classificação.
- Partições
Uma coluna de tempo cujo valor não muda é frequentemente usada para a filtragem WHERE. Use a coluna para criar partições. Ao criar uma tarefa de sincronização, você pode usar a sincronização de tabela para definir partições.
- Índices
Adicione índices às colunas usadas para filtragem. Os índices de bitmap são adequados para colunas com uma cardinalidade de cerca de 10.000 a 100.000. Os índices de filtro bloom são adequados para colunas com uma cardinalidade de mais de 100.000. Depois que os dados são sincronizados, você pode se conectar ao banco de dados OLAP por meio do DAS e executar comandos SQL para criar índices.
- Visualizações materializadas
Se houver várias consultas usadas com frequência com critérios de filtro diferentes e as chaves de classificação só puderem se adaptar a uma consulta, crie uma visualização materializada para se adaptar a outras consultas. Depois que os dados são sincronizados, você pode se conectar ao banco de dados OLAP por meio do DAS e executar comandos SQL para criar visualizações materializadas.