Abordagem 1(A): Criando um único banco de dados para tudo. (Com coleção única)
Prós:
- Menos manutenção:backup, criação de usuários de banco de dados, restauração etc
Contras:
- Você pode ver bloqueio de nível de banco de dados para criar índices em banco de dados grande
- Para realizar operações em dados específicos do sensor, você precisa adicionar índices adicionais para buscar apenas a coleção específica do sensor
- Você é obrigado a não criar mais de 64 índices em uma única coleção. Embora pareça uma estratégia de indexação ruim.
Abordagem 1(B): Criando um único banco de dados para tudo. (Com 1 coleção para cada sensor)
Prós:
- Menos manutenção:backup, criação de usuários de banco de dados, restauração etc
- Minimiza a necessidade de criar índices para identificar dados específicos do sensor de uma coleção monolítica inteira
- Cada consulta específica do sensor será direcionada apenas para uma coleção específica. Não requer puxar um grande conjunto de trabalho para a memória em comparação com uma única coleção grande.
- Construir índice em uma coleção relativamente menor é mais viável do que em uma coleção grande em um único banco de dados
Contras:
- Você pode acabar criando muitos índices. (Soma do número total de índices em todas as coleções).
- Mais manutenção é necessária para um grande número de índices.
- WiredTiger cria 1 arquivo para uma coleção e 1 para índice internamente. Se o seu caso de uso cresce com um grande número de sensores. Você pode acabar usando o limite de arquivo aberto de 64 K.
Em termos de desempenho, importa se eu particionar os dados por cada sensor ou por métricas?
- Isso depende dos padrões de acesso esperados do seu aplicativo de análise.
Em termos de desempenho, devo fazer uma coleção apenas para as informações dos sensores e, em seguida, coleções para dados ou apenas mesclar as duas na mesma coleção?
-
A criação de uma coleção de metadados e dados de sensores pode ser necessária. Isso minimizará a duplicação de metadados de sensor em todos os dados de sensor coletados.
-
Você pode gostar de ler Postagem do blog Williams aqui em projetar este padrão.
Como sempre, é melhor projetar um esquema de amostra e testar suas consultas em seu ambiente de teste.