SLS机器学习最佳实战:时序预测

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 通过分析序列进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。 时间序列就是按时间顺序排列的一组数据序列。时间序列分析就是发现这组数据的变动规律并用于预测的统计技术。

为何需要预测?

通过分析序列进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。
时间序列就是按时间顺序排列的一组数据序列。时间序列分析就是发现这组数据的变动规律并用于预测的统计技术。

  • 明天的账单大约多少??(根据在各个云产品中资源消耗量进行预测 ---> 业务稳定)
  • 业务流量预测,明天各个小时的流量如何??(业务在稳定的情况下,也是可以预测的)
  • 某公司的资源组的消耗情况??(何时下发MR任务,导致哪些机器的资源消耗的情况,是具有一定规律,可以进行预测)

序列都可预测么?

  • 明天股票价格是多少,未来一年我买这个股票或者基金会赚多少钱??
  • 预测一下下一期的彩票号码是多少??
  • ......

在大数据时代,相关关系似乎替代了因果关系。然而世界具有复杂性,大数据时代世界似乎被数据统治,是混沌的。相关关系是指当一个数据变化时,另一个数据也可能随之变化,不论是这两个数据也没有必然联系。相关关系有可能是正相关也有可能是负相关,有可能是强相关也有可能是弱相关。因果关系是指当一个作为原因的数据变化时,另一个作为结果的数据在一定程度发生变化,这两个数据存在着必然联系。因果关系可能是线性关系,也可能是非线性关系。
回归模型比相关系数进了一步,它可以解释数据之间作用机制和作用的大小。但回归模型即使通过了各种统计检验,也可能只在一定程度上说明事物之间的因果关系。模型的自变量不一定是原因,因变量不一定是结果。$X_i$与$y_i$之间的因果关系是否成立,还要由统计学所应用领域的专家来判断,如经济学家、管理学家、生物学家、医学家等,并大量的实践得到检验。统计模型只能说包含真正因果关系的可能性较大,二真值在哪里?上帝知道。

我们能预测什么?

  • SLB产品中,某用户的

    • 某实例小时级别最大链接数预测
    • 某实例小时级别每秒链接数预测
    • 某实例每小时的QPS量预测
    • 某实例每小时入向流量预测
    • 某实例每小时出向流量预测
  • OSS产品中,某用户的

    • 小时级别存储量预测
    • 小时级别外网流量、CDN回源流量预测
    • 小时级别Get请求和Put请求数量的预测
  • ECS产品中,某用的使用情况

    • 某用户在某集群中60min/30min/15minCPU使用情况的预测
    • 某用户在某集群中60min/30min/15minIO延迟情况的预测
  • 具有相对稳定的业务规律的时序数据(>=15min的数据点)能更好的预测

我们提供了什么?

image.png

统计学模型

ts_predicate_simple(unixtime, val, nPred, samplePeriod, sampleMethod)
ts_predicate_ar(unixtime, val, p, nPred, samplePeriod, sampleMethod)
ts_predicate_arma(unixtime, val, p, q, nPred, samplePeriod, sampleMethod)
ts_predicate_arima(unixtime, val, p, d, q, nPred, samplePeriod, sampleMethod)

机器学习模型

  • 不对数据做任何处理,直接使用GBRT模型进行预测
ts_regression_predict(unixtime, val, nPred, 'origin', samplePeriod, sampleMethod)
  • 对数据做时序分解,对分解出来的序列分别做预测,在进行整合
ts_regression_predict(unixtime, val, nPred, 'forest', samplePeriod, sampleMethod)
  • 不对数据做任何处理,使用线性模型进行预测
ts_regression_predict(unixtime, val, nPred, 'linear', samplePeriod, sampleMethod)

实际案例

用户存储量的预测

select ts_regression_predict(EndTime, Storage, 168, 'linear', 1, 'avg') from ( 
select EndTime, sum(Storage) as Storage from log GROUP  by EndTime ) limit 1000

image.png

用户外网流量的预测

select ts_regression_predict(EndTime, NetworkOut, 168, 'origin', 1, 'avg') from ( 
select EndTime, sum(NetworkOut) as NetworkOut from log GROUP  by EndTime ) limit 10000

image.png

用户Get请求数量的预测

select ts_regression_predict(EndTime, GetRequest, 168, 'origin', 1, 'avg') from ( 
select EndTime, sum(GetRequest) as GetRequest from log GROUP  by EndTime) limit 1000

image.png

机柜电量预测

select ts_regression_predict(time, rackTotalPower, 100, 'origin', 1, 'avg') from  (
select __time__ - __time__ % 1800 as time, sum(rackTotalPower) as rackTotalPower from log GROUP BY time ) limit 10000

