Usando visualizações no Amazon DocumentDB 8.0 - 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á.

Usando visualizações no Amazon DocumentDB 8.0

  • O Amazon DocumentDB 8.0 agora oferece suporte a visualizações. As visualizações funcionam como coleções virtuais que apresentam dados com base em operações de agregação especificadas. Ao criar uma exibição, você define uma consulta que transforma dados de uma ou mais coleções de origem. O Amazon DocumentDB 8.0 executa essa consulta toda vez que a visualização é acessada, sem consumir recursos adicionais de armazenamento. Diferentemente das coleções padrão, as visualizações no Amazon DocumentDB 8.0 não armazenam documentos em disco, o que as torna uma solução eficiente para apresentar dados transformados ou filtrados aos aplicativos. Para criar uma visualização no Amazon DocumentDB, você pode usar o comando CreateView ou o método auxiliar db.CreateView ():

    db.createView("viewName","sourceCollection", [ { $match: { status: "active" } }, { $project: { _id: 1, name: 1, email: 1 } } ] )

    Isso cria uma visualização chamada “ViewName” com base em “SourceCollection” que inclui apenas documentos e projetos ativos, somente os campos _id, nome e e-mail. As visualizações no Amazon DocumentDB são somente para leitura. As operações de gravação nas visualizações retornarão um erro. Para um desempenho ideal com grandes conjuntos de dados, você pode estruturar seus pipelines de visualização para maximizar a eficiência. Para pipelines de agregação complexos, é recomendável usar o estágio $match como o primeiro estágio ou no início do pipeline para reduzir o número de documentos que os estágios subsequentes precisam processar, melhorando assim o desempenho da consulta.

Práticas recomendadas

Algumas das melhores práticas a serem seguidas com as visualizações estão listadas abaixo.

  • Filtrar antecipadamente: use os estágios $match no início dos pipelines de visualização para reduzir a quantidade de dados processados.

  • Evite agregações complexas: para visualizações acessadas com frequência com agregações complexas, considere criar uma coleção separada com resultados pré-computados que são atualizados periodicamente.

  • Planejamento de indexação: garanta que os campos usados nos pipelines de visualização, especialmente nas operações $match e $sort, estejam devidamente indexados na coleção de origem.

  • Otimização de consultas: use o comando explain para entender como suas consultas de visualização são executadas e otimizá-las adequadamente.

  • Alternativas para visualizações: dadas as diferenças funcionais entre as visualizações do Amazon DocumentDB e do MongoDB, considere usar coleções regulares com atualizações programadas como alternativa às visualizações quando encontrar limitações.

Compatibilidade do operador agregador

O Amazon DocumentDB oferece suporte a muitos operadores de agregação em definições de visualização, ao mesmo tempo em que continua expandindo a compatibilidade. Ao usar visualizações, concentre-se nos seguintes operadores compatíveis:

  • $match para filtrar documentos

  • $project para seleção e transformação de campo

  • $addFields para adicionar campos computados

  • $sort para resultados de pedidos

  • $limit e $skip para paginação

Alguns operadores especializados, como $currentOp, $replaceRoot e $geoNear, atualmente trabalham em consultas de agregação direta em vez de definições de visualização.

Aproveitando índices e visualizações

As visualizações no Amazon DocumentDB 8.0 usam os índices da coleção subjacente. Como resultado, você não pode criar, eliminar ou reconstruir índices diretamente em uma exibição. No entanto, índices bem projetados na coleção de origem podem melhorar significativamente o desempenho da consulta de visualização. Abaixo estão algumas etapas para otimizar o desempenho da consulta nas visualizações:

  • Certifique-se de que existam índices apropriados nos campos de coleção de origem usados no pipeline da visualização, especialmente nas operações $match e $sort

  • Use o método explain () para analisar os planos de execução de consultas e verificar o uso do índice. Por exemplo, db.viewName.find({...}).explain()