tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

关联外部数据

PDF
聚焦模式
字号
最后更新时间: 2026-01-07 15:39:44

操作场景

对日志进行统计分析时,有时需要将日志与外部数据关联起来才能进行完整的业务统计,例如以下使用场景:
日志中仅保存了用户 ID,统计分析时需根据用户 ID 在用户信息数据库中查询用户的等级、地域和类型等信息,例如按用户性别分别统计用户访问次数。
日志中仅保存了业务系统 ID,根据 ID 很难快速对应到具体的业务名称,需要根据 ID 与名称的映射关系将业务系统 ID 翻译为业务名称。
在仪表盘中除了查看日志数据,还需要查看其它存储在数据库中的数据。
日志服务支持将 MySQL 及对象存储中的 CSV 文件作为数据库表关联至日志主题,然后使用 SQL 语句将两部分数据进行关联分析。

前提条件

已开通日志服务并 创建日志主题,日志主题需为标准存储,低频存储不支持使用 SQL 进行统计分析。

注意事项

关联 MySQL 时,请注意网络/数据安全及 MySQL 数据库性能:
网络安全:建议使用内网地址访问 MySQL,数据源类型为云数据库 MySQL 云数据库 TDSQL-C MySQL 时,CLS 将自动采用内网方式访问。
数据安全:建议创建专门的数据库账号供 CLS 访问 MySQL,尽可能的缩小账号对应的资源及操作权限,CLS 仅需查询权限,无需编辑及删除权限,配置方式请参见 云数据库 MySQL 修改账号权限。请妥善保管账号信息,不要泄露。
性能:如果 MySQL 内数据量较大,建议不要直接将生产环境主数据库关联至 CLS,避免通过 CLS 对数据库发起过于复杂的 SQL 查询,影响生产环境稳定性,建议使用 只读实例
关联对象存储 CSV 文件时,建议使用与日志主题相同地域的存储桶,跨地域访问存储桶内的文件将会在 COS 侧产生外网下行流量及相应费用。对象存储访问权限建议使用“私有读写”,避免数据被第三方访问。

操作步骤

2. 在左侧导航栏中,单击日志主题,进入日志主题列表页面。
3. 单击需要关联外部数据的日志主题 ID/名称,进入日志主题管理页面。
4. 选择关联外部数据页签,单击添加外部数据,在弹出对话框中配置相关参数。
云数据库 MySQL / TDSQL-C MySQL
对象存储 COS(CSV 格式文件)
自建 MySQL
使用云数据库 MySQL / TDSQL-C MySQL 时,采用该配置方式:
参数名称
描述
名称
作为 CLS SQL 中的表名,支持小写字母、数字和_,且不能以_开头和结尾,长度为3 - 60字符,在所属地域内名称不能重复。
备注
可选,不超过255个字符
数据源类型
云数据库 MySQL 或 云数据库 TDSQL-C MySQL
地域
选择云数据库所在的地域
MySQL 实例
选择云数据库实例
账户名
访问 MySQL 使用的账户名
密码
访问 MySQL 使用的密码
数据库名
需要关联的 MySQL 数据库名称
表名
需要关联的 MySQL 数据库中的表名称
使用范围
仅当前日志主题可访问:仅当前日志主题可通过 SQL 访问该 MySQL 的数据
当前日志集内日志主题可访问:当前日志主题所属日志集内的日志主题都可以通过 SQL 访问该 MySQL 的数据
配置完成后,单击验证访问配置,验证上述配置是否正确。验证通过后单击确定完成添加。
添加对象存储 COS(CSV 格式文件)时配置如下参数:
参数名称
描述
名称
作为 CLS SQL中的表名,支持小写字母、数字和_,且不能以_开头和结尾,长度为3至60字符,在所属地域内名称不能重复。
备注
可选,不超过255个字符
数据源类型
对象存储 COS(CSV 格式文件)
存储桶地域
选择 COS 文件所属地域
COS 存储桶
选择 COS 文件所属存储桶
文件名称
填写 COS 文件名称
压缩模式
暂时仅支持不压缩
可单击预览数据,验证上述配置是否正确,同时从 CSV 文件中获取前5行数据(含表头)作为样例,进一步配置如下参数:
参数名称
描述
字段类型
支持 text、long 及 double,请根据实际数据类型选择
访问范围
仅当前日志主题可访问:仅当前日志主题可通过 SQL 访问该 MySQL 的数据
当前日志集内日志主题可访问:当前日志主题所属日志集内的日志主题都可以通过 SQL 访问该 MySQL 的数据
单击确定完成添加。
MySQL 直接部署在 CVM 中或其它平台上时,采用该配置方式:
参数名称
描述
名称
作为 CLS SQL 中的表名,支持小写字母、数字和_,且不能以_开头和结尾,长度为3 - 60字符,在所属地域内名称不能重复。
备注
可选,不超过255个字符
数据源类型
自建 MySQL
访问方式
内网地址或公网地址
地域
使用内网地址时需填写,选择 MySQL 所在的地域
所属网络
使用内网地址时需填写,选择 MySQL 所在的 VPC
网络服务类型
使用内网地址时需填写:
若您的 MySQL 需通过 CLB 访问,请选择 CLB
若您的 MySQL 所在服务器可直接访问,请选择 CVM
访问地址
例如 gz-cdb-xxxxx.sql.tencentcdb.com
MySQL 端口
数据库端口,例如3306
账户名
访问 MySQL 使用的账户名
密码
访问 MySQL 使用的密码
数据库名
需要关联的 MySQL 数据库名称
表名
需要关联的 MySQL 数据库中的表名称
使用范围
仅当前日志主题可访问:仅当前日志主题可通过 SQL 访问该 MySQL 的数据
当前日志集内日志主题可访问:当前日志主题所属日志集内的日志主题都可以通过 SQL 访问该 MySQL 的数据
单击验证访问配置,验证上述配置是否正确。验证通过后单击确定完成添加。

