写点什么

Elastic Stack 发布新版本支持机器学习

  • 2017-05-08
  • 本文字数:2199 字

    阅读完需:约 7 分钟

Elastic 今日在其官方博客,发布了最新版本的 Elastic Stack 5.4.0 Beta,其中最重要的新特性是对机器学习的支持。

机器学习正在渗透到各行各业,搜索领域也不例外。Elastic 今天发布的机器学习新特性,并非一蹴而就,而是源于去年的一桩收购案——2016 年 9 月 15 日, Elastic 宣布收购 Perlert 。Perlert 是一家创立于 2008 年的用户行为分析技术提供商,在无监督机器学习技术方面积累了丰富的实践经验。Elastic 在该文章中称经过 7 个月的努力,成功把 Perlert 的无监督机器学习技术集成到 Elastic Stack,并作为 X-Pack 的一员,在最新的 5.4.0 Beta 版本中发布。

下文翻译自 Elastic 官方博客的文章 Introducing Machine Learning for the Elastic Stack ,原作者为 Steve Dodson ,翻译已获得授权。

博客全文:

我们很荣幸地在今天发布首个支持机器学习特性的 Elastic Stack 版本,该特性位于 X-Pack 中。加入 Elastic 就如登上宇宙飞船(译者注:指 2016 年 9 月 Perlert 公司加入 Elastic),经过 7 个月的努力工作,我们激动地宣布 Perlert 机器学习技术现已全部集成到 Elastic Stack,并真诚地期待用户的反馈意见。

注:也别太过激动,请留意该功能尚处于 5.4.0 版本的 Beta 阶段。

关于机器学习

我们的目标在于,让用户通过工具从自己 Elasticsearch 数据中获取价值和洞察力,同时我们认为机器学习对于 Elasticsearch 中的搜索和分析能力来说是一个很自然的延伸。比如你可以在 Elasticsearch 的海量数据中实时查询用户“steve”的交易记录,或者通过聚合和可视化功能来展示销量 top10 的产品,或者交易量随时间的变化趋势。而现在,借助机器学习你能更进一步来分析,比如“有哪项服务的行为改变了吗?”或者“我们的主机上有异常进程在运行吗?”这些问题,要求使用机器学习技术所需的数据,来自动构建出主机或服务的行为模型。

但机器学习目前在软件业是过热概念之一,因为根本上来讲,就是一系列用于数据驱动预测、决策支持以及建模的算法和方法。因此消除这些噪声,来介绍下我们所做的具体事情显得更为重要。

时间序列数据的异常检测

今天发布的 X-Pack 机器学习特性,旨在通过无监督机器学习提供“时间序列数据异常检测”的能力。

未来我们计划增加更多的机器学习功能,但目前专注于,针对在 Elasticsearch 中存储时间序列数据,比如日志文件、应用和性能指标数据、网络流量或者金融 / 交易数据等的用户,提供附加价值。

示例 1——关键性能指标异常波动的自动告警

这项技术的最直接应用是,识别一个度量值或事件比率何时偏离了常规行为模式。比如,服务的响应时间是否显著增加?或者预期的网站访问用户数是否与往日同一时段明显不同?这类分析通常都会用到规则、阈值或简单统计模型。遗憾的是,这些简单方法对于实践中的数据来说都很低效,因为它们往往依赖不合理的统计假设(比如高斯分布),所以并不适用于趋势分析(长期或周期性的)或信号极易改变的情况。

因此,对于机器学习特性第一个可以切入的,就是单指标作业,由此可以了解该产品如何学习正常模式,以及如何识别单变量时间序列数据中的异常模式。如果所发现的异常是有意义的,就可以持续地实时运行该分析,并在异常发生时告警。

虽然这看起来只是一个比较简单的应用案例,但产品背后却有着大量的无监督机器学习算法和统计模型,因此对任意信号都有鲁棒性和精确性。

为了在 Elasticsearch 集群中能更本地化地运行,我们对实现也做了优化,因此百万级的事件可以在秒级完成分析。

示例 2——数千指标的自动化追踪

机器学习产品能扩展到数十万指标和日志文件,所以下一步就是同时分析多个指标;可能会是一个主机相关的多个指标、一个数据库或应用的性能指标、或者多个主机的多个日志文件。这种情况下可以简单地分区分析,并把结果聚合到一个透视窗口中用于展示整个系统的异常。

