Quais são alguns casos de uso para o Elasticsearch versus consultas sql padrão? [fechadas]

125

Estou começando a usar o Elasticsearch e um dos principais casos de uso que já vi é sua escalabilidade com pesquisas em grandes conjuntos de dados, mas além disso, quando você deseja usá-lo para criar consultas SQL com um RDBMS tradicional?

James Drinkard
fonte
3
Editando Perguntas para melhorá-los (por exemplo, a clarificação, acrescentando informações adicionais, etc.) é incentivada . No entanto, editar uma pergunta para transformá-la em uma pergunta diferente, o que resulta na invalidação de uma ou mais respostas, é contra a política no estouro de pilha. Sua edição aqui fez isso. A política é que outros usuários com privilégios de edição revertam proativamente essas alterações, o que eu fiz aqui. Se sua nova pergunta estiver no tópico, você deve fazer uma nova pergunta , talvez com um link para esta pergunta para um contexto adicional.
Makyen
Entendido. Bem, a intenção estava certa, mas não a execução.
James Drinkard 16/03

Respostas:

78

Existem dois casos de uso principais do Elasticsearch:

  1. Pesquisa de texto

Você deseja o Elasticsearch quando faz muita pesquisa de texto, em que os bancos de dados RDBMS tradicionais não apresentam um desempenho muito bom (configuração ruim, funciona como uma caixa preta, desempenho ruim). O Elasticsearch é altamente personalizável, extensível através de plugins. Você pode criar uma pesquisa robusta sem muito conhecimento rapidamente.

  1. Registro e análise

Outro caso extremo é que muitas pessoas usam o Elasticsearch para armazenar logs de várias fontes (para centralizá-los), para que possam analisá-los e fazer sentido com isso. Nesse caso, Kibana se torna útil. Ele permite que você se conecte ao cluster Elasticsearch e crie visualizações imediatamente. Por exemplo, o Loggly é construído usando o Elasticsearch e o Kibana.

Lembre-se de que você não gostaria de usar o Elasticsearch como seu armazenamento de dados principal. Razões aqui: Quão confiável é o ElasticSearch como um armazenamento de dados primário em relação a fatores como perda de gravação, disponibilidade de dados

Atualizar

Eu senti que a segunda parte não é mais nervosa, é realmente o que a Elastic como empresa tem feito muito bem no ano passado. Com o movimento atual do DevOps, os pipelines de CI / CD, aumentando a quantidade de métricas de várias fontes, o ELK se tornou uma opção padrão para o monitoramento da infraestrutura, não é mais apenas um mecanismo de pesquisa de texto RESTful distribuído. Tem um incrível conjunto de produtos:

  • Logstash (toneladas de entradas de dados)
  • Batidas
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • Gráfico
    • Timelion
  • X-Pack (premium)
    • Alertas
    • Comunicando
    • Segurança
    • Machine Learning
    • Métricas cruzadas do data center

Um ecossistema, construído pela comunidade, está crescendo em torno da pilha ELK que expande os recursos atuais, alguns deles dignos de menção:

  • ElastAlert
  • Search Guard
Evaldas Buinauskas
fonte
Por que restringir o Elastic Search não está sendo usado como um mecanismo de consulta para sistemas padrão, como um pos ou erp, como eu não entendo as empresas, muita energia foi gasta apenas para transformar os dados do sql para a pesquisa elástica para análise.
pannu
Nas versões mais antigas, não era recomendado, agora não sei.
Evaldas Buinauskas 28/11
Você disse que, devido à configuração deficiente, o RDBMS não funciona muito bem. Significa que, com uma boa configuração, você pode executar, assim como com o EleasticSearch, em relação à pesquisa de texto (pesquisa difusa)?
Legends
2
@ Legendas eu realmente quis dizer opções de configuração pobres. Minha própria experiência é limitada à Pesquisa de texto completo do MSSQL e a quantidade de configurações no MSSQL não pode ser comparada ao Elasticsearch. A Pesquisa de texto no RDBMS é um recurso, enquanto no Elasticsearch é a essência.
Evaldas Buinauskas
Eu estava pesquisando bastante na web, mas não encontrei nada concreto. Quantos dados (apenas aprox.) O aplicativo deve ter para que possamos pensar em mudar para o ElasticSerach ?, pois a manutenção de sistemas distribuídos é complexa. Por exemplo, pesquisando nos comentários textos bem indexados no mongodb. (Não estou falando de recursos avançados do ES, pesquisa de texto puro)
Iván Sánchez
27

Para adicionar a outra resposta, o log ainda é um caso de uso importante, além de pesquisas, mas agora métricas e análises estão se tornando mais importantes.

Acredito que este post resume as mudanças no mercado que está gerando novos casos de uso para Big Data. Tudo o que você realmente precisa saber sobre bancos de dados de código aberto

Com o advento da Web 2.0, as páginas estáticas da Web se tornaram dinâmicas e as mídias sociais estão à nossa volta. Todo mundo está twittando, postando, blogando, vlogging, compartilhando fotos, conversando e comentando. A Internet das Coisas (IoT) está emergindo - uma rede que cresce rapidamente de dispositivos conectados que coletam e trocam dados, como sensores e dispositivos inteligentes. Existem alguns ótimos exemplos aqui.

No total, isso gera enormes quantidades de novos dados que as empresas desejam absorver e usar para permanecer à frente, fornecendo recursos como recomendações de produtos e uma melhor experiência do cliente. Os dados podem ser analisados ​​em busca de padrões para aplicativos como detecção de fraude e análise de comportamento. Muitos dos novos dados não são estruturados, o que significa que eles não podem ser armazenados ordenadamente em um banco de dados tabular.

Imagine tentar criar um banco de dados para armazenar dados sobre suas compras - o que você gosta, com que frequência você o compra, se prefere leite ou creme com seu café. São necessários novos tipos de bancos de dados para armazenar os novos dados, e eles precisam ser não relacionais e, idealmente, de baixo custo. Tocar alguns sinos? Não é relacional como no NoSQL e de baixo custo como no código aberto.

Um dos arquitetos da Elasticsearch com quem falei disse que 80% dos dados com os quais a Elasticsearch trabalha nas empresas não são estruturados, enquanto 20% são estruturados. São os dados não estruturados que as empresas procuram para descobrir padrões de dados raros ou incomuns. Eles também estão usando o Elasticsearch para monitorar padrões de dados. Por exemplo, um grande varejista está fazendo rastreamento em tempo real com o Elasticsearch para garantir suprimentos de dinheiro adequados nas lojas para que as pessoas façam cheques nos dias de pagamento.

Na minha própria experiência com nosso caso de uso de pesquisa, não usamos apenas pesquisas difusas, mas evoluímos para pesquisas automáticas e rápidas. Pelo que vi, depois de começar a trabalhar com o Elasticsearch, você começa a evoluir para outros casos de uso que complementam o que você já possui. Agora que estabelecemos o Elasticsearch como um mecanismo de pesquisa confuso em nossa empresa, agora temos outras equipes analisando análises e métricas para registro.

Aqui estão alguns recursos adicionais que são mais detalhados sobre este tópico:

James Drinkard
fonte