数据加工(新版)支持通过高级参数配置来优化处理行为。
注意事项
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: true
SPL语句:
* | 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"}
自动提交不工作
检查参数值是否为布尔类型的字符串。
确认消费组配置是否正确。
验证任务是否有足够的权限更新消费组。