日志服务数据加工:概念篇-阿里云开发者社区

开发者社区> 成喆> 正文

日志服务数据加工:概念篇

简介: 本篇介绍日志服务数据加工的相关概念
+关注继续查看

基本概念

ETL, Data Transformation

ETL (Extract, Transform, Load)是数据分析领域中数据加载、转换、输出的的意思,日志服务中主要加载源Logstore与输出到其他Logstore, 也会加载OSS, RDS, 其他Logstore做数据富化. 但主要是对数据进行Data Transformation的工作.

事件、数据、日志

在数据加工的上下文中, 事件、数据都是表示日志, 例如事件时间就是日志时间,丢弃事件字段函数drop_event_fields就是用于丢弃特定日志字段.

日志时间

日志自身的时间, 指日志表示的事件所发生的时间. 也称事件时间. 在日志中的保留字段为__time__,一般由日志中的时间信息直接提取生成。整型,Unix标准时间格式。单位为秒,表示从1970-1-1 00:00:00 UTC计算起的秒数。

日志接收时间

日志到达服务器被接收时的时间, 默认不保存在日志中, 但是如果数据logstore开启了记录外网IP, 会保留在日志标签字段的__receive_time__上, 数据加工中的完整字段名是__tag__:__receive_time__. 中, 类型整型,Unix标准时间格式。单位为秒,表示从1970-1-1 00:00:00 UTC计算起的秒数。

注意: 数据加工日志作业的配置项高级选项时间范围, 是以日志接收时间为准的.

日志时间 vs. 日志接收时间

大部分场景下, 日志是实时发送给日志服务的, 因此日志的时间与接收日志的基本相同或者接近. 如果日志不是实时发送的, 日志时间与接收时间会不一致, 这种情况一般发生在导入历史时间的情况. 例如通过SDK导入了过去30天的日志. 那么日志时间就是上个月的, 而日志接收时间就是当前.

日志标签

日志的标签TAG,包括:

  • 用户自定义标签:您通过API PutLogs写入数据时添加的标签。
  • 系统标签:服务端为您添加的标签,包括__client_ip__和__receive_time__。
    在数据加工中, 标签字段以__tag__:作为前缀.

具体参考日志字段

配置相关

源Logstore

数据加工中, 读取数据的logstore再进行加工的是源logstore. 一个作业只支持一个源logstore. 但可以对一个源logstore配置多个加工作业.

目标Logstore

数据加工中数据写入的logstore叫目标logstore. 一个作业可以是一个或者多个. 可以是静态配置的, 也可以是动态配置的.

LOG DSL

日志服务领域专用语言LOG DSL (Domain Specific Language)是日志服务数据加工使用的编排语言, 一种Python兼容的脚本语言. LOG DSL基于Python提供内置200个函数简化常见数据加工模式. 也支持用户自由定义的Python扩展(目前仅针对特定客户开放). 详情请参考日志服务DSL

加工规则

也叫加工脚本, 是使用ETL语言编排的逻辑代码集合.

加工作业

由源logstore、目标logstore、加工规则以及其他配置项如加工时间范围、权限参数等组成的任务, 叫做加工作业. 也是数据加工的最小调度单元.

规则相关

资源

除了数据源的logstore外的, 数据加工中会引用的第三方数据源叫做资源做某种配置或者富化, 包括但不限于本地资源, OSS, 外部Logstore, RDS等.

维表

用于做数据富化的数据某些维度信息的外部表格叫做维表. 例如公司用户账户列表, 产品列表, 地理位置信息库等. 维表可能会动态更新, 维表一般存在于资源中.

富化、映射

日志包含的信息不全时, 需要借助外部信息进行完善. 对日志一个或多个字段通过映射完善出更多信息的过程叫做富化或者映射.

例如某个请求包含HTTP状态码status, 可以通过如下表格富化出新字段HTTP状态描述status_desc:

