它可以处理海量数据,但它是怎么存储这些数据的?它的查询性能为什么这么快?它的数据高可用是怎么实现的?
发现查询性能差,怎么定位问题?怎么优化?
由于数据的权限分级很多,导致建模困难,不能像 log 一样导入就完事。该如何和用户权限绑定的数据进行建模?
公司大量使用 ES,但我只会安装搭建增删改查,怎么迅速破?
如何定义海量数据,或者说在什么样的数据规模的情况下,使用 ES 比较合适。对比了一下 Redis、MongoDB、Hbase,发现 ES 支持的数据量规模中等,写入的性能又较差,那为什么还要用 ES?
ES 父子关系查询,有比较实践化的案例么?
怎么进行倒排索引的设计?
......
诸如此类的问题不仅你有,我在最开始接手工作时也是抱着满肚子疑问,一边从最基础的搭环境开始,一边捧着那本《ElasticSearch 权威指南》学习怎么快速上手。
那时候视频课我也没少看,记得笔记还在家里扔着了。头天晚上学的踌躇满志,第二天转身开工干活时就发现根本无从下手,不是说那些原理我不懂,也不是说老师讲的不好,而是我所学的知识在实际业务场景中并不能找到一个快速切入点,说白了就比如我天天看财富经却依然很穷一个道理。
我到现在还记得 Leader 让我做 ES 的时候我没有任何准备,却直接让我用 ES 去完成某个需求。比如说去做一个指标监控的专题图,能够实时的了解目前指标的状态,是否正常?是否存在异常值?我感觉很困惑不知道该如何下手,我甚至不知道该去 ES 官方文档查询什么资料,怎么去分析指标?
官网的手册也只是告诉我某个功能有什么用,但是没有具体到应用场景,而且我也没有必要,也没有那么多时间去精通 ES,因为我只是想把它当做一个工具,能够快速的完成工作任务不拖后腿。上网查类似问题却发现并没有详细的案例介绍,通常都是生硬的告诉我这个是什么......
不要问我为什么 ES 工作 2 年却拥有 3 年经验,那多出来的经验值都是靠加班给熬出来的。
如果那时候有一个能以实际工作业务所需的技能为主,辅以详细的案例开发进行讲解的教程,我想我的头发和脂肪不至于如此成反比。
也正是因为我已经过了爬坑的那段“自力更生”时期,所以我想将这么多年的经验值总结成一个更实用的专栏,它能够告诉你该怎样结合具体需求来应用 ES,能够让你快速分析在不同的场景需要下该如何使用 ES,它不是一个知识零散不系统的功能百科大全,而是在不断解决需求问题的过程中,来讲解该如何学习 ES。