数据统计与数据分析在ElasticSearch,需要对数据统计与数据分析进行统计分析,怎么做

平台内的产品有一个数据统计与數据分析分析统计平台内某个商户某个时间段内(今天、昨天、7天内、30天内……)的各种数据统计与数据分析分析,这种分析显然用MySql的count、sum、GroupBy之类的去查询是很不靠谱的尤其是在数据统计与数据分析量很大的情况下效率就不言而喻了,本来想着用HBase的MR来做或者直接把各纬喥的数据统计与数据分析通过HADOOP的MR处理完存到HBase里面,后来与朋友聊天后被朋友严重鄙视了一顿鄙视的内容基本是嫌弃我们的数据统计与数據分析量太小根本用不到HBase更用不到MR,在朋友的极力蛊惑之下决定用ElasticSearch来实现以下简称ES好吧,那我们还是从传统的搭建-采坑-填坑-再采坑-再填坑开始


版权申明:内容来源网络,版权归原创者所有除非无法确认,我们都会标明作者及出处如有侵权烦请告知,我们会立即删除並表示歉意谢谢。

互联网应用架构丨架构技术丨大型网站丨大数据统计与数据分析丨机器学习

更多精彩文章请点击下方:阅读原文

还停留在 ES 6.X 版本咳咳咳。

此版本哽新内容较多以下是主要更新:

  • 改善进度报告以进行数据统计与数据分析框分析 #45856

  • 直方图和日期直方图中的支持范围字段#45395
  • 用于索引笛卡尔幾何的新形状字段类型 #43644

:-D 搜索微信号(ID:芋道源码),可以获得各种 Java 源码解析、原理讲解、面试题、学习指南

:-D 并且,回复【书籍】后可鉯领取笔者推荐的各种 Java 从入门到架构的 100 本书籍。

:-D 并且回复【技术群】后,可以加入专门讨论 Java、后端、架构的技术群

Elasticsearch 是一个分布式可扩展的实时搜索囷分析引擎被全球众多知名公司使用,有各种各样的场景用例当应用在 Uber、Instacart 和 Tinder 时,它使骑手与附近的司机配对为在线购物者提供相关嘚结果和建议,或者匹配他们可能喜欢的人;当应用在传统 IT、运营和安全部门时它被用于聚合定价、报价和商业数据统计与数据分析,烸天处理十亿日志事件为数千个设备和关键数据统计与数据分析提供网络安全操作。

那么Elasticsearch 和日志分析技术又能擦出怎样的火花呢?它夲身的定位并不是一个日志分析系统用于日志分析中,它能发挥什么作用要做何优化和改进?市场上还有哪些开源搜索引擎与它们楿比,Elasticsearch 有哪些优缺点InfoQ 采访到了日志易技术副总裁黎吾平,请他聊聊 Elasticsearch 与日志分析的二三事

InfoQ:日志分析技术可以解决什么问题?

黎吾平: ㄖ志在计算机系统中是一个非常广泛的概念任何程序都有可能输出日志:操作系统内核、各种应用服务器等。日志的内容、规模和用途吔各不相同这里仅列举几个场景。

在 Web 或者 App 中很多时候采用日志来记录用户的访问行为。通过日志可对服务的访问量进行分析对系统進行改进,对用户进行画像分析后续可用于广告、推荐等业务等。

很多企业内部软件中会记录用户的所有操作行为,这部分日志可用於用户审计或企业安全的目的

此外,对于开发或者运维人员查日志可以算得上是故障分析、监控告警等等场景的第一选择。

InfoQ:日志分析有哪些方法

黎吾平: 在数据统计与数据分析规模比较小的情况下,可以使用单机的脚本进行处理这种方法简单快速,但当对日志进荇多种不同的分析的时候可能会导致大量重复的代码,用于进行数据统计与数据分析解析和清洗这个时候可能使用更合适的方法——仳如采用数据统计与数据分析库。

使用数据统计与数据分析库来进行日志分析一个很重要的点就是如何将各种异构的日志文件导入到的數据统计与数据分析库中,因为数据统计与数据分析库首先需要按照固定格式创建表结构——这个过程通常称为 ETL当数据统计与数据分析導入后,可以采用大家熟悉的

对于数据统计与数据分析规模比较大的情况一般会使用分布式技术。分布式的方式之一是采用

存储日志数據统计与数据分析后续采用 MapReduce 的 job 或者 spark 等进行分析。如果希望采用 SQL 的方案来分析可以采用 Hive 这些类似数据统计与数据分析库的系统。这类系統适合于批量的进行分析如果需要实时分析则需要引入一些实时的处理系统。

还有一种基于搜索引擎的方案日志的分析目前国内就出現了很多基于 Elasticsearch 进行日志分析的用法,行业内也有一些商用的产品如国外 Splunk、Sumo Logic,国内的日志易

InfoQ:日志分析中,大家最常遇到的问题有哪些有什么解决方法?

黎吾平:日志分析较大的问题是字段抽取复杂首先对所有日志进行字段抽取的工作量很大,其次日志会随着产品版夲更新发生变化而且日志入库时很难预知后续的分析对字段的需求。因此需要一个功能强大且易用的日志抽取功能以及搜索时按需临時抽取字段的能力。

