高级参数配置

数据加工(新版)支持通过高级参数配置来优化处理行为。

注意事项

1. 配置限制

  • 参数名称不能包含空格和特殊字符。

  • JSON格式的参数值必须是有效的JSON字符串。

  • 参数值大小有限制(通常不超过1KB)。

2. 生效时间

  • 高级参数的修改需要重启数据加工任务才能生效。

  • 建议在业务低峰期进行参数调整。

  • 参数修改后建议进行充分测试。

3. 向后兼容性

  • 新增参数不会影响现有任务的运行。

  • 参数格式变更会提前通知并保持向后兼容。

  • 建议定期关注参数配置的更新说明。

操作步骤

  1. 登录日志服务控制台

  2. 进入数据加工页面。

    1. Project列表区域,单击目标Project。

    2. 日志存储 > 日志库页签中,单击目标Logstore。

    3. 在查询与分析页面,单击数据加工

  3. 在页面右上角,选择数据的时间范围。

    选择时间范围后,请确认原始日志页签中存在日志。

  4. 在编辑框中,输入SPL语句。

    SPL语法请参见SPL语法

  5. 预览数据。

    • 原始数据页签中单击加入测试数据,或者在测试数据页签中,手动输入测试数据。

  6. 创建数据加工任务。

    1. 单击保存数据加工(新版)

    2. 创建数据加工任务(新版)面板中,配置高级参数,然后单击确定。其他配置请参见创建数据加工(新版)任务

高级参数

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"}

自动提交不工作

  • 检查参数值是否为布尔类型的字符串。

  • 确认消费组配置是否正确。

  • 验证任务是否有足够的权限更新消费组。