帮你快速理解、总结文档立即下载

新建投递 DLC 任务

最近更新时间:2026-07-08 15:04:02

我的收藏
日志采集到 CLS 后,支持将日志数据投递至腾讯云 DLC 中进行分析。

前提条件

开通日志服务,创建 日志集日志主题,并成功采集到日志数据。
开通腾讯云 DLC 服务,配置日志投递至 DLC 表时,支持选用存量 DLC 表,或由系统自动创建 DLC 表
如果选择"创建 DLC 表"模式,请确认您具备 DLC 数据库管理员权限,否则会创建表失败,后续新增的日志字段也无法写入 DLC 表。
如果选择"已有 DLC 表"模式,则需在待投递日志主题的地域,创建数据库和数据表,请参见 SQL 编辑器
子账号/协作者需要主账号授权,授权步骤参见 基于 CAM 管理权限,授权策略请参见 CLS 访问策略模板
已授权给腾讯云 CLS 服务角色访问 DLC 的权限。大部分用户通过控制台操作时,系统会引导用户完成授权;小部分用户跨过控制台,直接调用 API,这部分客户需要手动去授权,详情请参见 投递任务角色授权

操作步骤

2. 在左侧导航栏中,选择日志主题
3. 单击需要投递的日志主题 ID/名称,进入日志主题管理页面。
4. 选择投递到 DLC 页签,进入投递到 DLC 配置页面,单击新建
基本配置项
解释说明
规则
是否必填
投递任务名称
配置投递任务的名称。
-
必填
服务日志
将投递任务运行的监控指标,写入免费的日志主题 cls_service_log 中。
-
投递模式
当前仅支持批投递
-
投递文件大小
需要投递的原始日志文件的大小,和投递间隔时间配合使用,哪个条件先触发,就按照哪个规则去压缩文件,然后投递到 DLC。
例如:配置256MB,15分钟,如果文件大小在5分钟就到了256MB,那么文件大小这个条件先触发投递任务。
5 - 256,单位:MB
投递间隔时间
指定间隔多长时间,触发一次投递,和投递文件大小配合使用,哪个条件先触发,就按照哪个规则去压缩文件,然后投递到 DLC。
例如:配置256MB,15分钟,如果文件大小在15分钟时仅为200MB,间隔时间这个条件先触发投递任务。
300 - 900,单位:s
5. 单击下一步,进入数据表配置
数据表配置项
解释说明
规则
是否必填
数据目录
当前仅支持 DataLakeCatalog。
-
数据库
选择您的 DLC 数据库。
-
必填
数据表配置方式
支持选择已有 DLC 表创建 DLC 表
-
必填
选择已有 DLC 表(默认)
创建 DLC 表
配置项
解释说明
规则
是否必填
数据表
选择您的 DLC 数据表。
-
必填
数据字段
映射字段:单击该按钮后,日志主题中和 DLC 数据表相同的字段名称将自动填入下方的日志字段名中(参考下图)。对于与 DLC 数据表不相同的字段名, 需要您手动填写,您可参考页面右上角的日志样例,方便您选择字段并填写至日志字段名中。

