Copilot:AI辅助SQL语句自动生成

日志服务Copliot支持使用自然语言生成SQL语句,对日志内容或SQL语句进行解释,优化SQL语句以提高查询效率。

前提条件

创建索引如果您要分析日志,则需创建字段索引并开启统计

重要

为确保Copilot能准确理解和生成SQL,建议索引设计和字段名称满足以下条件:

  • 定义清晰、语义明确的索引列名。

    例如GET /HTTP/1.1索引名称定义为request_method

  • 如无法修改列名,可使用别名补充说明。

    例如某个索引字段名称为test,但实际上该字段主要记录的是请求的状态,在索引别名输入status补充说明。

  • 避免使用意义相近或模糊不清的字段名。

    例如某个索引记录的是文件的名称,建议索引字段名为file_name,避免使用file或其他名称。

使用限制

目前Copilot只适用SQL语句,不能适用SPL语句。

功能概览

  • 生成SQL语句:您使用日常语言表达查询需求,Copilot会自动将这些描述转换为准确的SQL查询语句,从而显著降低使用技术工具的难度。动画

  • 解释SQL语句:解析SQL语句并分解其结构和功能,帮助用户更深入地理解查询逻辑,从而提高SQL技能。动画

  • 优化SQL语句:通过智能分析SQL性能与结构,以识别潜在优化点并提供具体改进建议,提高查询效率。动画

操作步骤

登录日志服务控制台,在目标ProjectLogstore的查询分析页面单击image,进入Copilot界面。按需要选择SQL生成,解释或诊断。image

生成SQL语句使用示例

重要

为提高Copilot识别准确率,建议使用明确的表述方式,如:"查询..."、"分析..."、"编写一个 SQL..."等。

  • 对某个字段进行统计:分析不同host的请求总量,总量字段是body_bytes_sent

    image

  • 对特定host进一步分析,计算百分位的数量:分析下service.cn-shanghai.log.aliyun-inc.com这个P95百分位数据量是多少。因百分位数非标准SQL函数,需要Copilot识别并使用相应函数。

    image

  • 不同host的流量存在差别,计算请求量最大和最小的主机之间的差别:查询最大的host和最小的host,他们的请求量相差多少。

    这个问题复杂在于要在一个SQL里面分别计算最大和最小流量的host,同时要进行比对。

    说明

    对于多条件复杂SQL,Copilot可能出现语法错误或无数据等问题。建议采用分步咨询方式,逐步完善SQL。例如该示例先统计出请求量最大主机和最小主机的数量,再次计算两者的差值。

    1. 输入查询需求。

      image

    2. 使用后结果展示了差值,但是没有展示host的最大值和最小值。

      image

    3. 继续输入需求:上述SQL,需要展示最大和最小流量的host

      image

    4. 使用后Copilot正确地分析了我们的需求。

      image

解释SQL语句使用示例

重要

为提高Copilot识别准确率,建议使用明确的表述方式,如:"分析下..."、"解释下..."等。

  • 解释复杂SQL

    输入复杂SQL,Copilot会告知SQL语句的含义,以及每一个字段的含义。

    image

  • 查询SQL函数

    日志服务包含了许多SQL函数,Copilot可以根据描述给出函数的解释和样例。

    image

  • 查询字段信息

    日志服务可以解释原始日志中的字段含义,帮助您理解日志内容。image

优化SQL语句使用示例

通过智能分析SQL性能与结构,以识别潜在优化点并提供具体改进建议,旨在确保查询能够高效执行。

image