数据库_阿里云ceo_新注册优惠

2021-05-03 21:22

数据库_阿里云ceo_新注册优惠

CCL或连续计算语言是用于开发HANA流分析和流Lite项目的脚本语言。CCL源于SQL,这有助于有经验的数据库开发人员学习实时流分析。与其他开发语言一样,一些常见设计模式的示例也非常有用。

HANA流分析提供实时事件处理。这意味着新的传入事件在到达时会被快速处理。流项目的基本结构之一是"窗口"。Windows将数据持久化为一个特定的时间间隔,这个时间间隔可以用记录数或时间间隔来定义。windows支持的一个操作是计算聚合值,例如平均值。默认行为是以"滑动窗口"的形式生成输出,这意味着每次接收到输入值或之前的值过时时,将更新聚合计算并输出新结果。

用于计算平均温度的滑动窗口示例如下:

在本例中,企业管理软件开发,我们正在接收多台不同机器的传入数据流,每台机器都由MACHINEID唯一标识。窗口将每个事件从到达时起持续30秒,并根据每台机器计算平均温度。

如果在30秒内收到10个MACHINEID=1的事件,则根据10个事件计算平均温度。如果在给定的30秒内只接收到1个事件,则根据单个事件计算平均值。除了在每次接收到新事件时更新平均值外,还将在每次事件过期时更新平均值。收到第一个事件30秒后,物联网协议,购买云服务器,它将过期,平均值将根据剩余事件进行更新。

如前所述,默认行为称为滑动窗口。每次事件进入窗口或退出窗口时,都会更新聚合计算,并从窗口输出新值。这提供了实时更新,很可能是监视生产过程以生成警报或控制生产设备时所需的行为。

但是,在捕获和存储大量数据以供以后分析、审查和报告时,通常不需要保留全部原始数据。例如,您可能每秒获得一次温度读数,但希望合并原始数据,并在数据仓库中每30秒存储一次平均值。这就是"跳转窗口"出现的地方。

跳转窗口仍然将事件保持在指定的时间间隔内,该时间间隔是按行数或时间间隔定义的。但是,它不是逐个老化行,而是在每个间隔结束时丢弃整组行,并开始累积一组新的行。

每次更新聚合值时,跳转窗口仍会生成输出。如果在30秒的间隔内接收到给定传感器ID的100个传入事件,则将生成100个输出事件。如果接收到1000个传入事件,那么将生成1000个输出事件。为了减少项目输出的记录量,以便每个SensorID每个间隔只生成一个输出事件,除了跳转窗口之外,我们还需要使用FLEX元素。

这个特殊的示例显示了如何从输入数据流计算聚合,并以N秒的周期间隔发布上一个间隔的聚合。N恰好被设置为30秒,物联网竞赛,但它可以是一个较长或较短的值。

用于计算平均温度的窗口看起来与滑动窗口示例非常相似,但请注意,KEEP策略的格式不同,并且在CREATE OUTPUT window语句中声明在不同的位置。

aAverageTemperatureBySensor窗口仍会生成每次新事件进入窗口时输出事件。为响应传入数据而生成的每个输出事件将具有操作码或操作码,对于每个间隔中给定传感器ID的第一个输出事件为"插入",对于随后的输出事件为"更新"。在每个间隔结束时,当aAVerageTemperatureBySensor窗口内容被清除时,低价云服务器,将生成一个带有"delete"操作码的输出事件。

从aAVerageTemperatureBySensor窗口输出的每个事件都将被throttleedevents FLEX元素接收,该元素起到过滤器的作用,以减少来自传感器的输出量streaming项目中,在ThrottledEvents FLEX元素中,"ON aAverageTemperatureBySensor"子句用于只监视那些操作码为"delete"的事件。这些将是在每个SensorID的每个间隔结束时从AaveragetTemperatureBySensor窗口生成的最终事件。

然后FLEX元素将操作码从"delete"更新为"insert",并通过"output"语句将其传递到项目的下游。从aAverageTemperatureBySensor窗口接收到的操作码为"insert"的事件由if(getOpcode(aAverageTemperatureBySensor)=delete)语句过滤掉,不会作为ThrottledEvents FLEX元素的输出生成。

分享到:
收藏
相关阅读