Scheduled SQL功能用于定时分析数据、存储聚合数据、投影与过滤数据。日志服务支持源Logstore中的数据通过Scheduled SQL处理后存储到目标Logstore中。

前提条件

  • 已采集数据到源Logstore。具体操作,请参见数据采集
  • 已创建目标Logstore。具体操作,请参见创建Logstore
  • 已配置源Logstore和目标Logstore的索引。具体操作,请参见配置索引

操作步骤

说明 目前,Scheduled SQL功能在公测阶段。相关说明如下:
  • 仅支持华北2(北京)、华北3(张家口)、华东1(杭州)、华东2(上海)、华南1(深圳)、印度尼西亚(雅加达)和美国(硅谷)。如果您所在地域未支持该功能,可提交工单申请。
  • 仅收取SQL独享版计算资源消耗费用。费用说明请参见计费项
  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore。
  4. 输入查询和分析语句,选择时间范围,然后单击查询/分析

    查询分析语句由查询语句和分析语句构成,格式为查询语句|分析语句,查询分析语句语法请参见查询语法SQL分析语法

    说明 本步骤为Scheduled SQL作业的预览操作,用于验证您所使用的查询和分析语句是否正确,执行结果是否有数据。
  5. 统计图表页签中,单击创建Scheduled SQL
    创建
  6. 创建Scheduled SQL作业。
    1. 计算配置向导中,完成如下配置,然后单击下一步
      参数 描述
      作业名 Scheduled SQL作业的名称。
      作业描述 Scheduled SQL作业的描述。
      资源池 日志服务提供增强型资源池用于数据分析。

      增强型资源池复用SQL独享版的计算能力,提供足够的分析并发数,与您在控制台上的SQL分析操作进行资源隔离。增强型资源池根据SQL分析操作所消耗的CPU时间收取费用。更多信息,请参见开启SQL独享版

      写入模式 选择日志库导入日志库,即表示源Logstore中的数据通过Scheduled SQL处理后将存储到目标Logstore中。
      SQL代码 显示您在步骤4中输入的查询和分析语句。此处的预览操作与步骤4中的操作一致,用于验证您所使用的查询和分析语句是否正确,执行结果是否有数据。

      SQL作业运行时,日志服务将执行该查询和分析语句分析数据。

      目标Region 目标Project所在地域。
      目标Project 用于存储SQL分析结果的目标Project名称。
      目标库 用于存储SQL分析结果的目标Logstore名称。
      写目标授权 您可以通过如下方式授予日志服务写数据到目标Logstore的权限。
      • 默认角色:授权日志服务使用阿里云系统角色AliyunLogETLRole将Scheduled SQL运行结果写入目标Logstore。
        注意 仅在首次配置时需要操作,且需要由目标Project所属的阿里云账号完成。
      • 自定义角色:授权日志服务使用自定义角色将Scheduled SQL运行结果写入目标Logstore。
        您需先授予自定义角色写数据到目标Logstore的权限,然后在角色ARN中输入您自定义角色的ARN。详细说明如下:
      执行SQL授权 您可以通过如下方式授予日志服务读取源Logstore数据以及在当前Project下执行SQL分析操作的权限。
      • 默认角色:授予日志服务使用阿里云系统角色AliyunLogETLRole执行对应操作。
        注意 仅在首次配置时需要操作,且需要由目标Project所属的阿里云账号完成。
      • 自定义角色:授予日志服务使用自定义角色执行对应操作。

        您需先授予自定义角色相关权限,然后在角色ARN中输入您自定义角色的ARN。更多信息,请参见步骤一:授予RAM角色分析源Logstore日志的权限

    2. 调度配置向导中,完成如下配置,然后单击确定
      参数 描述
      调度间隔 调度Scheduled SQL作业的频率,每调度一次Scheduled SQL作业产生一个执行实例。调度间隔决定每个执行实例的调度时间。
      • 每小时:每小时调度一次Scheduled SQL作业。
      • 每天:在每天的某个固定时间点调度一次Scheduled SQL作业。
      • 每周:在周几的某个固定时间点调度一次Scheduled SQL作业。
      • 固定间隔:按照固定间隔调度Scheduled SQL作业。
      • Cron:通过Cron表达式指定时间间隔,按照指定的时间间隔调度Scheduled SQL作业。

        Cron表达式的最小精度为分钟,24小时制,例如0 0/1 * * *表示从00:00开始,每隔1小时运行一次。

        当您需要配置时区时,需选择Cron模式。常见的时区列表请参见时区列表

      调度时间范围 调度的时间范围,具体说明如下:
      • 某时间开始:指定第一个实例被调度的开始时间。
      • 特定时间范围:指定实例被调度的起止时间,即Scheduled SQL作业仅在该时间范围内可被执行。
      注意 实例的调度时间必须在该范围内,超出该范围时,Scheduled SQL作业不再产生新实例。
      SQL时间窗口 Scheduled SQL作业运行时,仅分析该时间范围内的日志。时间窗口与实例调度时间共同作用生效。该时间范围不能大于调度间隔的5倍且不能超过1天。更多信息,请参见时间表达式语法

      例如,调度间隔固定间隔10分钟开始时间2021-04-01 00:00:00延迟执行30秒SQL时间窗口[@m-10m,@m),则SQL作业运行时,在00:00:30时刻生成第一个执行实例,分析的是[23:50:00~00:00:00)期间的日志。更多信息,请参见调度与执行场景

      SQL超时 执行SQL分析操作失败时自动重试的阈值。当重试时间超过指定的最大时间或者重试次数超过最大次数时,该执行实例结束,状态为失败。您可以根据失败原因,手动重试该实例。具体操作,请参见重试Scheduled SQL作业实例
      延迟执行 调度时间点往后延迟执行的时间。取整范围:0~120,单位:秒。

      当数据写入Logstore存在延迟等情况时,可通过延迟执行来保证数据的完整性。