For Power View in Excel, we provided two versions of exponential smoothing, one for seasonal data (ETS AAA), and one for non-seasonal data (ETS AAN). Power View uses the appropriate model automatically when you start a forecast for your line chart, based on an analysis of the historical data. https://powerbi.microsoft.com/es-es/blog/describing-the-forecasting-models-in-power-view/#ETSAAA
FORECAST.ETS.CONFINT 函数
日程表 必需。 数值数据的独立数组或范围。 日程表中的日期之间必须具有一致的步骤,不能为零。 时间线不需要按 FORECAST 排序。ETS。CONFINT 将隐式排序以用于计算。 如果提供的时间线中无法识别常量步骤,则 FORECAST。ETS。CONFINT 将返回#NUM! 错误。 如果时间线包含重复值,则 FORECAST。ETS。CONFINT 将返回#VALUE! 错误。 如果时间线和值的范围不相同,则 指数平滑法 (ETS) 算法 FORECAST。ETS。CONFINT 将返回#N/A 错误。
Confidence_level 可选。 一个介于 0 和 1 之间的数值 (独占) ,指示计算置信区间的置信水平。 例如,对于 90% 的置信区间,将计算 90% 的置信水平 (90% 的未来点从预测值计算到此) 。 默认值为 95%。 对于超出范围的数字, (0,1) 预测。ETS。CONFINT 将返回#NUM! 错误。
季节性 可选。 数值。 默认值 1 表示Excel自动检测季节性,并使用正的、完整的数字作为季节性模式的长度。 0 表示无季节性,这意味着预测将是线性的。 正整数将指示算法使用此长度的模式作为季节性。 对于任何其他值,为 FORECAST。ETS。CONFINT 将返回#NUM! 错误。
最大支持 seasonality 指数平滑法 (ETS) 算法 是8,760(一年中的小时数)。 该数字上方的任何 seasonality 将导致"# NUM ! 错误。
数据完成 可选。 虽然时间线需要数据点之间的固定步骤,但 FORECAST。ETS。CONFINT 最多支持 30% 的数据缺失,并会自动调整数据。0 将指示算法将缺失点视为零。 默认值 1 将计算缺少的点,即将其完成为相邻点的平均值。
聚合 可选。 虽然时间线需要数据点之间的固定步骤,但 FORECAST。ETS。CONFINT 将聚合具有相同时间戳的多个点。 聚合参数是一个数值,指示哪个方法用于聚合具有相同时间戳的几个值。 默认值 0 将使用 AVERAGE,而其他选项为 SUM、COUNT、COUNTA、MIN、MAX、MEDIAN。
Power BI的时间序列预测——指数平滑法
For Power View in Excel, we provided two versions of exponential smoothing, one for seasonal data (ETS AAA), and one for non-seasonal data (ETS AAN). Power View uses the appropriate model automatically when you start a forecast for your line chart, based on an analysis of the historical data. https://powerbi.microsoft.com/es-es/blog/describing-the-forecasting-models-in-power-view/#ETSAAA
两个极端与移动平均
极端二:
而在Power BI里常用的移动平均值,介于这两个极端之间,既认为时间比较近(区间S期)的历史数据才有价值,因而放弃时间比较久远的历史数据,但同时也认为这S期的数据都同等重要,因此对这个区间内的历史数据直接加以平均。在Power BI里可以这么做。
一次指数平滑法
PBI中如果用DAX设计度量值,对于数据量较大时不容易实现。有兴趣的伙伴们可参考《Power BI中使用DAX计算股票RSI及股票均线相关》(https://zhuanlan.zhihu.com/p/81458611),原理接近。或在Power Query里,参考递归函数的原理生成(https://pqfans.com/2196.html)。
二次指数平滑法
二次指数平滑法(Holt’s Linear Trend Method),适合于有一定线性趋势(单调递增或递减)的时间序列。公式如下:
三次指数平滑法
三次指数平滑法(Holt & Winters Seasonal Method) ,是Power BI折线图预测季节性数据时用到的算法。在二次指数平滑的基础上,增加了一个季节项s,公式如下:
Flash 加密
对上述 eFuse 位的读写访问由 WR_DIS 和 RD_DIS 寄存器中的相应字段控制。有关 ESP32 指数平滑法 (ETS) 算法 eFuse 的详细信息,请参考 eFuse 管理器 。要使用 espefuse.py 更改 eFuse 字段的保护位,请使用以下两个命令:read_protect_efuse 和 write_protect_efuse。例如 espefuse.py write_protect_efuse DISABLE_DL_ENCRYPT 。
Flash 的加密过程
假设 eFuse 值处于默认状态,且固件的引导加载程序编译为支持 flash 加密,则 flash 加密的具体过程如下:
第一次开机复位时,flash 中的所有数据都是未加密的(明文)。ROM 引导加载程序加载固件引导加载程序。
固件的引导加载程序将读取 FLASH_CRYPT_CNT eFuse 值 ( 0b0000000 )。因为该值为 0(偶数位),固件的引导加载程序将配置并启用 flash 加密块,同时将 FLASH_CRYPT_CONFIG eFuse 的值编程为 0xF。关于 flash 加密块的更多信息,请参考 ESP32 技术参考手册 > eFuse 控制器(eFuse) > flash 加密块 [PDF]。
固件的引导加载程序使用 RNG(随机数生成)模块生成 AES-256 位密钥,然后将其写入 flash_encryption eFuse 中。由于 flash_encryption eFuse 已设置编写和读取保护位,将无法通过软件访问密钥。Flash 加密操作完全在硬件中完成,无法通过软件访问密钥。
Flash 加密块将加密 flash 的内容(固件的引导加载程序、应用程序、以及标有“加密”标志的分区)。就地加密可能会耗些时间(对于大分区最多需要一分钟)。
固件引导加载程序将在 FLASH_CRYPT_CNT (0b0000001) 中设置第一个可用位来对已加密的 flash 内容进行标记。设置奇数个比特位。
对于 开发模式 ,固件引导加载程序仅设置 DISABLE_DL_DECRYPT 和 DISABLE_DL_CACHE 的 eFuse 位,以便 UART 引导加载程序重新烧录加密的二进制文件。此外, FLASH_CRYPT_CNT 的 eFuse 位不受写入保护。
对于 发布模式 ,固件引导加载程序设置 DISABLE_DL_ENCRYPT 、 DISABLE_DL_DECRYPT 和 DISABLE_DL_CACHE 的 eFuse 位为 1,以防止 UART 引导加载程序解密 flash 内容。它还写保护 FLASH_CRYPT_CNT eFuse 位。要修改此行为,请参阅 启用 UART 引导加载程序加密/解密 。
重新启动设备以开始执行加密镜像。固件引导加载程序调用 flash 解密块来解密 flash 内容,然后将解密的内容加载到 IRAM 中。
在开发阶段常需编写不同的明文 flash 镜像并测试 flash 的加密过程。这要求固件下载模式能够根据需求不断加载新的明文镜像。但是,在制造和生产过程中,出于安全考虑,固件下载模式不应有权限访问 flash 内容。
因此需要有两种不同的 flash 加密配置:一种用于开发,另一种用于生产。详情请参考 Flash 加密设置 小节。
Flash 加密设置
提供以下 flash 加密模式:
开发模式 - 建议仅在开发过程中使用。因为在这种模式下,仍然可以将新的明文固件烧录到设备,并且引导加载程序将使用存储在硬件中的密钥对该固件进行透明加密。此操作间接允许从 flash 中读出固件明文。
本节将详细介绍上述 flash 加密模式,并且逐步说明如何使用它们。
在开发过程中,可使用 ESP32 内部生成的密钥或外部主机生成的密钥进行 flash 加密。
使用 ESP32 生成的密钥
测试 flash 加密过程需完成以下步骤:
确保您的 ESP32 设备有 相关 eFuses 中所示的 flash 加密 eFuse 的默认设置。
启动时使能 flash 加密 。
选择加密模式 (默认是 开发模式)。
选择 UART ROM 下载模式 (默认是 启用)。请注意,对于 ESP32 芯片,该选项仅在 CONFIG_ESP32_REV_MIN 指数平滑法 (ETS) 算法 级别设置为 3 时 (ESP32 V3) 可用。
选择适当详细程度的引导加载程序日志 。
保存配置并退出。
启用 flash 加密将增大引导加载程序,因而可能需更新分区表偏移量。请参考 引导加载程序大小 。
备注
这个命令不包括任何应该写入 flash 分区的用户文件。请在运行此命令前手动写入这些文件,否则在写入前应单独对这些文件进行加密。
该命令将向 flash 写入未加密的镜像:固件引导加载程序、分区表和应用程序。烧录完成后,ESP32 将复位。在下一次启动时,固件引导加载程序会加密:固件引导加载程序、应用程序分区和标记为“加密”的分区,然后复位。就地加密可能需要时间,对于大分区最多需要一分钟。之后,应用程序在运行时解密并执行命令。
下面是启用 flash 加密后 ESP32 首次启动时的样例输出:
启用 flash 加密后,在下次启动时输出将显示已启用 flash 加密,样例输出如下:
使用主机生成的密钥
可在主机中预生成 flash 加密密钥,并将其烧录到 eFuse 密钥块中。这样,无需明文 flash 更新便可以在主机上预加密数据并将其烧录。该功能可在 开发模式 和 发布模式 两模式下使用。如果没有预生成的密钥,数据将以明文形式烧录,然后 ESP32 对数据进行就地加密。
深度分析数据中心之ETS(Enhanced Transmission Selection)技术
I/O 整合与统一的设想是使适配器、交换机和/或存储系统使用相同的以太网物理基础实施来传送特性差异较大的不同类型流量和处理要求。数据中心管理人员可以采购更少的主机总线和服务器适配器、线缆、交换机和存储系统,削减电力、设备和管理成本。对于 IT 网络管理人员,这等同于安装并操作一个网络而不是一个结构树,但是仍然具有区分不同流量类型的能力。
IO整合后,多个网络流量共享同一条物理链路,带来了一个新的需求:在网络繁忙的情况下,如何保证各个网络能够运行正常的最小带宽。为此IEEE引入ETS(Enhanced Transmission Selection,增强传输选择)协议,来对不同网络流量进行带宽分配,保证各个网络正常运行所需的最小带宽。
在数据中心当中,主要以下三种流量:
1.存储数据流:要求无丢包;
2.高性能计算流:要求低延迟;
3.以太网流:允许一定的丢包和时延。
由于对数据流的要求不同,如上图所示,传统的数据中心使用三种不同类型的网络承载不同的流。
这种方法在小型的数据中心当中还是可接受的。然而,随着数据中心规模的扩大,运行三种不同类型的网络,并不是经济的解决方案。一种可选的方法是:统一采用以太网承载三种不同类型的流,并定义附加机制,以使以太网能够满足三种不同类型网络的要求。为此,IEEE定义了以下规范:
(1)增强传输选择(ETS):用于避免一种流量类型的大规模流量猝发影响其它流量类型,为不同的流量类型提供最小带宽保证。一种流量类型只有在其它流量类型带宽不占用的情况下,才能使用分配带宽之外的额外带宽。这使多种流量类型可在同一网络中和谐共存。
(2)基于优先级的流量控制(PFC):用于满足三种流量在以太网中共存时,存储流量无丢包,且对其它的两种流量无影响的要求。
(3)拥塞通告(CN):用于降低引起拥塞的端点站的报文发送速率,从根源上避免拥塞,以保持网络的畅通,解决因拥塞引发报文重传或流量控制,导致报文时延增加的问题。
(4)数据中心交互协议(DCBX):它是基于LLDP(Link Layer Discovery Protocol)的扩展协议,用于在设备间自动协商并配置PFC、ETS及CN等。
以上四个功能是DCB协议族中定义的解决越来越庞大的数据中心网络所遇到的传统网络无法解决的问题。其他几个协议在后续的文章中陆续分享,今天中要讲述ETS(Enhanced Transmission Selection,增强传输选择)协议,是在IEEE 802.1qaz文档定义了ETS功能如下:支持对802.1p类别中的流量进行分类,分成多个传输类(Traffic Class),对各个传输类进行带宽分配。当其中一个传输类没有使用完分配给它的带宽时,其他传输类可以使用剩下的带宽。
二、技术原理:
ETS属于IEEE数据中心的一个基础协议,是802.1Q(8.6 The Forwarding Process)转发规则部分的传输选择(8.6.8)部分。
在IEEE 802.1qaz文档定义了ETS调度方式有如下三种:
(1)WRR算法(Weighted Round Robin)
WRR(Weighted Round Robin)是目前一个比较常见的轮循(Round Robin)调度算法,它给每个队列分配一定的权重(weight)。WRR算法在队列之间进行轮流调度,队列权重决定在从该队列取报文出来发送的次数。WRR算法可以保证每个队列都能够得到调度,不会出现低优先级队列被饿死的情况。如果出现某一个队列为空,那马上换到下一个队列调度,这样可以使带宽资源可以得到充分的利用。
WRR可以保证每个队列能够至少得到相应权重比例的带宽;当某一个队列没有使用完所分配给他的带宽时,其他队列可以使用这部分带宽,一般用于保证队列的最小带宽。
(2)严格优先级算法(SP,Strict priority algorithm)
严格优先级算法总是先从高优先级的队列中取报文出来发送;当高优先级队列中的队列为空时,才从低优先级的队列取报文出来发送。
一般情况下,严格优先级算法用于通过将关键业务报文放到高优先级队列,来保证一些关键业务的正常运行 。
(3)令牌整形调度算法 (CBS,Credit-based shaper algorithm)
整形算法基于现有令牌桶整形算法模型。当队列中有报文时,往桶放入令牌(速率为idleslope);发包时,从桶中取相应的令牌出来;队列中没有任何报文时,令牌个数设置成0。当令牌个数为非负数时,从队列取报文出来发送;当令牌个数为负数时,不从队列取报文出来发送。
下面分析一下CISCO ETS的实现:
思科没有单独把ETS功能的命令分享出来,而是结合原有的QOS配置,QOS功能中实现了ETS标准描述的功能,在数据中心交换机nexus 5000支持入队列和出队列方向的带宽分配,支持6个队列。支持全局和接口上配置ETS功能。
ETS功能默认开启,默认ETS配置如下:
(1)送CPU报文被配置成严格优先级队列,用于保证控制报文的传输,对用户不可见。
(2)FCoE 流量(优先级为3的流量)被配置到一个非丢弃的队列中,带宽分配50%。
(3)正常流量被配置到另外一个队列,带宽分配50%。
思科支持匹配ACL,IP TOS字段,COS字段,ip rtp端口号等属性进行流量区分,将不同的流量放到不同的队列中,基于队列进行带宽分配或者设置优先级队列。
注:有些产商把这个功能叫做CEE,其实描述的是一个功能。