使用对比!SLS 数据加工 SPL 与旧版 DSL 场景对照

作者:灵圣

概述

如前一篇《SLS 数据加工全面升级,集成 SPL 语法》所述,SLS 数据加工集成了 SLS 数据处理语法 SPL。与旧版本数据加工 DSL 相比,SPL 在处理非结构化数据的场景中,其语法简洁度上有很多提升,比如中间类型保持、字段引用、无缝兼容 SQL 函数等。

这里我们继续讨论在不同的数据处理需求中,新版数据加工 SPL 与旧版数据加工 DSL 的使用对照。对于数据同步的场景,即不需要做任何数据处理,新版 SPL 与旧版 DSL 均传入空逻辑即可,以下不再赘述。

场景一:数据过滤与清洗

在日常运维中,错误日志分析是发现、定位问题的关键步骤。这里我们就以服务日志为例,介绍如何应用数据加工完成数据清洗。

旧版数据加工中,使用 e_keep/e_drop 完成数据清洗,对应的新版数据加工 SPL 中则使用 where 指令。

精确匹配

需要筛选出错误日志,即级别 level 字段值为字符串 ERROR。

模糊匹配

由于不同服务模块的编码标准差异,如果 level 字段的值并非固定,可能是 ERROR、ERR 或者 E 等。这个场景下就需要进行字符串模糊匹配。

数值范围

除了文本日志的筛选,我们还需要数值范围的比对。比如访问日志中,我们需要筛选出用户使用错误,以便分析哪些操作可能存在设计不合理,即筛选出状态码字段 status 值在 4xx 范围的数据。

存在性检查

另一个运维场景中,如果服务运行错误则会写出 error 字段,否则 error 字段不存在。我们需要筛选出包含 error 的数据条目。

场景二:字段管理

新字段构造

SPL 使用 extend 指令完成字段赋值操作,相当于数据加工 DSL 中的 e_set。

筛选、排除、重命名

SPL 提供原地处理指定字段的能力,即不需要给定完整的数据 Schema(包括字段列表、及其类型),可以直接操作给定字段,且不影响其他不相关的字段。

条件表达式

条件表达式对于处理混杂在一起的不同类型的数据是关键需求。SPL 通过 SQL 表达式完成条件判断。

场景三:时间信息解析与格式化

在 SPL 执行过程中,SLS 日志时间字段类型始终保持为数值类型 INTEGER 或者 BIGINT。SLS 日志字段包括数据时间时间戳字段 time 和数据时间纳秒部分字段 time_ns_part。需要更新数据时间时,须使用 extend 指令操作。

场景四:非结构或半结构化数据提取

在机器数据处理场景中,从非结构化或半结构化数据中提取关键信息,是一个繁琐的过程。因为数据没有固定的模式,需考虑太多处理细节,但处理的效率要求又极高。SPL 提供指令实现不同的数据提取,比如正则、JSON、CSV 等。

正则文本提取

JSON 结构数据提取

CSV 格式数据提取

相关链接:

[1] JsonPath

https://github.com/json-path/JsonPath

[2] JMES 语法

https://help.aliyun.com/zh/sls/user-guide/jmespath-syntax

[3] CSV RFC 4180

https://www.loc.gov/preservation/digital/formats/fdd/fdd000323.shtml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/870900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux ubuntu 24.04 运行《文明5》游戏,解决游戏中文设置的问题!

Linux ubuntu 24.04 运行《文明5》游戏,解决游戏中文设置的问题! 《文明5》是一款回合制经营策略游戏,拼的就是科技发展速度,点的是科技树,抢的就是科技制高点,但是真的是时间漫长,可能需要好几…

游戏开发之性能优化

游戏开发中的性能优化是一个复杂且多方面的过程,涉及到多个层面的改进和调整。以下是一些主要的优化技巧和方法: 代码优化: 缓存计算结果:对于那些耗费大量CPU计算而计算结果无需每帧变化的逻辑,使用缓存可以显著提高性…

