SPL加工(1) 时间字段 在SPL执行过程中,云日志服务的日志时间字段(ts)类型始终保持为datetime。 若要更新数据时间,需使用eval指令操作,且确保新值类型为datetime。 其他指令均不可操作时间字段,其行为如下: fields、rename:默认保留时间字段,不可将其重命名,也不可将其覆盖。 parse:如果提取结果包含时间字段,则将其忽略。 字段提取与覆盖模式 在SPL指令执行提取过程中,提取模式mode参数的取值说明如下 参数值 说明 preserve 提取出的字段名与现有字段重名时,保留现有字段 overwrite 覆盖目标字段 新旧值保留与覆盖 在SPL指令执行过程中,其输出的目标字段与输入数据中已有字段重名时,该字段的取值策略如下 新旧值类型不一致 直接保留输入字段原始值 示例 SPL语句 html eval tmpregexpextract(msg, 'w+w+') 表达式计算结果为varchar类型,赋值给tmp rename tidtmp tid旧值integer类型,tmp为varchar类型;tid保留旧值 输入数据 plaintext msg: '127.0.0.1 ed06b28a9de1006f INFO unknown method, discard request' tid: 3817568 输出结果 plaintext msg: '127.0.0.1 ed06b28a9de1006f INFO unknown method, discard request' tmp: 'ed06b28a9de1006f' tid: 3817568 新旧值类型一致 由指令中指定的mode参数确定。如果指令没有定义mode参数,则其默认值为overwrite 模式 说明 overwrite 使用新值覆盖旧值作为字段值 preserve 保留旧值作为字段值,舍弃新值 示例 SPL语句 html eval tmpregexpextract(msg, 'w+w+') 表达式计算结果为varchar类型,赋值给tmp rename mode'overwrite' codetmp code旧值varchar类型,tmp为varchar类型;tid被新值覆盖 输入数据 plaintext msg: '127.0.0.1 ed06b28a9de1006f INFO unknown method, discard request' code: '405 Method Not Allowed' 输出结果 plaintext msg: '127.0.0.1 ed06b28a9de1006f INFO unknown method, discard request' code: 'ed06b28a9de1006f'
来自: