文档

使用Copilot生成、解释、优化SQL语句

更新时间:

您可以使用日志服务Copliot生成、解释、优化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性能与结构,以识别潜在优化点并提供具体改进建议,提高查询效率。

image

操作步骤

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

    image

  3. 在控制台左侧,单击日志存储,在日志库列表中单击目标Logstore。

    image

  4. 在查询分析页面,单击image,进入Copilot界面。

    image

    序号

    说明

    1

    输入区域:您可以输入与SQL相关的问题或需求,以实现所需的查询效果,同时支持交互式对话功能。

    2

    内容区域:此处展示了在输入区域输入问题或SQL语句后,以及Copilot自动完成生成、解释及优化的SQL语句。

    3

    问题推荐区域:为优化查询问题的构建,初次启动Copilot时,将自动根据当前Logstore分析并生成一系列推荐的查询方式。

    说明
    • Copilot处理复杂SQL分析,在Copilot输入内容后,Copilot响应时间较长,请耐心等待。

    • 对于简单查询(如单字段过滤:status:200),不涉及字段分析,不建议使用Copilot,直接使用查询分析输入栏的智能提示更高效。

      image

快速入门

日志数据准备

Logstore存储某服务的访问日志,有如下字段索引。

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

优化SQL语句

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

image