UniformSampling 均匀采样滤波(附PCL库的C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、原理二、算法步骤三、算法实现参考链接前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对UniformSam…

XSS游戏

目录 XSS游戏-WarmupsMa Spaghet!JefffUgandan KnucklesRicardo MilosAh Thats HawtLigmaMafiaOk, BoomerWW3 XSS游戏-Warmups Ma Spaghet! 1. 尝试注入&#xff0c;输入aaaaaaaa 2. 显示在<h2>标签内3. 输入标签&#xff0c;添加onmouseover属性值为alert(1337)&…

物流抓取机器人整体设计方案

一、功能简介 1、运行环境&#xff1a;巡线行驶&#xff08;7路数字循迹&#xff0c;麦克纳姆轮车底盘&#xff09; 2、目标识别&#xff1a;颜色识别&#xff08;Maix-II Dock 视觉模块&#xff09; 3、目标定位&#xff1a;视觉测距&#xff08;Maix-II Dock 视觉模块&#x…

mov和mp4有什么区别?如何实现mov格式转mp4格式?

每种视频格式都有自己的特点&#xff0c;尤其是mov和mp4这两种格式&#xff0c;它们如同两种各具特色的语言&#xff0c;各自拥有独特的表达方式和优势&#xff0c;使得视频内容能够根据不同的需求和场景&#xff0c;以最佳的方式呈现给观众。 mov作为苹果公司开发的音频、视频…

VBA技术资料MF185:图片导入Word添加不同格式说明文字

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

这些星座比你想象的还努力

TOP 3. 金牛座   金牛座对于操劳操心的忍受度本来就比较高&#xff0c;对于金牛座来说这些都是踏实的象征&#xff0c;金牛座比较不相信不劳而获这件事情&#xff0c;多少血汗多少付出&#xff0c;得到多少收获&#xff0c;这让金牛座比较踏实&#xff0c;不会觉得很不安&…

三、LogicFlow 基础配置介绍及实现一个基础 Demo

目录 前置LogicFlow 介绍LogicFlow基础配置引入方式核心包基础概念实例&#xff08;配置项&#xff09;节点边&#xff08;节点与节点之间的连线&#xff09;背景网格主题事件 插件包 实现基础Demo最后 前置 这一篇主要是对 LogicFlow 的一些功能及配置相关的介绍&#xff08;…

基于vue框架的爱心献血管理系统gyx4y(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,公告信息,献血车动态,献血预约,献血记录 开题报告内容 基于Vue框架的爱心献血管理系统 开题报告 一、课题名称 基于Vue框架的爱心献血管理系统 二、研究背景与意义 研究背景&#xff1a; 随着医疗技术的不断进步和各类突发事…

前端框架(三件套)

学习网站 HTML 系列教程&#xff08;有广告&#xff09; HTML&#xff08;超文本标记语言&#xff09; | MDN (mozilla.org)&#xff08;英文不太友好&#xff09; 1.HTML5 & CSS3 1.1HTML5表格 <!DOCTYPE html> <html lang"en"> <head>…

教你如何使用C语言实现--多个字符向中间汇聚成句(Sleep与sysem函数)

目录 前言 一、实现思路 二、两个新函数 1.Sleep()函数 1.1 sleep 函数的基本语法&#xff1a; 1.2 示例 2.system()函数 2.1 system()函数的介绍 2.2 system函数清理屏幕 2.3 示例 三、代码实现 总结 前言 前面我们已经学到了C语言的数组&#xff0c;今天我们就可以…

测试面试题集锦(五)| 自动化测试与性能测试篇(附答案)

简介 本系列文章总结归纳了一些软件测试工程师常见的面试题&#xff0c;主要来源于个人面试遇到的、网络搜集&#xff08;完善&#xff09;、工作日常讨论等&#xff0c;分为以下十个部分&#xff0c;供大家参考。如有错误的地方&#xff0c;欢迎指正。有更多的面试题或面试中遇…

Your local changes would be overwritten by merge git

方法二 直接覆盖本地的代码&#xff0c;放弃自己本地的改动&#xff0c;只保留服务器端代码 直接回退到上一个版本&#xff0c;再进行pull。 【步骤】 直接 VCS -> Git -> Reset HEAD… 选择需要的reset模式&#xff1a;hard&#xff08;即放弃本地代码&#xff0c;新修…

如何挑选高性价比蓝牙耳机?四款2024出众耳机品牌盘点推荐!

在数字化时代&#xff0c;蓝牙耳机已成为我们日常生活中不可或缺的一部分。无论是通勤路上、运动时&#xff0c;还是工作学习中&#xff0c;一款好的蓝牙耳机总能给我们带来极致的音乐体验。然而&#xff0c;面对市面上琳琅满目的产品&#xff0c;在预算有限的情况下如何挑选高…

docker-harbor 私有仓库部署和管理

harbor 开源的企业级的docker仓库软件。 仓库&#xff1a;私有仓库&#xff08;用的最多&#xff09; 公有仓库。 harnor是有图形化的&#xff0c;页面UI展示的一个工具。操作起来很直观。 harnor每个组件都是由容器构建的&#xff0c;所以安装harbor必须要有docker。 doc…

电压检测之比较电路

设计这款电路主要是本人在锂电池充电电路中挖了一个坑&#xff0c;对电源显示芯片的数据手册内容撰写不够详细的不好感受&#xff0c;所以自己根据比较电路的思想设计出了电压检测并反馈的电路&#xff0c;亦在提供一种电压检测的思想不需要借助ADC采集&#xff0c;在电路硬件上…

Zabbix图形乱码处理

1、上传字体文件&#xff0c;这个可以自己在电脑上选择文件&#xff0c;然后上传上去即可。 2、查看zabbix fonts文件 ls -l /etc/alternatives/ 找到zabbix-frontend-font文件&#xff0c;系统不一样&#xff0c;名称可能也不一样。zabbix-font带这些英文就是zabbix的文件 3…

C语言 ——— 学习并使用calloc和realloc函数

目录 calloc函数的功能 学习并使用calloc函数​编辑 realloc函数的功能 学习并使用realloc函数​编辑 calloc函数的功能 calloc函数的功能和malloc函数的功能类似&#xff0c;于malloc函数的区别只在于calloc函数会再返回地址之前把申请的空间的每个字节初始化为全0 C语言…

MeterSphere接口测试脚本断言

MeterSphere接口测试脚本断言 我们在接口自动化测试过程中&#xff0c;经常遇到无论我们传入什么数据信息&#xff0c;只要响应体报文中某个字段为不固定的特定信息&#xff08;如&#xff1a;或1或2或3&#xff09;&#xff0c;就符合预期&#xff0c;流程就可以继续&#xf…