As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gerenciando a compactação baseada em dicionário no Amazon DocumentDB 8.0
O Amazon DocumentDB 8.0 introduz um novo algoritmo de compactação de documentos, zstd, como uma alternativa aprimorada a. LZ4 Quando você ativa a compactação de dicionário em uma coleção do Amazon DocumentDB 8.0 selecionando Zstd como algoritmo de compactação, os documentos da sua coleção são amostrados para criar um dicionário de compactação personalizado. Documentos novos e atualizados são compactados usando esse dicionário e o algoritmo zstd. Essa abordagem normalmente alcança taxas de compactação mais altas do que os métodos de compactação padrão, especialmente para coleções com esquemas de documentos consistentes ou nomes de campo repetidos.
O Lz4 é um algoritmo projetado para compressão e descompressão rápidas. É conhecido por ser leve na CPU e, ao mesmo tempo, obter uma compressão perceptível. O Zstd é um algoritmo de uso geral que, com configurações padrão, usa mais CPU, mas atinge melhores taxas de compressão do que o lz4. O uso de dicionários melhora ainda mais a compactação da maioria dos documentos JSON. Alguns benefícios do algoritmo Zstd são:
Custos de armazenamento reduzidos: taxas de compressão mais altas significam menos uso de armazenamento e custos mais baixos.
MenorI/O: Compressed documents require less I/O, potencialmente melhorando o desempenho.
Otimizado para sua coleção: o dicionário é treinado especificamente para os padrões de dados da sua coleção.
nota
A compactação baseada em dicionário não é suportada nas versões 3.6, 4.0 e 5.0 do Amazon DocumentDB.
Considerações sobre desempenho
A compactação Zstd envolve as seguintes compensações:
Armazenamento versus CPU: a compactação Zstd atinge melhores taxas de compactação, mas pode usar um pouco mais de recursos da CPU em comparação com a compactação. LZ4
Compressão inicial: novas coleções podem não atingir a compactação ideal até que documentos suficientes sejam inseridos para treinar um dicionário eficaz. Atualmente, um dicionário é treinado se a coleta de pelo menos 100 documentos.
Tipo de carga de trabalho: cargas de trabalho com uso intenso de leitura, nas quais todos os dados cabem no cache do buffer, podem sofrer um aumento na latência e no uso da CPU devido à sobrecarga de descompressão.
A compressão Zstd é particularmente eficaz para coleções com documentos pequenos, matrizes de documentos e nomes de campos repetidos.
Habilitando a compactação baseada em dicionário
Para novas coleções, você pode usar o comando abaixo para ativar a compactação Zstd:
db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )
Você também pode ativar ou modificar a compactação em uma coleção existente:
db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })
Para ativar o algoritmo Zstd em todas as coleções em seu cluster, você pode modificar o grupo de parâmetros do cluster para selecionar “zstd” como o valor do parâmetro “default_collection_compression”.
Conceitos básicos
O Amazon DocumentDB 8.0 vem com a compactação Zstd ativada por padrão. Você sempre pode desativá-lo definindo o valor de 'default_compression' como desativado no grupo de parâmetros do cluster. Deve-se observar que, a partir do Amazon DocumentDB 8.0, 'enabled' não é mais uma opção válida para default_compression, e você deve selecionar entre Zstd e. LZ4
Monitoramento
Você pode visualizar as informações de compactação de uma coleção usando um dos seguintes comandos:
db.runCommand ({collStats: “myCollection”}) OU
db.collection.stats ()
Esses comandos retornam as principais estatísticas que você pode usar para calcular a taxa de compactação:
compression.algorithm: O algoritmo usado (“lz4" ou “zstd”)
StorageSize: O armazenamento real usado pela coleção, após a compactação. Observe que esse número inclui fragmentação (ou seja, o espaço não utilizado nas páginas do banco de dados)
avgObjSize: o tamanho lógico médio dos documentos da coleção, descompactado. Observe que, se sua coleção tiver mais de 20 mil documentos, esse número será uma aproximação com base em uma amostra de 20 mil documentos.
tamanho: o tamanho lógico da coleção sem compressão. Esse número é obtido multiplicando avgObjSize pelo número total de documentos na coleção, portanto, se avgObjSize for uma aproximação, esse número também será uma aproximação.
contagem: Número de documentos na coleção
As CloudWatch métricas a seguir podem ser úteis ao avaliar a compactação baseada em dicionário:
CPUUtilization
FreeableMemory
VolumeBytesUsed
VolumeReadIOPs
VolumeWriteIOPs
Métricas do CollStats:
storageSize
size
Além disso, pode ser útil acompanhar as métricas específicas do seu aplicativo, como latência e taxa de transferência por tipo de consulta ou API.