1.流计算基础概念
1.1 Dataflow图
Dataflow程序描述了数据如何在不同操作之间流动。Dataflow程序通常表示为有向图。图中顶点为算子,表示计算;而边表示数据依赖关系。算子
是Dataflow程序的基本单元,它们从输入获取数据,对其进行计算,然后产生数据并发往输出以供后续处理。没有输入端的算子成为数据源,没有出
输出端的算子称为数据汇。一个DataFlow图至少有一个数据源和一个数据汇。
1.2 数据并行和任务并行
将输入数据分组,让同一操作的多个任务并行执行在不同数据子集上,这种并行称为数据并行。让不同算子的任务(基于相同或不同的数据)并行计算,
这种并行称为任务并行。
1.3 数据交换策略
转发策略:在发送端任务和接受端任务之间一对一地进行数据传输。
广播策略:把每个数据项发往下游算子的全部并行任务。
基于键值的策略:根据某一键值属性对数据分区,并保证键值相同的数据项会交有同一任务处理。
1.4 延迟和吞吐
延迟:表示处理一个事件所需时间。本质上,它是从接受事件到在输出中观察到事件效果的时间间隔;即从你进入咖啡店门的一刻到你喝到第一口咖啡的时间
吞吐:用来衡量系统处理能力(处理速率)的指标,它告诉我们系统每单位时间可以处理多少事件。
背压:如果系统持续以力不能及的高速率接受数据,那么缓冲区可能会用尽,继而导致数据丢失,这种情形通常称为背压。
1.5 转换操作
转换操作是一类“只过一次”的操作,它们会分别处理每个事件。这些操作逐个读取事件,对其应用某些转换产生一条新的输出流。
1.6 滚动聚合
滚动聚合(如求和、求最小值和求最大值)会根据每个到来的事件持续更新结果。聚合操作都是有状态的,它们通过将新到来的事件合并到已有状态来生成更
新后的聚合值。
1.7 时间语义<