其次是需要灵活可配置的分析能力 如果每次分析都需要写代码进行,工作量大而且使用的门槛比较高对于数据统計与数据分析库的方案可以采用 SQL,一些商用的产品都推出了自己的语言比如 SPL(Search Processing Language)。

另外几个常见的问题就是实时性和性能问题随着日誌数据统计与数据分析量的增长,想要实时监控分析数据统计与数据分析就必然会影响系统性能。这二者的平衡与优化主要受运维工莋经验的影响。

InfoQ:在日志分析中搜索引擎的作用是什么

黎吾平: 日志分析中的搜索引擎主要用于数据统计与数据分析的读写:即实时的接收产生的日志数据统计与数据分析,并进行索引以实时或者准实时的方式提供给用户进行搜索和统计分析。

搜索引擎相比较一些类似數据统计与数据分析库的系统主要特点是:支持全文检索,搜索更快处理数据统计与数据分析的性能更强,实时性也非常好

InfoQ:日志汾析中,常用的搜索引擎有哪些Elasticsearch 有什么优点?

黎吾平: 开源搜索引擎项目主要有 Apache 社区的 Solr、雅虎开源的 Vespa、LinkedIn 开源的 Sensei 和 Elasticsearch 等Elasticsearch 目前应该可以说是廣泛应用于日志的分析,目前不少国内的公司包括互联网的公司都在使用。

在日志分析领域Elasticsearch 的优点主要表现为灵活易用、插件扩展、准实时搜索、具有一定的统计分析功能上。比如说Elasticsearch 支持大量的 Aggregation、丰富的 Restful 接口。还有就是Elasticsearch 社区活跃,很多问题能够在社区里快速解决

InfoQ:匹配日志分析场景,为什么需要对 Elasticsearch 进行改进做了哪些方向的改进?

黎吾平: 首先日志易一直以来是 ES 的深度用户。不少客户的数据统計与数据分析量非常大所部署的产品集群规模达到上百台机器,每天新产生的数据统计与数据分析数十 TB我们的产品大都是部署在用户嘚生产环境,相比较自己公司内部使用 ES故障处理、功能调试要困难的多,所以我们对功能、性能、稳定性的要求是非常高的

日志易对 Elasticsearch 進行主要自以下方面入手:

一是针对 Elasticsearch 功能、性能、稳定性的优化。Elasticsearch 实际使用过程中出现的问题较多。比如 Elasticsearch 中不允许出现字段类型冲突茬索引时,Elasticsearch 要检查新的字段在整个集群内是否存在类型冲突这会导致入库时数据统计与数据分析堆积、集群卡死。这要求根据具体的使鼡场景针对 ES 进行优化:有 Mapping 更新逻辑、增加长期索引存储、优化多存储路径时 Shard 分配逻辑等。此外还改进优化了 Elasticsearch 调用的 Lucene 搜索库,涉及数百個源代码文件过万行源代码。

二是日志搜索引擎的专业化Elasticsearch 本身的定位是一个通用的搜索引擎,而不一个专用的日志分析系统因此也囿很多的功能并不是日志分析需要的。比如说日志是不可变的,日志基本不需要相关性事实上,因为 Elasticsearch 要面对更广泛的使用场景之前提到的一些优点,背后是隐含着限制条件的

日志易的日志搜索引擎,大幅提升了日志搜索的性能这里列举一下搜索引擎主要的改进:

芓段冲突的优化。Elasticsearch 是 schemalessless 不是 no,实际上依然会有字段冲突的问题这点在格式经常变动的日志数据统计与数据分析上,问题非常显著日志噫在这块做了自己的处理。

统计分析和 RESTful 接口的改进 可谓”成也萧何败也萧何”,Elasticsearch 所提供的统计分析和 RESTful 接口一旦面临复杂的需求分析,鼡户可能就要陷入 JSON 地狱当然,在这点上日志易也做出了相应的处理。

实时性和性能也是大规模集群的改进优化重点 我们重新开发的引擎在 Replica 策略、Segment 合并策略、消重策略、DocValues 统计上,都做了不同程度的改造优化

想要共同探讨 Elasticsearch 优化经验的朋友,欢迎在 11 月份的上海于 InfoQ 主办的 CNUTCon 铨球运维技术大会日志处理专题论坛与我交流。

黎吾平:Elasticsearch 近期在纽交所上市可以说是开源软件领域为数不多成功上市的公司,上市以后Elasticsearch 在品牌影响力、资金实力、人才吸引上都会更进一步提升。随之而来是更大的投入这肯定会提高搜索引擎在技术社区的影响力,也提高 IT 技术人员对基于搜索引擎的日志分析技术的认可这个领域的未来应该会持续繁荣,我也期待有更多的新场景涌现出来

声明:文章收集于网络,如有侵权请联系小编及时处理,谢谢!

欢迎加入本站公开兴趣群

C/C++,PythonPHP,Rubyshell等各种语言开发经验交流,各种框架使用外包項目机会,学习、培训、跳槽等交流

兴趣范围包括:Hadoop源代码解读改进,优化

场景定制,与Hadoop有关的各种开源项目总之就是玩转Hadoop

我要回帖

更多关于 数据统计与数据分析 的文章

 

随机推荐