假设有一个大型应用服务的响应耗时数据,就能简单地分析每个服务随时间的响应耗时变化,并识别单个服务的异常行为,同时也能提供整个系统的异常视图:

示例 3——高级作业

最后,还有大量的更高级方式来使用该产品。比如,如果想查找与人群相比有异常行为的用户、异常的 DNS 流量或者伦敦道路上的交通拥堵,高级作业提供了一种灵活的方式,来分析 Elasticsearch 中的任何时间序列数据。

与 Elastic Stack 集成

机器学习是作为 X-Pack 的一个特性发布的,这意味着安装了 X-Pack 之后,就可以利用机器学习特性来实时分析 Elasticsearch 中的时间序列数据。Elasticsearch 集群会自动化地分配和管理机器学习作业任务,基本上跟对待索引和分片一样;这也就意味着,机器学习作业可以从节点故障中快速恢复。从性能的角度,紧密集成意味着数据从来无需离开集群,我们能依赖 Elasticsearch 聚合功能显著地提升某些作业类型的性能。紧密集成的另一个好处是,可以从 Kibana 直接创建异常检测作业并查看结果。

因为数据能现场分析而无需离开集群,所以相对于集成 Elasticsearch 数据到外部数据科学工具,这种方式有着明显的性能和维护优势。随着我们在该领域开发的技术越来越多,这种架构的优势将会愈加明显。

了解最新版本 Elastic Stack: https://www.elastic.co/cn/

查看英文原文 Introducing Machine Learning for the Elastic Stack


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-05-08 19:002372

评论

发布
暂无评论
发现更多内容

【FastDFS】SpringBoot整合FastDFS实战,我只看这一篇!!

冰河

springboot fastdfs

经常使用的数据结构

hasWhere

Java源码系列3——LinkedHashMap

超超不会飞

Java

一个Hibernate的事务问题

YoungZY

hibernate

2020互联网公司中秋礼盒大比拼!(文末送福利)

Java架构师迁哥

CSS语法与规则 — 重学CSS

三钻

CSS 大前端

优秀组织的5大表现

凌晞

团队管理 团队组织 组织

一个好系统自我完善自我进化的方法

boshi

产品思维 系统工程 即时反馈 生态体系

架构师训练营第三周作业

邓昀垚

极客大学架构师训练营

FastDFS 分布式文件系统详解

哈喽沃德先生

文件系统 分布式文件存储 fastdfs 分布式文件

我一定是熬夜熬傻了,小程序后台获取用户信息居然发生了这件事

小Q

Java 小程序 学习 编程 架构

Greenplum 性能优化之路 --(三)ANALYZE

腾讯云大数据

大数据 数据仓库

在 InfoQ 兼职做运营

邓瑞恒Ryan

创业 用户增长 创业心态 运营 产品运营

太牛了,这份神仙级面试笔记把所有 Java 知识面试题都详解出来了

Java架构之路

Java 程序员 面试 编程语言

Dromara团队发布Hmily全新架构的2.1.1版本

猫大人

分布式事务 分布式柔性事务‘’

基于 Flink + Hive 构建流批一体准实时数仓

Apache Flink

flink

传统网络缺失货币层,比特币是否能担此大任?

blockchain

比特币 区块链 数字货币 比特币数字货币 区块俩金融

智能体的奇幻漂流之“成都折叠”篇

脑极体

架构师训练营第1期第3周作业

业哥

极客大学架构师训练营

Java源码系列4——HashMap扩容时究竟对链表和红黑树做了什么?

超超不会飞

Java

Java源码系列2——HashMap

超超不会飞

Java

Smartisan

Changing Lin

摄影

架构师训练营 1 期 - 第三周 - 设计模式

三板斧

极客大学架构师训练营

高中生写LOL外挂1年狂赚五百万,落网前刚买下120万保时捷

Java架构师迁哥

【架构笔记之设计模式】架构师训练营第1期第3周

业哥

极客大学架构师训练营

Greenplum 性能优化之路 --(二)存储格式

腾讯云大数据

大数据

Nexmark: 如何设计一个流计算基准测试?

Apache Flink

flink

鲲鹏播种于时代,花开五色中原

脑极体

码住!Flink Contributor 速成指南

Apache Flink

flink 开源社区

架构师训练营第 1 期第 3 周学习总结

好吃不贵

极客大学架构师训练营

烦人的Null,你可以走开点了

四猿外

Java 注解 空指针 Optional null

Elastic Stack发布新版本支持机器学习_语言 & 开发_杨振涛_InfoQ精选文章