日志字段名:将 CLS 日志中的字段,和对应的 DLC 字段做 Mapping,如下图中日志:仅支持填写 JSON 中的第一层节点的 key 如 app_name,不支持 details.request_id 这种嵌套节点。
{
"__TIMESTAMP__":1742543131,
"app_name": "cls",
"category": "Filter",
"latency": "11",
"details": {
"request_id": "123456dfg",
"trace_id": "0610df2a4c5d9cdf"
}
}
数据表字段名:系统从 DLC 中读取,此处不支持修改,请前往 DLC 进行修改。
字段类型:DLC 字段的类型,此处不支持修改,请前往 DLC 进行修改。
解析失败赋值:当字段值解析失败后,使用该值写入 DLC。您可选择使用 NULL、空(空字符串)或者自定义的值。其中自定义的值建议使用如下取值:
bool:FALSE
bigint:-1
Int:0
String:''"(空字符串)
JSON:{}
Date:1970-01-01
TIMESTAMP:2025-01-01 00:00:00
说明:
如果日志中某个字段不存在,该字段在 DLC 侧为 Null 值。
如果字段解析指定类型失败:
解析失败赋值为 Null,该字段在 DLC 侧为 Null 值。
解析失败赋值为非 Null,会再按照该赋值进行解析,解析成功则写入,否则该字段在 DLC 侧体现为 Null 值。
开启映射:是否将该字段映射至 DLC 表,如果不需要,请关闭开关。
NULL/空/自定义值
必填
自动增加字段
该配置默认打开,用于同步日志中的新增字段至 DLC:系统实时监听日志数据流,识别日志里从未投递至 DLC 的新增字段、自动完成字段类型推导并投递至 DLC。
选中:系统自动识别日志新增字段,自动推断字段类型并在 DLC 表新增该数据字段,分区字段不做任何变更。DLC 字段名称沿用原始日志字段名称。
不选中:仅将投递任务中已配置、且映射开关开启的存量字段投递写入 DLC。
触发整条日志投递失败的异常场景:
字段类型不匹配:日志实际数据类型与 DLC 已有字段定义类型冲突(如日志为字符串 abc,DLC 字段定义为 INT 整型);
单次新增字段超限:单条日志触发自动新增字段时,新增字段数量>50个;
字段名称超长:任意字段名字符长度>128。
该配置默认开启
分区字段
日志字段名:日志的字段名称,用于 Mapping DLC 的分区字段,如果您的 DLC 表按照时间进行分区,那么建议您此处使用日志时间字段,即__TIMESTAMP__。
数据表字段名:分区字段,系统从 DLC 中读取,此处不支持修改,请前往 DLC 进行修改。
字段类型:分区字段的类型,系统从 DLC 中读取,此处不支持修改,请前往 DLC 进行修改。
-
必填
时间分区格式
时间分区格式,配置示例和参数详情请参见如下说明。
说明:
仅当 DLC 分区列中的日志字段名配置为__TIMESTAMP__,时间分区格式才生效。
建议使用天进行分区,分钟和秒会导致 DLC 表的分区数目太多。
时间分区格式示例如下:
%Y-%m-%d-%H-%M:2025-07-09-20-30
%Y-%m-%d-%H:2025-07-09-20
%Y-%m-%d:2025-07-09
%Y-%m:2025-07
和时区配合使用
时区(UTC)
该时区用于格式化时间以及时间分区。
和时间分区配合使用
数据表配置项
解释说明
规则
是否必填
数据表
请输入数据表的名称,系统将为您自动 创建 DLC 原生表。表的属性如版本、生命周期、过期配置等采用默认配置,如需修改请前往 DLC 编辑表
-
必填
数据字段
映射字段:单击该按钮后,系统采样一条最新日志,解析 JSON 首层 Key,生成 DLC 表 Schema,参考下图。单条日志无法覆盖全部日志字段,系统默认开启 自动增加字段,实时监测日志流中新增的字段。并将其投递至 DLC。