status status_desc
200 成功
300 跳转
400 权限错误
500 服务器错误

或者源数据中有user_id字段, 使用外部账户维表, 映射出其对应用户名、性别、注册时间、邮箱等信息放入到事件字段中并写入目标logstore中。

分裂

日志信息非常复杂, 同时包含了多条信息时, 对一条日志分裂成多条日志时的过程叫做事件分裂.
例如某一条日志的字段content内容如下:

__time__: 1231245
__topic: "win_logon_log"
content: 
[ {
    "source": "1.2.3.4",
    "dest": "1.2.3.4"
    "action": "login",
    "result": "pass"
},{
    "source": "1.2.3.5",
    "dest": "1.2.3.4"
    "action": "logout",
    "result": "pass"
}
]

可以分裂成2条日志:

__time__: 1231245
__topic: "win_logon_log"
content: 
{
    "source": "1.2.3.4",
    "dest": "1.2.3.4"
    "action": "login",
    "result": "pass"
}

__time__: 1231245
__topic: "win_logon_log"
content: 
{
    "source": "1.2.3.5",
    "dest": "1.2.3.4"
    "action": "logout",
    "result": "pass"
}

GROK

使用模式化语法代替复杂的正则表达式.
例如
grok("%{IPV4}")表示一个匹配IP v4的正则表达式,等价于: "(?<![0-9])(?:(?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]))(?![0-9])"
具体参考GROK参考

正则捕获

用于特定正则表达式中局部内容捕获并给与一个名字, 数据加工中主要用于传递给e_regex中更直观的配置提取的字段名.
例如
e_regex("content", "(?P<email>[a-zA-Z][a-zA-Z0-9_.+-=:]+@\w+\.com")表示提取字段content中的邮件地址并放入到字段email中. 这里邮件是一个通用正则表达式, 推荐使用GROK进行简化:
e_regex("content", grok("%{EMAILADDRESS:email}").

进一步详情,请参考用户手册。

进一步参考

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9482 0
日志服务数据加工:错误排查指南
日志服务数据加工:错误排查指南, 覆盖数据加工各个环节的错误与排查实践
8242 0
日志服务数据加工: 子账号授权配置
本文介绍如何授权阿里云子账号操作数据加工功能.
1671 0
日志服务数据加工培训直播资料汇总: 扫平日志分析路上障碍, 实时海量日志加工实践
日志服务数据加工系列培训资料汇总: 扫平日志分析路上障碍, 实时海量日志加工实践
1321 0
日志服务数据加工最佳实践: 解析syslog各种标准格式
本篇介绍日志服务数据加工最佳实践: 解析syslog各种标准格式的整体结构, 覆盖RFC524, RFC3164以及RSyslog的标准配置格式: TraditionalFormat, FileFormat, RSYSLOG_SyslogProtocol23Format, RSYSLOG_Debug.
1471 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13166 0
日志服务(SLS)数据模拟器初体验
日志服务SLS是阿里集团自研的一站式日志平台,用户无需开发就能能够开箱即用地使用它来提升运维、运营效率,建立 DT 时代海量日志处理能力。SLS数据模拟器是SLS提供的一个用于接入模拟数据的数据接入方式,支持丰富的数据模拟场景,包含各类阿里云云产品日志、自建开源/商业软件日志以及Metric日志等,助力用户一键式导入模拟数据。
184 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11502 0
基于日志服务数据加工与RDS MySQL做数据富化以及数据分析
准备基于sls日志服务对共享单车租赁信息进行加工分析。sls日志服务上记录2019年8月上海地区某共享单车的数据,已脱敏处理,供研究之用。因RDS数据库里保存的是每辆自行车的编号、品牌以及投放批次。因此需要使用日志服务数据加工将单车实时动态记录日志与保存在RDS上的静态数据做富化和数据分析处理。
838 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6885 0
+关注
成喆
不忘初心 方得始终
101
文章
2
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载