写点什么

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:002177

评论

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

全表遍历并处理数据有点慢?放开!我来!

林一

jpa Stram @QueryHints

一文看懂 Context

Rayjun

Go 语言

08 | 指针系列(二):记住,指针变量也是变量(2)

Nydia

二分查找常见套路与分析

gevin

算法 二分查找

external-attacher源码分析(1)-main方法与启动参数分析

良凯尔

Kubernetes 源码分析 Ceph CSI Kubernetes Plugin

【LeetCode每日一题 Day 4】4. 寻找两个正序数组的中位数

编程熊

程序员 算法 LeetCode 面经 笔试

网络攻防学习笔记 Day63

穿过生命散发芬芳

网络攻防 7月日更

利用 IComparable<T> 以及 IComparer<T> 定义顺序关系

喵叔

7月日更

在线HTML转JS/JSON工具

入门小站

工具

iOS 15隐私升级及注意事项

阿里巴巴大淘宝技术

ios WWDC21

花2个月备战字节,3轮面试拿下总包60W Offer!

Java架构师迁哥

为什么AI需要大大大大大模型?

白洞计划

从特斯拉召回事件,窥探OTA汽车进化真面目

脑极体

Linux之which命令

入门小站

Linux

新能源车的发展趋势

石云升

学习 新能源汽车 7月日更

将 FeignClient 的请求记录成 cURL 格式

哈德韦

微服务 前后端分离 log4j curl Spring boot Feign

2022秋春招/提前批面经分享总结(字节、腾讯、阿里)

学无止境的阿奔

腾讯 面试 阿里 字节 校招

AQS介绍和原理分析(下)

追风少年

并发编程 AQS

大专的我,闭关苦学56天,含泪拿下阿里offer,五轮面试,六个小时灵魂拷问

Java架构师迁哥

为什么AI需要大大大大大模型?

脑极体

Ubuntu 如何强制时间同步

HoneyMoose

架构实战营模块七作业

竹林七贤

CVPR2021竞赛结果出炉,阿里淘系多媒体算法包揽3项国际冠军

阿里巴巴大淘宝技术

CVPR

分层架构:一个经典却得不到优的难题

码猿外

架构 微服务

啥,Vue又出新单曲?

wzx

Vue 大前端

Python协程 & 异步编程(asyncio) 入门介绍

行者AI

#python

云原生负载均衡和网关应用实践

火山引擎开发者社区

云原生 后端

网络攻防学习笔记 Day62

穿过生命散发芬芳

网络攻防 7月日更

架构实战营模块7作业

Vic

架构实战营

【Flutter 专题】97 仿网易新闻标签选择器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

架构实战营模块一作业

Clarke

架构实战营

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