结构化流式处理的概念
本文介绍了 Azure Databricks 中的结构化流式处理。
什么是结构化流式处理?
Apache Spark 结构化流式处理是一个准实时处理引擎,它使用熟悉的 Spark API 提供端到端容错和“恰好一次”处理保证。 使用结构化流式处理,可以像基于静态数据表达批处理计算一样基于流式处理数据表达计算。 结构化流式处理引擎以增量方式执行计算,并在流数据抵达时持续更新结果。
从数据流读取
可以使用结构化流式处理以增量方式从支持的数据源引入数据。 常见的数据源包括以下几种:
- 云对象存储中的数据文件。 请参阅什么是自动加载程序?。
- 消息总线和队列。 请参阅配置流式处理数据源。
- Delta Lake。 请参阅增量表流式读取和写入。
每个数据源提供多个选项来指定如何加载数据批。 在读取器配置期间,可能需要配置执行以下操作的选项:
- 指定数据源或格式(例如,文件类型、分隔符和架构)。
- 配置源系统的访问权限(例如,端口设置和凭证)。
- 指定要在流中哪个位置开始(例如,Kafka 偏移量或读取所有现有文件)。
- 控制要在每个批中处理多少数据(例如,最大偏移量、文件数或每批字节数)。 请参阅在 Azure Databricks 上配置结构化流式处理批大小。
写入到数据接收器
数据接收器是流式写入操作的目标。 Azure Databricks 流式处理工作负载中使用的常见接收器包括:
- Delta Lake
- 消息总线和队列
- 键值数据库
与数据源一样,大多数数据接收器提供许多选项来控制将数据写入目标系统的方式。 在编写器配置期间,请指定以下选项:
- 输出模式(默认为追加)。 请参阅为结构化流式处理选择输出模式。
- 检查点位置(每个写入器都需要)。 请参阅结构化流式处理的检查点。
- 触发器间隔。 请参阅配置结构化流式处理触发器间隔。
- 用于指定数据接收器或格式的选项(例如,文件类型、分隔符和架构)。
- 用于配置目标系统访问的选项(例如,端口设置和凭据)。