image.png

SLB中各个指标的预测情况
image.png


相关文献


硬广时间

日志进阶

阿里云日志服务针对日志提供了完整的解决方案,以下相关功能是日志进阶的必备良药:

  1. 机器学习语法与函数: https://help.aliyun.com/document_detail/93024.html
  2. 日志上下文查询:https://help.aliyun.com/document_detail/48148.html
  3. 快速查询:https://help.aliyun.com/document_detail/88985.html
  4. 实时分析:https://help.aliyun.com/document_detail/53608.html
  5. 快速分析:https://help.aliyun.com/document_detail/66275.html
  6. 基于日志设置告警:https://help.aliyun.com/document_detail/48162.html
  7. 配置大盘:https://help.aliyun.com/document_detail/69313.html

更多日志进阶内容可以参考:日志服务学习路径


联系我们

纠错或者帮助文档以及最佳实践贡献,请联系:悟冥
问题咨询请加钉钉群:

f5d48178a8f00ad1b8e3fffc73fb9158b3f8fe10_jpeg

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
缓存 中间件
Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志
这篇文章介绍了在Nest.js中如何实现记录用户CURD操作的需求。首先解释了什么是拦截器以及拦截器的作用,然后通过创建Prisma模型,添加Log模型,并通过编写LoggerInterceptor拦截器,实现了记录用户操作的功能。最后通过效果演示和总结,强调了使用拦截器实现此功能的有效性。
|
25天前
|
Java Maven Spring
超实用的SpringAOP实战之日志记录
【11月更文挑战第11天】本文介绍了如何使用 Spring AOP 实现日志记录功能。首先概述了日志记录的重要性及 Spring AOP 的优势,然后详细讲解了搭建 Spring AOP 环境、定义日志切面、优化日志内容和格式的方法,最后通过测试验证日志记录功能的准确性和完整性。通过这些步骤,可以有效提升系统的可维护性和可追踪性。
|
2月前
|
Java 程序员 应用服务中间件
「测试线排查的一些经验-中篇」&& 调试日志实战
「测试线排查的一些经验-中篇」&& 调试日志实战
23 1
「测试线排查的一些经验-中篇」&& 调试日志实战
|
4月前
|
SQL 运维 监控
Nest.js 实战 (十):使用 winston 打印和收集日志记录
这篇文章介绍了在Nest服务中如何使用Winston记录日志。文章首先强调了日志记录在后台服务中的重要性,接着提到Nest默认的内部日志记录器,并指出可以通过@nestjs/common包中的Logger类来全面控制日志系统的行为。文章还提到,为了在生产环境中实现更高级的日志功能,可以使用如Winston之类的Node.js日志包。接下来,文章介绍了如何在Nest服务中使用Winston记录日志,包括安装相关依赖、创建winston配置文件以及实现简单的日志记录示例。最后,文章指出更高级的自定义日志功能需要读者自己去探索。
141 2
Nest.js 实战 (十):使用 winston 打印和收集日志记录
|
4月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
3月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
145 0
|
4月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
60 0
|
4月前
|
SQL 安全 测试技术
【数据守护者必备】SQL数据备份与恢复策略全解析:从全量到日志备份,手把手教你确保企业信息万无一失的实战技巧!
【8月更文挑战第31天】数据库是企业核心业务数据的基石,为防止硬件故障、软件错误或人为失误导致的数据丢失,制定可靠的备份与恢复策略至关重要。本文通过一个在线购物平台的案例,详细介绍了使用 SQL Server 进行全量备份、差异备份及事务日志备份的方法,并演示了如何利用 SQL Server Agent 实现自动化备份任务。此外,还提供了数据恢复的具体步骤和测试建议,确保数据安全与业务连续性。
191 0
|
5月前
|
存储 Prometheus Cloud Native
SLS Prometheus存储问题之为什么SLS时序引擎最终选择了使用C++实现PromQL的部分算子
SLS Prometheus存储问题之为什么SLS时序引擎最终选择了使用C++实现PromQL的部分算子
|
5月前
|
Python
Python编程实战:利用闭包与装饰器优化日志记录功能
【7月更文挑战第7天】Python的闭包和装饰器简化了日志记录。通过定义如`log_decorator`的装饰器,可以在不修改原函数代码的情况下添加日志功能。当@log_decorator用于`add(x, y)`函数时,调用时自动记录日志。进一步,`timestamp_log_decorator`展示了如何创建特定功能的装饰器,如添加时间戳。这些技术减少了代码冗余,提高了代码的可维护性。
69 1

相关产品

  • 日志服务