栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【ElasticSearch】ElasticSearch架构选型指南

【ElasticSearch】ElasticSearch架构选型指南

0、前言

一说到Elasticsearch很多人的印象就是“搜索引擎”,但是它实际的作用不仅仅搜索引擎,还有很多其他应用场景,本文就总结它的常见的使用场景和不适合的使用场景,来宏观综合了解ElasticSearch如何正确使用

一、常用的场景 1.1 搜索服务 1.1.1 典型场景
  • 仪表盘搜索

  • 电子商务

  • 手机应用搜索

  • 地理位置搜索

1.1.2 主要特性
  • 高性能:高并发、低延迟的搜索体验

  • 强相关:自定义打分、排序机制

  • 高可用:机房、机架感知,异地容灾

1.1.3 相关公司

腾讯健康码、腾讯文档全文检索、携程、拼多多、蘑菇街、滴滴、今日头条、贝壳找房…….

1.2 日志实时分析 1.2.1 典型场景
  • 业务日志:用户行为日志、应用日志

  • 状态日志:慢查询、异常探测

  • 系统日志:debug、info、warn、error、fatal

1.2.2 主要特性
  • 实时性:从日志产生到可访问,秒级

  • 全文搜索:基于倒排索引,支持灵活的搜索分析

  • 交互式分析:万亿级日志,搜索秒级响应

1.2.3 相关公司

日志易等

1.3  商业智能BI 1.3.1 典型场景

电子商务、移动应用、广告媒体等业务都需要借助数据分析和数据挖掘来辅助商业决策,而规模庞大的业务数据对数据的统计分析造成了很大的挑战。

1.3.2 主要特性
  • ES 拥有结构化查询的能力,支持复杂的过滤和聚合统计功能。

  • 帮助客户对海量数据进行高效地个性化统计分析、发现问题与机会、辅助商业决策,让数据产生真正的价值。

1.3.3 相关公司

睿思BI 等。

 

二、不适合用的场景 2.1 不支持事务

不支持:ACID(在写入或更新数据的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability))。

如果要有强一致场景,如:银行业务,还得采购 Oracle 等大型商业数据库。

据我不完整了解:银行使用 Elasticsearch 一般和系统日志统一规范、存储和检索、自动化运维相关,而非存储核心金融交易数据。

2.2 多表关联有限

因为习惯了:Mysql 多表通过外键关联检索,不免会将 Mysql 思维平移到 Elasticsearch。

常见的实战多表关联问题如下:“ 一般大in的场景有好的解决方案么?

  • 比如:连锁 一个人管理了1000家门店 要去查自己管辖的商品。

  • 比如:企微 一个人维护了 1000个员工 要去查自己管辖的员工。”

Elasticsearch 多表关联的解决方案一般概括如下:

  • 宽表:适合增加冗余存储、空间换时间场景。

  • nested 类型:适合子文档偶尔更新、查询频繁场景。

  • Join 父子文档类型:适合子文档频繁更新频繁场景。

正如官方文档所说:

“In particular, joins should be avoided. nested can make queries several times slower and parent-child relations can make queries hundreds of times slower.  ”

官方在数据建模部分强调:“应该避免关联。嵌套可以使查询速度慢几倍,父子关系可以使查询速度慢数百倍。因此,若能使用宽表,可以明显加速。”

2.3 不支持准实时

refresh_interval 刷新频率决定近实时而非准实时。

ES 是一个实时的分布式搜索分析引擎,目前很多用户对 ES 的印象还是准实时,实际上在6.8版本之后官方文档已经将 near real-time 改为了 real-time。

我们直接看一下6.8版本——7.6版本官方文档的说法:

"Elasticsearch provides real-time search and analytics for all types of data."

ES 在写入完毕刷新之前,是可以通过 getById 的方式实时获取文档的,只是在刷新之前 FST 还没有构建,还不能提供搜索的能力。

但是,7.7版本——7.13版本(截止:2021-06-17最新版本)又改成:“Elasticsearch provides near real-time search and analytics for all types of data. ”

再一次改回原来的说法,说明:官方文档严谨性拿捏的很到位!

近实时而非准实时说法没毛病。

2.4 高阶功能收费

比如:机器学习、Kerberos 安全认证、JDBC 客户端、ODBC客户端、Graph 探索、威胁猎捕等高阶功能。

这是主流开源上市公司的收费模式,MongoDB、Confluent、Elastic 皆是如此。

参考资料:微信公众号(铭毅天井下ElasticSearch)-《Elasticsearch架构选型指南——不止是搜索引擎,还有......》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336013.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号