在使用统计图表进行格式化展示前,您可以通过数据转换对查询分析结果进行处理。例如合并多个查询分析结果、对查询分析结果进行分类等。
数据转换类型
您可以在添加统计图表时,设置数据转换。数据转换的类型包括联结、分类、解析时间戳、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条记录。