Gerenciamento da compactação de documentos a nível de coleção - Amazon DocumentDB

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á.

Gerenciamento da compactação de documentos a nível de coleção

A compactação de documentos a nível de coleção do Amazon DocumentDB permite que você reduza os custos de armazenamento e E/S ao compactar os documentos em suas coleções. É possível ativar a compactação de documentos a um nível de coleção e visualizar as métricas de compactação conforme necessário, medindo os ganhos de armazenamento por meio de métricas de compactação, como tamanho de armazenamento de documentos compactados e status de compactação. O Amazon DocumentDB usa o algoritmo de compactação LZ4 para compactar documentos.

O Amazon DocumentDB oferece suporte à compactação de documentos a partir da versão 5.0. A seguir estão as funções de compactação de documentos em nível de coleção:

  • Comportamento padrão: a configuração de compactação padrão para novas coleções em um cluster é determinada pelo parâmetro de cluster default_collection_compression. Esse parâmetro é definido como “desativado” por padrão.

  • Compactação de coleções existentes: a configuração de compactação de coleções existentes pode ser alterada usando o comando collMod.

  • Alteração do limite de compactação: o limite de compactação padrão é de 2 KB. Esse valor pode ser especificado para novas coleções usando o comando createCollection e alterado para coleções existentes usando o comando collMod.

nota

A compactação de documentos do Amazon DocumentDB não é suportada nas versões 3.6 e 4.0 do Amazon DocumentDB.

Gerenciamento da compactação de documentos

Ativar a compactação de documentos em uma coleção

Ative a compactação de documentos ao criar uma coleção no Amazon DocumentDB usando o método db.createCollection():

db.createCollection( sample_collection,{ storageEngine : { documentDB: { compression:{enable: <true | false>} } } })

Ativar a compactação de documentos em um cluster

A compactação de documentos pode ser ativada por padrão para todas as novas coleções em um nível de cluster definindo o parâmetro de cluster default_collection_compression como “ativado”. Quando esse parâmetro é definido como “ativado”, as coleções recém-criadas no cluster terão a compactação ativada por padrão com um limite de compactação de 2 KB.

Compactar coleções existentes

Você também pode modificar as configurações de compactação de uma coleção existente usando a operação collMod e especificando a configuração storageEngine a seguir. Observe que a alteração feita usando esse comando se aplicará somente a documentos recém-inseridos/atualizados e a compactação em documentos inseridos anteriormente não será alterada.

db.runCommand({ collMod: "orders", storageEngine: { documentDB: {compression: {enable: <true | false>} } } })

Definir os limites de compactação

Por padrão, o limite de compactação para coleções compactadas é de 2032 bytes. Esse valor limite pode ser definido no comando createCollection ao criar uma nova coleção com a compactação ativada:

db.createCollection( sample_collection, { storageEngine : { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })

Você também pode modificar o limite de compactação de uma coleção compactada existente usando a operação collMod e especificando a seguinte configuração storageEngine:

db.runCommand({ collMod: "orders", storageEngine: { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })

Observe que o limite de compactação só pode ser definido com um valor entre 128 e 8000 bytes. Além disso, a opção enable precisa ser definida como “verdadeira” ao especificar o limite de compactação.

Monitoramento da compactação de documentos

É possível verificar se uma coleção está compactada e calcular sua taxa de compactação da seguinte maneira.

Visualize as estatísticas de compressão executando o comando db.printCollectionStats() ou db.collection.stats() no shell do mongo. A saída mostra o tamanho original e o tamanho compactado, que é possível comparar para analisar os ganhos de armazenamento da compactação de documentos. Neste exemplo, são mostradas as estatísticas de uma coleção chamada “sample_collection”: Um fator de escala de 1024*1024 é usado abaixo para gerar os valores size e storageSize em MB.

db.sample_collection.stats(1024*1024)

Veja a seguir um exemplo de saída do comando acima:

{ "ns" : "test.sample_collection", "count" : 1000000, "size" : 3906.3, "avgObjSize" : 4096, "storageSize" : 1953.1, compression:{"enabled" : true,"threshold" : 2032}, ... }
  • tamanho - O tamanho original da coleção de documentos.

  • avgoBjSize - O tamanho médio dos documentos antes da compactação arredondado para a primeira casa decimal. A unidade de medida é bytes.

  • StorageSize - O tamanho de armazenamento da coleção após a compactação. A unidade de medida é bytes.

  • habilitada - Indica se a compactação está habilitada ou desabilitada.

Para calcular a taxa de compressão real, divida o tamanho da coleção pelo tamanho do armazenamento (tamanho/StorageSize). Para o exemplo acima, o cálculo é 3906,3/1953.1, o que se traduz em uma taxa de compressão de 2:1.