数据加工(新版)支持通过高级参数配置来优化处理行为。
注意事项
1. 配置限制
参数名称不能包含空格和特殊字符。
JSON格式的参数值必须是有效的JSON字符串。
参数值大小有限制(通常不超过1KB)。
2. 生效时间
高级参数的修改需要重启数据加工任务才能生效。
建议在业务低峰期进行参数调整。
参数修改后建议进行充分测试。
3. 向后兼容性
新增参数不会影响现有任务的运行。
参数格式变更会提前通知并保持向后兼容。
建议定期关注参数配置的更新说明。
操作步骤
登录日志服务控制台。
进入数据加工页面。
在Project列表区域,单击目标Project。
在页签中,单击目标Logstore。
在查询与分析页面,单击数据加工。
在页面右上角,选择数据的时间范围。
选择时间范围后,请确认原始日志页签中存在日志。
在编辑框中,输入SPL语句。
SPL语法请参见SPL语法。
预览数据。
在原始数据页签中单击加入测试数据,或者在测试数据页签中,手动输入测试数据。
创建数据加工任务。
单击保存数据加工(新版)。
在创建数据加工任务(新版)面板中,配置高级参数,然后单击确定。其他配置请参见创建数据加工(新版)任务。
高级参数
config.sls_output.failure_strategy
配置输出失败策略。
参数语法
{"drop_when_not_exists":"true"}参数说明
drop_when_not_exists: 当目标Logstore不存在时的处理策略。"true": 跳过该日志,不报错,继续处理后续数据。"false": 报错并停止处理(默认行为)。
使用场景
动态创建目标Logstore的场景。
目标Logstore可能不存在但希望程序继续运行。
容错性要求较高的数据处理任务。
配置示例
Key: config.sls_output.failure_strategy
Value: {"drop_when_not_exists":"true"}enable.auto.commit
自动提交消费组位置。
参数语法
{"enable.auto.commit":"true"}参数说明
enable.auto.commit: 提交消费组位置的处理策略。"true": 启用自动提交,系统自动更新消费组的消费位置。"false": 禁用自动提交,需要手动管理消费位置(默认行为)。
使用场景
保留旧版加工的消费组位置管理。
下游任务依赖消费组的checkpoint更新。
配置示例
Key: enable.auto.commit
Value: true作用机制
系统会定期自动提交消费组的checkpoint。
兼容旧版加工的消费点位更新,避免依赖消费组的下游任务出现错误。
配置示例
示例1:容错性数据分发
根据用户ID动态创建用户专属日志库,但某些用户的日志库可能不存在。
配置
Key: config.sls_output.failure_strategy Value: {"drop_when_not_exists":"true"} Key: enable.auto.commit Value: trueSPL语句:
* | extend user_logstore = concat('user-', user_id, '-logs') | extend "__tag__:__sls_etl_output_logstore__" = user_logstore | project timestamp, user_id, action, details效果:
当用户专属日志库不存在时,该条日志被跳过,不影响其他日志处理。
更新消费组的消费点位,不影响原有的下游任务。
故障排查
常见问题
参数不生效
检查参数名称是否正确(区分大小写)。
验证参数值格式是否符合要求。
确认任务是否已重启以应用新配置。
JSON格式错误
# 错误的格式 缺少引号
{"drop_when_not_exists":true}
# 正确的格式
{"drop_when_not_exists":"true"}自动提交不工作
检查参数值是否为布尔类型的字符串。
确认消费组配置是否正确。
验证任务是否有足够的权限更新消费组。