You need to enable JavaScript to run this app.
导航

数据加工概述

最近更新时间2024.01.18 16:32:38

首次发布时间2023.02.16 18:06:17

日志服务提供灵活便捷的数据加工功能,支持对采集到的日志数据进行清洗过滤、内容脱敏、数据分裂和数据分发。本文档介绍数据加工的原理与能力、限制等信息。

功能概述

在大数据、流式计算等场景下,往往需要将各类日志处理为结构化的数据,例如对格式混乱的日志进行字段内容提取、格式转化等日志内容规整操作,或需要将日志分发到多个数据处理下游系统进行存储或计算,供不同的业务系统使用。日志服务提供实时的数据加工服务,对日志数据进行清洗过滤、内容脱敏、数据分裂和数据分发。创建数据加工任务之后,日志服务会创建一个消费组用于提取源日志主题中的日志数据,并按照指定的加工规则和指定的 DSL(Domain Specific Language) 加工函数对这些日志数据进行逐条加工处理,完成加工后,将处理后的数据写入指定的日志主题,用于后续的日志统计分析、数据转储等。
数据加工功能提供多个 DSL 内置加工函数,支持多种复杂场景的数据结构化与清洗、脱敏等需求。目前支持的加工语法请参考语法简介
此外,日志服务提供数据加工的服务日志,用于查看数据加工任务的进度和运行速率等信息。详细说明请参考服务日志

应用场景

数据加工功能支持以下多种场景的数据处理能力:

  • 结构化处理:对于日志采集时无法进行结构化处理的日志数据,可以先采集到服务端,再通过数据加工功能进行复杂的结构化处理,例如字段提取、格式转换等,便于后续的 SQL 统计与分析。适用于流处理、数据仓库计算等场景。
  • 清洗过滤:对复杂多样的日志数据进行统一过滤,只保留需要重点关注的核心信息。过滤前的日志数据可以设置较短的数据保留时长,减少日志存储量、降低成本。
  • 内容脱敏:对日志中包含的敏感信息进行脱敏处理,例如业务日志中的手机号、身份证号、密码等信息。
  • 数据分裂与分发:经过统一的日志加工,将一条日志拆分为多条数据,分别输出到不同的下游系统。

费用说明

数据加工服务涉及到日志服务的数据加工费用,详细的定价及计费方式请参考日志服务计费项

注意事项

  • 并发单元数据负载:并发单元的数据负载会影响数据加工的性能。
    在数据加工过程中,加工任务的单个并发单元数据负载,取决于其所对应的源日志主题分区中存储的数据量大小。如果在源日志主题中写入日志数据时,数据流量在多个分区之间分布不均衡,会造成数据加工任务运行时出现一些热点单元,从而导致部分分区的加工处理进度延迟。
    如果源日志主题中的日志数据通过 HashKey 路由 Shard 模式写入,建议在写入时合理分配分区的写入流量,尽可能减少数据在分区中的不均衡分布。关于数据写入的详细信息请参考 PutLogs
  • 日志服务会将加工后的数据通过 API 接口 PutLogs 写入目标日志主题。数据写入的速率与目标日志主题的分区数量有关。
    将处理结果写入目标日志主题时,需要满足日志主题的数据写入规格限制。如果目标日志主题的分区数较少,写入数据量较大,可能导致加工延迟。建议根据写入目标日志主题的数据量评估目标日志主题的分区数或打开目标日志主题的 Shard 自动分裂功能。具体请参考基础资源和数据读写,关于打开 Shard 自动分裂请参见分裂Shard
    数据加工在遇到目标日志主题写入限制错误时会执行无限次重试,以保证数据完整,但是加工作业进度会因此受影响,导致负责当前源 Shard 的加工处理延迟。

使用限制

限制项

说明

备注

任务数量

每个日志项目中最多可以创建 100 个数据加工任务,每个日志主题最多可以创建 30 个数据加工任务。包括页面展示的所有状态的任务。

说明

已暂停和已完成状态任务占用配额。如果确认不再使用此状态的任务,建议及时清理任务列表,以减少配额占用。详细信息,请参考管理数据加工任务

如需调整配额,请参考申请资源配额

目标日志主题数量

在 1 个数据加工任务中,最多可以配置 20 个不同的日志主题,用于存储加工后的数据。

如需调整配额,请参考申请资源配额

执行预览

数据加工的执行预览功能用于在线调试数据加工的代码,请注意以下限制:

  • 单次请求中,测试数据或原始日志不超过 20 条,否则该预览请求会返回错误。
  • 单次请求中,最多返回前 100 条加工结果。

/

加工性能

加工任务的总体速率计算公式为源日志主题读写 Shard 数量 * 1MiB/s(压缩前的流量),同时加工任务的总体速率受限于加工规则的复杂度、源日志主题的加工并发度、源日志主题消费速率、目标日志主题的写入速率等因素。详细说明请参考性能影响因素

/

基本概念

概念

说明

ETL

ETL(Extract, Transform, Load)是指对源端业务系统的数据进行抽取、转换、加载至目标端的过程,从而达到整合、标准、统一数据的目的。日志服务支持加载指定源日志主题中的日志数据,并将数据加工处理后的结果输出到指定的目标日志主题。

事件、数据、日志

在数据加工功能中,事件、数据都指代日志数据,例如一个事件对应一条日志。保留事件函数e_keep就是用于保留特定日志的函数。

源日志主题

数据加工中,源日志主题表示待加工的日志存储的位置,日志服务会从中消费数据,并进行数据加工。
一个加工任务中只能设置一个源日志主题,但可以为一个源日志主题添加多个数据加工任务。

目标日志主题

经过加工后的数据写入的日志主题即目标日志主题。
一个加工任务可以配置最多 20 个目标日志主题。

TLS DSL

TLS DSL(Domain Specific Language)是日志服务提供的类 Python 的脚本语言,用于指定数据加工过程中的数据处理逻辑。TLS DSL 提供四十多种函数语法,可支持各种大数据分析与数仓处理场景的数据加工需求。函数列表请参考函数列表

加工规则

数据加工的执行脚本,是 TLS DSL 编排的逻辑代码的集合。

加工任务

数据加工的调度单元,其中定义了源日志主题、目标日志主题、加工规则等多个配置项。