使用 SQL 关联查询外部数据及日志数据

从 SQL 角度来看,日志主题内的日志数据及外部数据均为数据库表,日志数据对应的表名为 log ,外部数据对应的表名为添加外部数据时设置的名称。因此可分别使用如下 SQL 单独查询日志数据及外部数据:
日志数据:* | select * from log,其中from log可以省略,即* | select *,同时查询日志数据及外部数据时,建议您不要省略,以提高 SQL 可读性。
外部数据:假设外部数据名称为userinfo,则对应 SQL 为* | select * from userinfo
同时查询日志数据及外部数据需使用 JOINUNION 等语法,例如:
* | select * from log left join userinfo on log.user_id=userinfo.id
注意:
查询外部数据时,| 前的检索条件及本次查询指定的时间范围对外部数据不生效,仅对当前日志主题的日志数据生效。

使用案例

某日志主题为请求日志,包含如下字段:
"status_code": "404"
"local_time": "2023-06-05 19:59:01"
"refer": "_",
"user_id": "15"
"ip": "66.131.53.125"
"url": "\\"GET /class/111.html HTTP/1.1\\""
统计分析该日志时,期望能够按照访问用户性别分别统计访问次数,但访问日志中并没有用户性别字段,无法直接统计,需要在用户信息数据库(MySQL)中根据用户 ID(user_id)查询。
用户信息数据库表如下:
id
Name
Gender
Age
Email
Phone
Address
1
John Doe
Male
32
johndoe@example.com
1234567890
123 Main St
2
Jane Smith
Female
28
janesmith@example.com
9876543210
456 Elm St
3
Michael Johnson
Male
45
michaeljohnson@example.com
5551234567
789 Oak St
4
Sarah Davis
Female
38
sarahdavis@example.com
7894561230
321 Pine St
5
David Wilson
Male
51
davidwilson@example.com
1237894560
654 Maple St
6
Emily Anderson
Female
29
emilyanderson@example.com
4567890123
987 Cherry St
7
Matthew Thompson
Male
37
matthewthompson@example.com
7890123456
321 Plum St
8
Olivia Martinez
Female
26
oliviamartinez@example.com
2345678901
654 Orange St
9
Alexander Taylor
Male
42
alexandertaylor@example.com
9012345678
987 Grape St
10
Emma Clark
Female
31
emmaclark@example.com
3456789012
123 Lemon St
将该数据库表关联至日志主题后,即可使用如下语句将日志中的user_id转换为用户性别Gender
* | select ip,url,user_id,Name,Gender from log left join userinfo on log.user_id=userinfo.id
查询结果如下图,其中 ip、url、user_id 来源于日志,Name、Gender 则来源于用户信息库表。

在此基础上,进一步编写 SQL,即可按照访问用户性别分别统计访问次数:
* | select count(*) as pv,Gender from (select ip,url,user_id,Name,Gender from log left join userinfo on log.user_id=userinfo.id) group by Gender
查询结果如下图,其中 Gender 列中的 null 表示部分日志没有查询到用户性别,可能是日志中无 user_id,也可能为 user_id 在用户信息库中无记录。


规格限制

关联外部数据库的规格与限制,请参见 规格与限制

费用说明

关联对象存储 CSV 文件时,如果对象存储桶与日志主题不在同一个地域,每次查询该数据都会在 COS 侧产生外网下行流量及相应费用,CLS 侧无费用。
关联 MySQL 时,如果使用外网连接,每次查询该数据都会在对应的资源侧(例如云数据库 MySQL 或 CVM)产生外网访问流量,可能产生相应费用(取决于您购买的实例配置),CLS 侧无费用。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