固定间隔微批次和AvailableNow 触发器

问题描述 投票:0回答:1

“固定间隔微批次”“AvailableNow” 触发器之间的根本区别是什么?

我发现有关这些内容的文档令人困惑。

根本区别在于,AvailableNow 在完成后关闭,而固定间隔微批次永远不会关闭?

事实上,据我了解文档,AvailableNow 并不意味着可用的所有内容的一个微批次,但根据设置的大小,可能意味着消耗多个微批次直至触发作业时可用。我理解正确吗?

我在文档中发现的另一件事令人困惑的是微批量大小是由 maxbytePerTrigger 类型的属性设置的(取决于数据源)。如果AvailableNow 代表一个触发器,那么这就是一个问题。那么AvailableNow实际上意味着多个触发器吗?

databricks spark-structured-streaming
1个回答
0
投票
AvailableNow 触发器将在查询开始时处理源中的所有可用数据。它可以使用您拥有的任何流配置(例如

maxBytesPerTrigger

)以多个微批次处理所有可用数据。一旦处理完所有数据,它将退出,并且该流查询将不再在您的集群上运行。

固定间隔微批次触发器将在您指定的每个时间间隔运行一个微批次。每个微批次都会尊重您的流配置,例如

maxBytesPerTrigger

。与AvailableNow 不同,此触发器
永远不会自行退出。它将继续运行,直到您手动停止它(通过query.stop()
)或遇到异常。

如果您想一次性增量处理源代码,AvailableNow 非常有用。假设您在 S3 中有一些数据,并且您时不时地想要重新处理新数据。您可以使用AvailableNow 启动查询,它将处理所有数据,然后退出。但如果你想要更实时的处理,你可以使用固定间隔触发。

© www.soinside.com 2019 - 2024. All rights reserved.