优化流交易.Trigger

.触发定义存储更新区间高值减少存储事务数

写由chetan.kardekar

2022年10月26日

运行结构流程序使用云存储桶时(S3,ADLSgen2等)很容易在存取存储桶时发生过量交易

失效指定.触发器流码选择是存储事务多发的一个常见原因何时.触发器未指定选项,存储器可频繁测量紧接在默认完成微批处理后发生

默认行为由官方描述阿帕契触发文件as,“如果未明确说明触发设置,则默认查询将以微批模式执行,即当前微批处理完成后立即生成微批处理。”

样本代码没有.触发器选项定义运行后将导致存储量过多

Pythonspark.readStream.format
          
           .writeStream.format
           
            .options(**writeConfig).start
           
          


可设置.触发程序中选项. writeStream.设置.触发器处理时间短短数秒后无法进行短投票

指令发布

默认行为是检查源量每10ms更新对大多数用户而言,源更新间隔较长不会对性能产生可见效果,但交易成本大为下降

举个例子,让我们用5秒处理500倍慢于10ms存储调用相应减少

设置5秒处理时间需要添加.trigger(processingTime='5 seconds')切入点. writeStream.

举例说,修改我们现有的样本代码以包括.触发器处理时间5秒只需增加一行

Pythonspark.readStream.format
          
           .writeStream.format.outputMode("append")  .option("checkpointLocation","
           
            .options(**writeConfig).start
           
          


你应该实验.触发器处理时间判定优化应用值

文章有帮助吗