日志服务数据加工最佳实践: 构建字典与表格做数据富化

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
对象存储 OSS,恶意文件检测 1000次 1年
简介: 本篇介绍日志服务数据加工最佳实践: 构建字典与表格做数据富化, 覆盖多种方式: 直接, 任务配置, 字典表格函数, RDS-MySQL, 其他Logstore等


字典和表格是数据富化(映射)过程中主要使用的两种数据结构,本文主要介绍这两种数据结构的常见构建方式,并对比不同构建方式的优缺点。

字典构建

直接构建

e_dict_map({"400": "错误", "200": "正常", "*": "其他"}, "status", "message")

优点: 直观、简单、方便.

从任务配置资源构建

e_dict_map(res_local("http_code_map"), "status", "message")

其中http_code_map是任务高级配置项, 值为:

{"400": "错误", "200": "正常", "*": "其他"}

优点: 如果内容较多, 且经常修改的话, 更易于维护.

从表格构建

使用tab_to_dict从表格构建, 而表格的构建参考本文后续的表格构建.

e_dict_map(tab_to_dict(tab_parse_csv("status_code,status_info\n400,错误\n200,正常\n*,其他"), "status_code", "status_info"), "status", "message")

优点: 高级场景下使用. 维护机制更灵活.

从字典函数构建

e_dict_map(dct_make("400", "错误", "200",  "正常", "*",  "其他"), "status", "message")

优点: 高级场景下可以实现特定效果, 因为dct_make还可以接受其他函数的返回值. 具体参考字典函数

从其他表达式构建

e_dict_map(json_parse(v("http_code_map")), "status", "message")

这里从源日志的字段http_code_map中获取映射关系.

优点:可以从日志事件的字段中动态提取映射关系,并构建字典。

不同字典构建方式对比

构建方式 优点 缺点
直接构建 直观、简单、方便 1.如果内容较多, 规则会相对冗长.
2. 静态不灵活.
从任务配置资源构建 如果内容较多, 且经常修改的话, 较为易于维护. 1. 不易于扩展和跨任务复用.
2.不支持自动刷新.
从表格构建 1. 高级场景下使用, 支持的场景更丰富.
2. 维护机制更灵活.
需要构建和维护对应的表格,过程相对繁琐.
从字典函数构建 可以基于逻辑动态构建字典, 特定场景下适用. 1.较为高级, 不易于维护. .
从其他表达式构建 可以从日志事件的字段中动态提取映射关系, 特定场景下适用.。 1.较为高级, 不易于维护.

表格构建

从文本构建

e_table_map(tab_parse_csv("city,name,age\nshanghai,aliyun,10\ncity:nanjing,Maki,18"), "name",["city", "age"])

优点: 直观、简单、方便.

从任务配置资源构建

e_search_table_map(tab_parse_csv(res_local("table_info")), "name",["city", "age"])

其中table_info是加工规则的任务配置项, 值为:

content,name,age
shanghai,aliyun,10
nanjing,Maki,18

优点: 如果内容较多, 且经常修改的话, 较为易于维护.

从RDS资源中构建

e_table_map(tab_parse_csv(res_rds_mysql(...database="db", table="city")), "name",["city", "age"])

RDS表格city的内容为:

content,name,age
shanghai,aliyun,10
nanjing,Maki,18

优点: 如果内容较多, 且经常修改的话, 易于维护, 且会自动刷新.

从其他Logstore资源构建

e_table_map(res_log_logstore_pull(..., project="project_name", logstore="logstore_name", fields=["city","name","age"]),, "name",["city", "age"])

对应logstore中日志事件为:

"日志1"
{
  "city": "shanghai",
  "name": "aliyun",
  "age": "10"
}
"日志2"
{
  "city": "city:nanjing and data > 100",
  "name": "Maki",
  "age": "18"
}

优点: 支持实时读取, 维护机制更灵活. 高级场景下使用.

不同表格构建方式对比

构建方式 优点 缺点

从文本构建

直观、简单、方便
1.如果内容较多, 规则会相对冗长。
2. 不易于维护、扩展和复用.
从任务配置资源构建 如果内容较多, 且经常修改的话, 较为易于维护. 1. 不易于扩展和跨任务复用.
2.不支持自动刷新.

从RDS资源构建
1. 如果内容较多, 且经常修改的话, 易于维护.
2. 支持自动刷新.
3.支持跨任务复用

需要连接外部RDS资源,配置过程相对比较繁琐.
从其他Logstore资源构建 支持实时读取, 维护机制更灵活. 高级场景下使用. 需要连接其他Logstore,配置过程相对比较繁琐.

进一步参考

欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持:
image

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
115 6
|
14天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
122 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
30天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
14天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
1月前
FFmpeg【SDK01】日志和字典的使用
FFmpeg中日志功能的使用方法,包括日志级别的设置和AVDictionary的基本操作,同时展示了字符串解析函数如av_parse_video_size、av_parse_video_rate和av_parse_time的应用。
33 2
|
1月前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
37 2
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
47 2
|
2月前
|
开发者 Python
基于Python的日志管理与最佳实践
日志是开发和调试过程中的重要工具,然而,如何高效地管理和利用日志常常被忽略。本文通过Python中的logging模块,探讨如何使用日志来进行调试、分析与问题排查,并提出了一些实际应用中的优化建议和最佳实践。
|
2月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
202 3
|
18天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
146 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板

相关产品

  • 日志服务
  • 下一篇
    无影云桌面