Casa > P > Por Que Eu Não Deveria Usar Elasticsearch Como Meu Principal Datastore?

Por que eu não deveria usar ElasticSearch como meu principal datastore?

Como é o caso de todas as implementações de banco de dados, depende realmente de sua aplicação específica.

ElasticSearch é um ótimo mecanismo de busca de código aberto construído sobre o Apache Lucene. Suas características e atualizações permitem que ele aja como um datastore JSON sem esquema que pode ser acessado usando tanto consultas de busca quanto comandos CRUD de banco de dados regulares.

Aqui estão as principais "desvantagens" que eu vejo:

ul>li>Security - ElasticSearch não fornece nenhuma funcionalidade de autenticação ou controle de acesso. Há várias adições empresariais e de código aberto para habilitar isto.Transactions - Não há suporte para transações ou processamento na manipulação de dados. Existem certas APIs que podem habilitar soluções dependendo do seu caso de uso.Maturidade de ferramentas - ES ainda é relativamente novo e não teve tempo para desenvolver bibliotecas de clientes maduras e ferramentas de terceiros que podem tornar o desenvolvimento muito mais difícil.li>Large Computations - Comandos de busca de dados não são adequados para grandes varreduras de dados com computação avançada no lado do banco de dados.Data Availability - ES torna os dados disponíveis em "quase tempo real" o que pode exigir considerações adicionais em sua aplicação (ou seja: página de comentários onde um usuário adiciona um novo comentário, atualizando a página pode não mostrar o novo post porque o índice ainda está atualizando).Durability - Backups, confiabilidade e durabilidade não são tão prioritários como em outras lojas de dados. Tudo para indexação, armazenamento e (mais criticamente) coordenação de cluster é desenvolvido internamente e propenso a bugs e má arquitetura. Isto é provavelmente o mais importante se você're vai fazer do ES a loja principal, já que perder seus dados nunca é bom.

Se você pode lidar com esses problemas, então lá's certamente não há razão para que você't use ElasticSearch como sua loja de dados principal. Ele pode realmente diminuir a complexidade e melhorar o desempenho, não tendo que duplicar os seus dados dependendo do seu caso de uso. Como sempre, pondere os benefícios, faça algumas experiências e veja o que funciona melhor para você.

Atualizações ao longo dos anos:

>ul>2015: ElasticSearch percorreu um longo caminho e agora tem melhores características, métodos de backup e até mesmo indexação em tempo real. Entretanto, em abril de 2015, Kyle Kingsbury (Aphyr) fez outro teste Jepsen do ES v1.5 que ainda mostra problemas de durabilidade: Chama-me talvez: Elasticsearch 1.5.0. Este vídeo da palestra dotScale de Kyle em junho de 2015 mostra mais informações sobre a Elasticsearch a partir das 13:55
  • 2017: Outros 2 anos mostraram muito mais progresso para o ES com a versão 6.0 sendo muito capaz e resolvendo muitos dos problemas anteriores. Entretanto, ES ainda não é completamente confiável durante as operações em cluster e, portanto, a durabilidade dos dados continua sendo o maior problema contra o fato de ser um datastore primário. Elastic, a empresa matriz, agora tem uma oferta gerenciada em AWS e GCP, então eu recomendo usar isso para obter segurança e escalabilidade em vez de executá-lo você mesmo.>li>2019: Elastic versão 7 agora tem um sistema totalmente novo de descoberta e coordenação de clusters (chamado Zen2). Infelizmente ainda é desenvolvido internamente, mas desta vez tem modelos formais para validar o design. O sistema de armazenamento ainda é o mesmo de antes com pequenas atualizações, portanto a durabilidade ainda deve ser testada com uma política clara de backup, mas o estado geral melhorou maciçamente em comparação com anos atrás.

De Davison

Em Ark: Survival Evolved, que nível de fortitude você precisa para ser imune a todos os efeitos de calor/frio? :: Qual é a verdade mais triste sobre as pessoas inteligentes?