我刚刚开始使用Elasticsearch,发现它的主要用途之一是在大数据集上进行搜索时具有可扩展性,但除此之外,在什么情况下您想要使用它,而不仅仅是使用传统关系型数据库管理系统创建SQL查询?
我刚刚开始使用Elasticsearch,发现它的主要用途之一是在大数据集上进行搜索时具有可扩展性,但除此之外,在什么情况下您想要使用它,而不仅仅是使用传统关系型数据库管理系统创建SQL查询?
有两个主要的 Elasticsearch 使用案例:
当传统的 RDBMS 数据库性能不佳(配置差、充当黑匣子、性能不佳)时,您需要 Elasticsearch 来进行大量文本搜索。Elasticsearch 是高度可定制的,可通过插件扩展。您可以快速构建强大的搜索功能而无需过多的知识。
另一个使用 Elasticsearch 的边缘案例是许多人使用 Elasticsearch 存储来自各种来源的日志(以将其集中化),以便他们可以分析并理解这些日志。在这种情况下,Kibana 显得非常方便。它让您连接到 Elasticsearch 集群并立即创建可视化图形。例如,Loggly 是使用 Elasticsearch 和 Kibana 构建的。
请记住,您不希望将 Elasticsearch 用作主要数据存储。原因在此:ElasticSearch 作为主要数据存储的可靠性与写入丢失、数据可用性等因素有关
我觉得第二部分不再是边缘案例,实际上 Elastic 公司在过去一年中做得非常好。随着当前的 DevOps 运动、CI/CD 管道、来自各种来源的指标数量不断增加,ELK 成为基础设施监视的事实标准,它不再只是一个分布式 RESTful 文本搜索引擎。它有一组惊人的产品:
一个由社区构建的生态系统正在围绕ELK堆栈不断发展,其中一些值得一提的功能有:
补充上面的回答,日志记录仍然是主要用例之一,加上搜索,但现在指标和分析变得更加重要。
我认为这篇文章总结了市场上推动大数据新用例的变化。 关于开源数据库,你真正需要知道的一切
随着Web 2.0的出现,静态网页变得动态化, 社交媒体已经无处不在。每个人都在发推文、发布信息、博客、视频博客、分享照片、聊天和评论。物联网(IoT)正在崛起——一个快速增长的连接设备网络,这些设备收集和交换数据,例如传感器和智能设备。这里有一些很好的例子。
总而言之, 这产生了大量新数据,企业希望吸收并使用这些数据以保持领先地位,提供诸如产品推荐和更好的客户体验等功能。这些数据可以进行分析,寻找模式,应用于欺诈检测和行为分析等应用程序。许多新数据是非结构化的,这意味着它不能整齐地存储在表格数据库中。
想象一下设计一个数据库来存储你的杂货购物数据,包括你喜欢什么、你有多频繁地购买它、你是否更喜欢牛奶还是奶油。需要新类型的数据库来存储新数据,并且它们需要是非关系型的,最好是低成本的。有点耳熟能详了吧?非关系型的就是NoSQL,低成本的就是开源。
我与Elasticsearch架构师之一交谈时发现,公司中80%的Elasticsearch处理的数据是非结构化的,而20%是结构化的。 正是非结构化数据让公司寻找罕见或不寻常的数据模式。 他们还在使用Elasticsearch监测数据模式。例如,主要零售商正在使用Elasticsearch进行实时跟踪,以确保在支付日为人们提供适当的现金支持。
根据我们的搜索使用案例经验,我们不仅使用模糊搜索,而且还演变成了自动完成和快速搜索。从我看到的情况来看,一旦您开始使用Elasticsearch,您就会演变成其他补充现有功能的用例。现在,我们已经将Elasticsearch建立为公司的模糊搜索引擎,我们现在有其他团队正在研究日志分析和指标。
以下是一些更深入探讨此主题的资源: