全部产品
Search
文档中心

日志服务:数据转换

更新时间:Aug 26, 2026

在使用统计图表进行格式化展示前,您可以通过数据转换对查询分析结果进行处理。例如合并多个查询分析结果、对查询分析结果进行分类等。

重要
  • 仅统计图表(Pro版本)支持设置数据转换。日志服务支持的统计图表(Pro版本),请参见图表类型

  • 每个数据转换存在唯一的ID,采用字母T+大写字母的格式,例如TA、TB。

  • 在设置数据转换前,必须已执行查询分析操作。更多信息,请参见查询分析

数据转换类型

您可以在添加统计图表时,设置数据转换。数据转换的类型包括联结、分类、解析时间戳、Group By、行列变换。

  • 分类:根据指定的字段对查询分析结果进行分组,并针对每组进行计算,参数说明如下表所示。具体操作,请参见分类示例

    参数

    说明

    选择数据源

    选择目标查询分析。例如选择A,表示对查询分析A的结果进行分类。

    X轴

    选择目标字段作为X轴。

    Y轴

    选择目标字段作为Y轴。

    聚合列

    选择需要在第三维度中分类聚合的字段。例如选择kind字段,表示对kind字段进行分类并完成聚合统计。

  • 联结:通过Left Join、Right Join或Full Join将多个查询分析结果合并为一个结果,并在统计图表中展示,参数说明如下表所示。具体操作,请参见联结示例

    参数

    说明

    连接方式

    选择连接方式,用于连接您所添加的各个查询分析的结果。

    连接字段

    通过各个查询分析结果中都存在的字段进行连接。

例如设置TA为分类类型,选择数据源为A,X轴为Time,Y轴为count,聚合列为kind;设置TB为联结类型,连接方式为Left Join,连接字段为Time。

联结示例

执行查询分析A和B,返回两个查询分析结果,两个查询分析结果中存在相同的time列。此时可以通过time字段进行Left Join,将两个查询分析结果合并,并在同一个表格中展示。

  • 查询分析配置:查询分析A类型为LogStore(SQL),Logstore为sls-mall-traces,语句为* | select __time__ - __time__ % 60 as time, count() as pv, '电脑' as icon, '数据库' as database from log group by time order by time asc limit 2000;查询分析B类型为LogStore(SQL),Logstore为sls-mall-traces-deps,语句为* | select __time__ - __time__ % 60 as time, count() as pvb from log group by time order by time asc limit 2000

  • 查询分析A的结果:返回的表格包含time、pv、icon、database四列,展示了按60秒分组的统计数据。

  • 查询分析B的结果:返回的表格包含time、pvb两列,展示了按60秒分组的PVB统计数据。

  • 数据转换配置:设置类型为联结,连接方式选择Left Join,连接字段选择time

  • 数据转换结果:通过Left Join合并后,表格包含time、pvb、pv、icon、database五列,实现了两个查询分析结果按time字段的合并展示。

分类示例

查询分析A表示对数据进行聚合计算,然后按照kind字段和time字段进行分组。通过线图展示时,只能展示其中一部分数据。此时可以通过数据转换中的分类功能,将查询分析结果按照kind字段的值(producer、consumer、server、client、internal)分为5类,然后通过线图展示各个类别对应的数量。

  • 查询分析配置:查询分析A类型为LogStore(SQL),Logstore为sls-mall-traces,语句为* | SELECT __time__ - __time__ % 60 AS Time, count(1) AS count, kind GROUP BY Time, kind ORDER BY Time LIMIT 1000

  • 数据转换前的结果

    • 表格:返回的表格包含Time、count、kind三列,共80条数据,每个时间点对应producer、consumer、server、client、internal五种kind类型的计数。

    • 线图数据转换

  • 数据转换配置:设置类型为分类,选择数据源为A,X轴为Time,Y轴为count,聚合列为kind

  • 数据转换后的结果

    • 表格:分类后的表格按kind字段将数据拆分为consumer、producer、internal、server、client五个独立列,每行展示同一时间点各类别的计数值。

    • 线图数据转换

解析时间戳示例

执行查询分析A,返回查询分析结果。此时通过解析时间戳,可以将指定的字段解析成UNIX时间戳。

  • 查询分析配置

    查询分析A的类型为Logstore(SQL),查询语句为* | select *

  • 查询分析A的结果

    返回的表格包含__line__、file、info、time、__time__、_source_等列,其中time列值的格式为2024-03-04T10:31:27.427014,共82条数据。

  • 数据转换配置

    设置数据转换类型为解析时间戳,选择数据源为A,字段选择time,格式设置为YYYY-MM-DD H:mm:ss

  • 数据转换结果

    转换后的表格中,time列的值已从时间字符串解析为UNIX时间戳格式(如1720578030),共100条数据。

Group By示例

执行查询分析A和B,返回两个查询分析结果,两个查询分析结果中存在相同的request_method列。此时可以通过request_method字段进行Group By,将两个查询分析结果合并,并在同一个表格中展示。

  • 查询分析配置

    查询分析A和B均选择Logstore(SQL)类型,Logstore为nginx-access-log,查询语句均为* | SELECT request_method, COUNT(*) as c group by request_method

  • 查询分析A的结果

    查询分析A的结果表格包含request_method和c两列:HEAD(1)、GET(237)、DELETE(17)、POST(62)、PUT(64)。

  • 查询分析B的结果

    查询分析B的结果与A相同,包含相同的request_method和对应计数。

  • 数据转换配置

    设置数据转换类型为Group By,对request_method字段执行Group By操作,对c字段选择计算方式为总和

  • 数据转换结果

    Group By转换后的结果为两个查询的合并统计:POST(98)、HEAD(2)、PUT(102)、GET(370)、DELETE(28)。

行列转换示例

执行查询分析A,返回查询分析结果。此时通过行列转换,可以将查询结果的行列转换。

  • 查询分析配置

    查询分析A的类型为Logstore(SQL),查询语句为* | select *

  • 查询分析A的结果

    返回的表格包含__line__、file、info、time、__time__、_source_等列,其中time列值的格式为2024-03-04T10:31:27.427014,共82条数据。

  • 数据转换配置

    设置数据转换类型为行列变换,选择数据源为A

  • 数据转换结果

    行列转换后,原始数据的行和列互换,生成_col0至_col11共12列,原始的每行日志记录变为一列展示,共10条记录。