3、数据流定量属性的规则编程

数据流定量属性的规则编程

1. 引言

在金融行情、传感器数据流、网络流量监控和网页点击流等众多应用场景中,核心计算问题是将数据流映射为数值。以往的流处理研究主要集中在为特定功能设计高效的空间算法,如计算序列值的平均值或中位数,以及将流处理集成到传统数据管理软件中。而我们的目标是为数据流的复杂查询提供高级编程抽象,支持诸如求和、求差、求最小值、求最大值和求平均值等数值运算符,并自动编译为高效的底层流处理实现。

1.1 示例动机

假设输入数据流是银行 ATM 的交易记录,考虑如何以自然、模块化和高级的方式表达查询:“平均而言,Alice 每月向她的账户存入多少钱?”我们可以将此查询自然地表示为两个查询的组合:查询 f1 将输入流映射为仅包含 Alice 存款交易的流,查询 f2 计算每月存款总和的平均值。这种过滤和流处理器的级联组合在许多现有流处理语言和系统中很常见,我们的方案中包含一个流组合运算符来表达它:f1 ≫ f2。

1.2 数值计算表达

对于查询 f2,直观的分解是将输入流拆分为一系列子流,每个子流对应一个月的交易。我们可以编写一个函数 f3,将一个月的交易序列映射为其累计总和。所需的函数 f2 则将输入流拆分为子流,每个子流匹配 f3 的输入模式,对每个子流应用 f3,并通过求平均值组合结果。在我们提出的演算中,f2 写为 iter - avg(f3),这是正则表达式中 Kleene - * 操作的“定量”推广。

1.3 核心规则构造

我们的语言中的迭代器可以嵌套,并且可以在不同级别使用不同的聚合运算符。例如,要指定修改后的查询“平均而言,在一个月内,Alice 一天内存入的最大金

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值