美文网首页大数据程序员
Elasticsearch数据分析二三事

Elasticsearch数据分析二三事

作者: EEEvan | 来源:发表于2016-12-08 00:09 被阅读0次

    Elasticsearch,最初的设计是分布式搜索引擎。由于可以支持对海量数据的快速地进行筛选和统计,再加上可增量索引,伸缩性强,社区活跃,有商业公司维护等特性,很多人用来做实时的数据分析。例如要统计一批商品的销售数据,一群人的身份特征等等,以前都需要使用Hive,Impala等跑任务,现在数据可以所见即所得。

    实时的数据分析,和搜索不一样,会有以下的特点:

    1.查询速度不需要太快。不需要毫秒级别返回数据,有时候10秒内返回数据,也是可以接受的

    2.很难进行Cache。因为可能每次查询的数据不一样,查询的数据字段不一样

    3.负载变化大。因为有时候可能只是简单Trems查询,有时候是嵌套的AGG查询,很难控制对服务器的压力

    4.字段不可控。因为数据分析可能会随时加入新的数据集,会出现不同的字段,进行不同的操作

    5.需要灵活使用脚本。大量的数据分析需要进行多字段之间的运算来进行统计,这个时候脚本就必不可少

    6.需要更细的分词粒度。对文本进行数据分析,最重要的两步就是选择时间范围,筛选包含某些关键词的数据,进行AGG统计。使用分词算法,例如ansj之类的,可能导致部分关键词没有切出来无法筛选的问题

    正因为这些特点,我们可能会遇到以下问题(TODO):

    1.大量查询请求堆积

    2.FieldData占用过多内存

    3.不可用影响数据写入丢失

    4.深分页

    5.单个索引过大

    6.需要更新大量数据

    7.唯一字段修改

    8.表管理,版本管理

    9.分词问题

    10.对分布广的字段进行AGG查询

    11.复杂查询影响简单查询

    一些最佳实践(TODO)

    1.设置独立master节点

    2.滚动重启

    3.使用模板、动态字段

    4.使用别名

    5.使用父子文档

    6.必要的监控

    7.考虑中间件

    8.使用2.3版本

    9.如何备份

    10.提高入库稳定性

    11.硬件参考

    12.性能指标

    相关文章

      网友评论

        本文标题:Elasticsearch数据分析二三事

        本文链接:https://www.haomeiwen.com/subject/jufjmttx.html