Todos os produtos
Search
Central de documentação

Elasticsearch:Use the aliyun-codec plug-in

Última atualização: Aug 22, 2026

O plug-in aliyun-codec compacta arquivos orientados a linha (source), orientados a coluna (doc values) e invertidos (postings) do Elasticsearch, além de oferecer suporte ao recurso source_reuse_doc_values. Essa solução é ideal para cenários com alto volume de escrita e custos elevados de armazenamento de índices, como análise de logs e séries temporais.

Observações de uso

  • Instale o plug-in antes de usá-lo. Para mais informações, consulte Install or uninstall built-in plug-ins.

  • O plug-in aliyun-codec tem suporte apenas em instâncias do Elasticsearch 7.10.0.

  • O recurso de compactação de índice exige a versão de kernel 1.5.0 ou posterior, enquanto o recurso source_reuse_doc_values requer a versão de kernel 1.6.0 ou posterior. Se a versão atual do kernel não atender a esses requisitos, upgrade the kernel primeiro.

Referência de desempenho

Os dados de desempenho a seguir foram registrados em um ambiente de teste específico e servem apenas como referência.

Ambiente de teste: um único índice com tamanho de 1,2 TB e 22 shards. As compactações orientadas a linha, orientadas a coluna e invertida estão ativadas, todas usando o algoritmo de compactação zstd. O conjunto de dados consiste em logs de produção do Alibaba Cloud Elasticsearch.

Compactação de índice: em comparação com um cluster sem compactação de índice:

  • Throughput de escrita: inalterado.

  • Tamanho total do índice: redução de 40%.

  • Latência em cenários de consulta com uso intenso de I/O: redução de 50%.

source_reuse_doc_values: em comparação com um cluster sem esse recurso ativado:

  • Throughput de escrita: inalterado.

  • Tamanho total do índice: redução de até 40%. O percentual de redução depende da proporção de campos com o recurso source_reuse_doc_values ativado no índice.

  • Latência em cenários de consulta com uso intenso de I/O: varia conforme fatores como a proporção de campos com o recurso ativado e o tipo de disco do nó.

Uso do recurso de compactação de índice

A configuração index.codec é estática. Feche o índice antes de modificar essa configuração e reabra-o depois.

Por exemplo, para ativar a compactação em um índice chamado test, execute os seguintes comandos:

POST test/_close

PUT test/_settings
{
  "index.codec" : "ali"
}

POST test/_open

Com essa configuração, o Elasticsearch usa o algoritmo zstd por padrão para compactar os arquivos orientados a linha (source), orientados a coluna (doc values) e invertidos (postings) do índice.

Também é possível especificar um algoritmo de compactação para um tipo de arquivo específico. O exemplo a seguir desativa a compactação para arquivos invertidos e usa o algoritmo zstd para arquivos orientados a linha e orientados a coluna. Para desativar a compactação de um tipo de arquivo, defina o parâmetro correspondente como "".

POST test/_close

PUT test/_settings
{
  "index.codec":"ali",
  "index.doc_value.compression.default":"zstd",
  "index.postings.compression":"",
  "index.source.compression":"zstd"
}

POST test/_open

A tabela a seguir lista os parâmetros de configuração do índice.

Parâmetro

Descrição

index.doc_value.compression.default

* lz4: usa o algoritmo de compactação lz4 para arquivos orientados a coluna (doc values). * zstd: usa o algoritmo de compactação zstd para arquivos orientados a coluna (doc values). Atualmente, a compactação se aplica apenas a arquivos doc values de campos dos tipos number, date, keyword e ip.

index.postings.compression

zstd: usa o algoritmo de compactação zstd para arquivos invertidos (postings).

index.source.compression

Especifique o algoritmo de compactação para arquivos orientados a linha (source). Valores válidos: * zstd: usa o algoritmo zstd com tamanho de bloco de 128 KB. * zstd_1024: usa o algoritmo zstd com tamanho de bloco de 1024 KB. * zstd_dict: usa o algoritmo zstd com dicionário. Oferece uma taxa de compactação superior à do zstd, mas com menor desempenho de leitura e escrita. * best_compression: usa o algoritmo nativo de compactação de source do Elasticsearch. * default: usa o algoritmo nativo de compactação de source do Elasticsearch.

index.postings.pfor.enabled

Ative a otimização de codificação para postings de índice invertido. Os valores válidos são true (ativado) e false (desativado). Este recurso está disponível no ES nativo 8.0. Ele pode economizar 14,4% de armazenamento para campos keyword, match_only_text e text, além de 3,5% do espaço total em disco.

Uso do recurso source_reuse_doc_values

O Elasticsearch armazena várias cópias dos dados em _source, índices invertidos e doc_values. O recurso source_reuse_doc_values reduz o tamanho do índice ao remover do _source os dados já presentes em doc_values.

Ativação do recurso source_reuse_doc_values

Ative o recurso source_reuse_doc_values apenas durante a criação do índice. Não é possível desativá-lo posteriormente.

PUT test
{
  "settings": {
    "index": {
      "ali_codec_service": {
        "source_reuse_doc_values": {
          "enabled": true
        }
      }
    }
  }
}

Ajuste das configurações do source_reuse_doc_values

Após ativar o recurso source_reuse_doc_values, ajuste as seguintes configurações.

Ajustar o número máximo de campos

Se a quantidade de campos com source_reuse_doc_values ativado ultrapassar o valor especificado, o Elasticsearch lançará uma exceção ou desativará automaticamente o recurso. O valor padrão é 50.

PUT _cluster/settings
{
  "persistent": {
       "apack.ali_codec_service.source_reuse_doc_values.max_fields": 100
  }
}

Definir a imposição do limite máximo de campos

  • true: o Elasticsearch lança uma exceção caso o limite seja excedido.

  • false: o Elasticsearch desativa automaticamente o recurso source_reuse_doc_values se o limite for ultrapassado.

PUT _cluster/settings
{
  "persistent": {
       "apack.ali_codec_service.source_reuse_doc_values.strict_max_fields": true
  }
}

Ajustar a concorrência para leitura de valores de campo

Ao recuperar um documento original, este recurso lê e monta simultaneamente os valores dos campos onde está ativado. A concorrência padrão é 5.

PUT test/_settings
{
  "index": {
    "ali_codec_service": {
      "source_reuse_doc_values": {
        "fetch_slice": 2
      }
    }
  }
}

Ajustar o pool de threads e o tamanho da fila

Por padrão, o tamanho do pool de threads corresponde ao número de núcleos do nó, e o tamanho da fila é 1000. Altere essas configurações apenas mediante modificação do arquivo YML. Para obter instruções, consulte Configure YML parameters.

apack.doc_values_fetch:
size: 8
queue_size: 1000