批处理和流处理背景:
批处理进行批量处理
从图中可以看出,有调度延迟和处理延迟。
流处理是进行流处理
可以满足低延迟的需求。
场景的批处理帧包括:贴图、空格键核心、插入器(nucleon )和Flink Dataset。
流计算框架包括事件驱动的Storm Core、Flink DataStream、Slipstream和微批处理
Slipstream概述Slipstream是一个实时流计算引擎和分布式流SQL引擎,它融合了事件驱动和微批处理。
SlipStream基本概念stream (数据流) :从Kafka等获取的数据。
流任务(stream job )计算一个或多个流并将结果写入一个表的任务。 需要落盘的过程。
APP :与业务逻辑相关的流作业的集合。
数据流为Input Stream(输入流),Derived Stream(衍生流)
首先,输入流是直接接收数据源发送来的数据而形成的流。
在微批处理模式下,Input Stream按时间分为几个小块进行处理。 也就是说,以由几个单位时间构成的时间间隔,将接收到的数据存储在一个块中。 块的时间长度称为Batch Duration。
在事件驱动模式下,将Input Stream接收到一个数据作为事件,一个接一个地读取来进行处理。
衍生流是流SQL语句对现有流的变形。 流的变形通常通过CsAs(createstreamasselect )语句进行。
在微批处理模式下,从现有Batch计算中获得新Batch的过程。
对单个batch的变形(单个batch变形)是计算流的单个batch以获得新batch的过程,如下图所示。
计算窗口变形(多Batch变形) :一个时间窗口)中的多个Batch以获得新Batch的过程。
例如,对于双11的销售场景,想取得店铺的产品的点击数据。 店铺向平台请求数据,平台每分钟向店铺传达3分钟前的点击和销售数据。 这是典型的窗口计算。 实际使用场景非常多。
衍生流的事件驱动模式下
每次获得数据时对其进行变形以获得删除流,还可以划分为计算单个数据变形和窗口变形(多数据变形)单个数据变形(Stream )中单个数据以获得新数据的过程
计算窗口变形(多数据变形)一个时间窗口)中的多个数据以获得新数据的过程
Streamjob「streamSQL”中的stream是静态的,它只说明如何接收和变形数据源发送的数据,而不执行这些计划。 要在StreamSQL中运行调度,必须执行相应的操作以启动StreamJob。 我真的把stream变成了流水线。
如上图所示,当StreamJob启动时,StreamSQL在每个输入流中启动一系列称为Receiver的任务来接收数据,接收到的数据经过一系列Derived Stream的变形最终可以由用户查询
“APP”是与业务逻辑相关的流作业的集合。
通过使用应用程序适当地划分流作业,可以共享和隔离资源。
资源共享—在应用程序中使用同一输入流的流作业共享一组接收方资源隔离。 如果不同应用程序中的流作业使用相同的输入流,则每个应用程序都是此输入流
可以联想到在kafka的Consumer Group,Group中共享这个数据。 StreamSQL vs .常规SQL DML语句的执行机制如下:
常规SQL :在块中运行并发送SQL后,用户必须等待SQL执行完成。 在此期间,命令将继续被阻止,不能执行其他命令。
StreamSQL :在后台运行,计算任务继续在后台运行,执行StreamSQL的DML语句时会立即返回结果。 查询结果的输出不同:
常规SQL :查询结果显示在控制台中或由JDBC读取
流SQL :用户必须明确指定将查询结果输出到何处。 流SQL :用户必须明确指定将查询结果输出到何处。 查询结果通常插入到表中。 例如,插入到结果_表选择…复习事件驱动模式与微批处理模式有何不同?
两种处理模式下窗口的变形有什么不同?
简要说明SteamJob的主要作用。
流SQL和常规SQL有什么区别?
参考课程内容来自南京大学星环科技课程、大数据大数据理论与实践课程