日志字段名:将 CLS 日志中的字段,和对应的 DLC 字段做 Mapping,如下图中日志:仅支持 JSON 中的第一层节点的 key 如 app_name,暂不支持 details.request_id 这种嵌套节点。
{
"__TIMESTAMP__":1742543131,
"app_name": "cls",
"category": "Filter",
"latency": "11",
"details": {
"request_id": "123456dfg",
"trace_id": "0610df2a4c5d9cdf"
}
}
数据表字段名:和日志 JSON 的第一层 key 相同,您不可更改,请前往 DLC 进行修改。
字段类型:DLC 字段的类型,CLS 会推测字段类型并预先填入,您可更改
注意:
日志字段名向 DLC 字段名映射时,字段名的长度,非法字符处理规则,以 DLC 处理结果为准,您可 前往 DLC 查看
解析失败赋值:当字段值解析失败后,使用该值写入 DLC。您可选择使用 Null、空(空字符串)或者自定义的值。其中自定义的值建议使用如下取值:
bool:FALSE
bigint:-1
Int:0
String:''"(空字符串)
JSON:{}
Date:1970-01-01
TIMESTAMP:2025-01-01 00:00:00
说明:
如果日志中某个字段不存在,该字段在 DLC 侧为 Null 值。
如果字段解析指定类型失败:
解析失败赋值为 Null,该字段在 DLC 侧为 Null 值。
解析失败赋值为非 Null,会再按照该赋值进行解析,解析成功则写入,否则该字段在 DLC 侧体现为 Null 值。
开启映射:控制当前字段是否同步投递至 DLC 表.
关闭映射后,即使开启了自动添加字段,该字段也不会投递至 DLC;
已关闭映射需重新投递的字段:在 DLC 侧创建对应字段,CLS 映射默认开启。
说明:
查看投递任务时,为了保持字段一致性,CLS 只拉取 DLC 表的现有字段,也就意味着关闭映射的字段不会显示在数据字段中。
NULL/空/自定义值
必填
分区字段
日志字段名:日志的时间字段, 默认__TIMESTAMP__。
数据表字段名:DLC 分区字段,默认__TIMESTAMP__,此处不支持修改,请前往 DLC 进行修改。
字段类型:分区字段的类型,此处不支持修改,请前往 DLC 进行修改。
-
必填
时间分区格式
时间分区格式,配置示例和参数详情请参见如下说明。
说明:
仅当 DLC 分区列中的日志字段名配置为__TIMESTAMP__,时间分区格式才生效。
建议使用天进行分区,分钟和秒会导致 DLC 表的分区数目太多。
时间分区格式示例如下:
%Y-%m-%d-%H-%M:2025-07-09-20-30
%Y-%m-%d-%H:2025-07-09-20
%Y-%m-%d:2025-07-09
%Y-%m:2025-07
和时区配合使用
时区(UTC)
该时区用于格式化时间以及时间分区。
和时间分区配合使用

投递失败日志的处理:您可选择将投递失败的日志投递至您指定的 DLC 表。
将投递失败的日志存储至 DLC 表
处理投递失败数据的方式,默认关闭。您可启用该配置,将投递失败的日志数据,写入到指定的 DLC 表。
-
将投递失败的日志存储至 DLC 表
仅当用户启用将投递失败的日志存储至 DLC 表时,需要配置该项。
失败日志表配置方式:
自动新建 DLC 表:
失败日志表名:系统自动创建一张表用于存储失败日志,默认表名为 cls_2_dlc_shipping_failed。
失败日志字段名:系统将投递失败的日志写入该字段,默认值为 log_deliver_failed。
选择已有表:
失败日志表:从已有 DLC 表中选择一张表存储失败日志。
失败日志字段名:系统将投递失败的日志写入该字段,需手动输入一个类型为 String 的字段名。
-
6. 单击提交,完成新任务的配置。

常见问题

问题描述

使用 __TIMESTAMP__ 日志时间字段作为 DLC 分区映射字段:如果日志时间比较分散,比如当天上报的数据中包含昨天甚至更早时间的日志,DLC 在写入时会根据日志时间进行分区,产生较多碎片化的 parquet 文件,造成批次写入耗时上升,写入吞吐下降,严重时一批数据可能要花费 5min 以上才会写入完成。

解决思路

如果涉及到此类场景,建议使用 __TAG__.receive_time 作为 DLC 时间分区映射字段,数据会按照 CLS 时间进行分区,减少碎片化的 parquet 文件,提高写入吞吐。额外的影响就是没有按日志时间进行分区,需要注意数据统计。