在 Kylin 中实现异常值检测 UD(A)F
本文讲解了时间序列数据异常值检测的基本概念和在 Kylin 中开发使用异常值检测 UDF 的方法,可以作为其他 UDF 开发的参考。 通过在 Kylin 中移植 Hivemall 的 UDF,我们可以充分利用 Kylin 的优势,减少直接使用 Hivemall 过程中的数据加工、存储等繁杂步骤的工作量,提升用户的查询体验。本文使用的验证环境为 Kylin 2.6.3。 时间序列数据的异常值检测 时间序列数据是聚合数据中的一种重要类别,数据分析人员经常需要使用各种方法从不同角度对聚合得到的时间序列数据进行挖掘,异常值检测(Anomaly Detection)就是其中的一种常见方法。异常值检测的主要目标是从时间序列数据中区分出与预期的正常值不符的值[1],如离群值(outlier)和突变点(change-point)等,这些值往往具有比较高的关注价值,是分析人员在进行业务分析时需要重点关注的对象。 时间序列数据的异常值检测具有广泛的应用场景,例如:应用在一般的商业领域中,有助于定位生产销售中的异常波动;应用在运维中,有助于迅速发现故障;应用在医学上,有助于医生做出诊断,等等。 Hivemall 的异常值检测函数 使用传统方法在大数据集上进行异常值检测存在效率低、不够灵活等问题,因此就有人尝试引入 Hive,通过对 Hive 进行扩展来解决这些问题。例如,Apache 孵化项目