结构化流处理:从基础到实践
1. 连续流使用不同数据源
在处理数据流时,我们可以使用 writeStream 的 foreach 方法调用对象。示例代码如下:
query = streaming_df.writeStream.foreach(ForeachWriter()).start()
通过这种方式,我们能轻松定义一个类,使用 Structured Streaming 处理接收到的数据流,并将处理后的数据写入外部位置作为数据接收器。
2. 从查询失败中恢复
查询失败可能由多种原因导致,如输入数据模式更改、计算中使用的表发生变化、文件缺失等。为保证数据处理的健壮性, Structured Streaming 对输入源和输出接收器有以下要求:
|要求|详情|
|----|----|
|输入源可重放|若作业失败,可重新读取近期数据|
|输出接收器支持事务更新|更新操作是原子性的,且可回滚|
Structured Streaming 提供了检查点功能,可用于流式查询。启用检查点后,流可在失败后快速恢复,从断点处继续执行,同时保证数据一致性。建议配置启用查询检查点,并设置 Databricks Jobs 在失败后自动重启查询。
启用检查点的方法是在写入数据框时设置 checkpointLocat
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



