创建定时SQL-日志库导入日志库

定时SQL功能用于定时分析数据、存储聚合数据、投影与过滤数据。本文介绍如何在日志服务中创建定时SQL任务,将源Logstore中的数据处理后存储到目标Logstore中。

重要

目前,定时SQL功能在公测阶段,仅收取SQL独享版计算资源消耗费用。费用说明请参见按使用功能计费模式计费项

前提条件

开始创建定时SQL前,您需完成以下操作:

  • 准备目标Logstore

    在需要写入定时SQL任务处理结果的阿里云账号中创建日志服务Project、标准型Logstore并开启索引。

操作步骤

  1. 使用阿里云账号(主账号)或具有创建定时SQL任务的RAM用户登录Logstore所在日志服务控制台

  2. Project列表区域,单击Logstore所属Project。

  3. 在控制台左侧,单击日志存储,在日志库列表中单击需要分析数据的Logstore名称,此Logstore在定时SQL中即为Logstore

  4. 输入查询和分析语句,然后单击最近15分钟,设置查询和分析的时间范围。

    说明

    本步骤为定时SQL任务的预览操作,用于验证您所使用的查询和分析语句是否正确,执行结果是否有数据。

  5. 统计图表页签中,单击另存为定时SQL

    创建

  6. 创建定时SQL任务。

    1. 计算配置向导中,完成如下配置,然后单击下一步

      项目

      说明

      任务名称

      SLS任务的唯一名称,保持默认即可。

      显示名称

      输入定时SQL任务的显示名称。

      任务描述

      (可选)输入定时SQL任务的描述。

      资源池

      日志服务提供增强型资源池用于数据分析。

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

      写入模式

      选择日志库导入日志库,即表示源Logstore中的数据通过定时SQL处理后将结果存储到目标Logstore中。

      SQL代码

      • 显示您在步骤4中输入的查询和分析语句。在上一步中已经验证正确性,此处无需修改。

      • 如果您需要使用其他查询和分析语句,此处也支持重新定义。输入查询和分析语句后,选择时间范围,并单击预览确认结果。

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

      Project/Logstore

      显示数据源所在的Project、Logstore,此处不支持修改。

      目标

      Logstore和目标Logstore同账号场景

      项目

      说明

      目标Region

      选择目标Project所在地域。

      目标Project

      从下拉列表中选择目标Project

      目标库

      从下拉列表中选择目标Logstore

      写目标授权

      定时SQL任务可通过扮演默认角色自定义角色将数据写入目标Logstore。以下角色二选一即可。

      Logstore和目标Logstore不同账号场景

      项目

      说明

      目标Region

      选择其他Region,并签署数据跨境合规承诺。然后输入目标Project的公网域名,例如cn-hangzhou.log.aliyuncs.com

      目标Project

      输入目标Project的名称,例如test-project

      目标库

      输入目标Logstore的名称,例如test-logstore

      写目标授权

      选择自定义角色,更多信息,请参见授予自定义RAM角色写目标Logstore的权限

      执行SQL授权

      定时SQL任务可通过扮演默认角色自定义角色查询分析Logstore中的数据。以下角色二选一即可。

    2. 调度配置向导中,完成如下配置,然后单击确定

      项目

      说明

      调度间隔

      调度定时SQL任务的频率,每调度一次定时SQL任务产生一个执行实例。调度间隔决定每个执行实例的调度时间。

      • 每小时:每小时调度一次定时SQL任务。

      • 每天:在每天的某个固定时间点调度一次定时SQL任务。

      • 每周:在周几的某个固定时间点调度一次定时SQL任务。

      • 固定间隔:按照固定间隔调度定时SQL任务。

      • Cron:通过Cron表达式指定时间间隔,按照指定的时间间隔调度定时SQL任务。

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

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

      调度时间范围

      调度的时间范围,具体说明如下:

      • 某时间开始:指定第一个实例被调度的开始时间。

      • 特定时间范围:指定实例被调度的起止时间,即定时SQL任务仅在该时间范围内可被执行。

      说明
      • 实例的调度时间必须在该范围内,超出该范围时,定时SQL任务不再产生新实例。

      • 调度时间范围是指__time__。更多详情请参见保留字段

      SQL时间窗口

      定时SQL任务运行时,仅分析该时间范围内的日志。时间窗口与实例调度时间共同作用生效。该时间范围不能大于调度间隔5倍且不能超过1天。更多信息,请参见时间表达式语法

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

      说明
      1. SQL时间窗口是指__time__,更多详情请参见保留字段

      2. 如果未在SQL代码中定义__time__,则写入目标Logstore的日志时间__time__会默认使用调度的开始时间。

      SQL超时

      执行SQL分析操作失败时自动重试的阈值。当重试时间超过指定的最大时间或者重试次数超过最大次数时,该执行实例结束,状态为失败。您可以根据失败原因,手动重试该实例。具体操作,请参见重试定时SQL任务实例

      延迟执行

      调度时间点往后延迟执行的时间。取整范围:0~120,单位:秒。

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

  7. 创建定时SQL任务后,您可以在任务管理 > 定时SQL中查看定时SQL任务。更多信息,请参见管理定时SQL任务

SDK示例

使用Java SDK创建定时SQL任务