帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 查询与分析
  6. 定时SQL
  7. 定时SQL Exactly-Once

定时SQL Exactly-Once

  • 定时SQL
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

日志服务定时SQL保证每次任务的计算结果都以Exactly-Once方式写入到目标存储库(Logstore和MetricStore),确保数据不会重复写入,也不会丢失。日志服务基于Logstore的幂等写入来实现定时SQL结果数据的Exactly-Once。

说明

本文内容适用于Logstore和MetricStore,仅以Logstore为例进行说明。

背景信息

日志服务Logstore中包含多个Shard,每个Shard对应一个Hash Key区间(左闭右开)。您可通过负载均衡模式或者指定Hash Key的模式写数据到Logstore,数据最终落到某个Hash Key中。更多信息,请参见分区(Shard)。

  • 负载均衡模式:每个数据包随机写入当前可用的Shard中。

  • 指定Hash Key模式(幂等写入):指定Hash Key的范围,数据将被写入包含该Hash Key范围的Shard中。

Exactly-Once

幂等写入

日志服务通过指定hash key和sequence id,实现数据的幂等写入。

  • hash key用于指定数据写入的Hash Key范围。

  • sequence id用于指定待写入数据在该Hash Key中的ID。

    您需保证Sequence ID单调增长,进而保证数据的幂等写入,避免写入任务多次重试时导致数据重复。

    • 当您将数据写入到相同的Hash Key中时,如果待写入数据的Sequence ID小于等于Hash Key中记录的最近一次写入的数据的Sequence ID,则日志服务将拒绝数据写入并返回错误。

    • 当您将数据写入到相同的Hash Key中时,如果待写入数据的Sequence ID大于Hash Key中记录的最近一次写入的数据的Sequence ID,则日志服务将允许数据写入,并更新Hash Key中的Sequence ID。

    幂等写入

基于幂等写入的定时SQL Exactly-Once

定时SQL采用幂等写入方式向目标Logstore写数据。在幂等写入方式的基础上,定时SQL会为每次任务的计算结果生成具有以下特性的Hash Key以及Sequence ID,从而实现Exactly-Once写入。

  • 为两个不同的定时SQL任务实例生成不同的Hash Key。

    当多个定时SQL任务向同一个Logstore写入数据时,定时SQL会为各个任务生成不同的Hash Key,避免Sequence ID冲突。

  • 为同一个定时SQL任务中的不同实例生成递增的Sequence ID。

Exactly-Once

重要

当您通过以下方式向同一个Logstore中的同一个Hash Key写入数据时,可能出现Sequence ID冲突,导致其中一方写入数据失败,引起数据缺失问题。

  • 通过API或SDK写入数据,并指定hash key参数和sequence id参数。

  • 通过Logtail写入数据,并开启ExactlyOnce功能。具体操作,请参见Logtail配置。

  • 通过定时SQL任务写入数据。

相关文章

使用限制 2025-04-22 10:56

本文介绍定时SQL的使用限制。 特殊任务 日志服务的Trace、Cloud Lens for SLB等功能依赖定时SQL。为了保证这些功

授权 2025-04-22 10:56

本文介绍定时SQL任务所涉及的相关权限。 操作定时SQL任务的权限 操作权限包括创建、删除、修改、查看定时SQL任务等。 </

授权RAM用户操作定时SQL 2025-04-22 10:56

本文介绍如何为RAM用户授予操作定时SQL的权限。 前提条件 已创建RAM用户。具体操作,请参见创建RAM用户。

使用默认角色创建定时SQL任务 2025-04-22 10:56

日志服务支持使用默认角色AliyunLogETLRole或自定义角色创建定时SQL任务。本文介绍如何创建并使用默认角色AliyunLogETLRole。

使用自定义角色创建定时SQL任务 2025-04-22 10:56

日志服务支持使用默认角色AliyunLogETLRole或自定义角色创建定时SQL任务。本文介绍如何授权自定义RAM角色分析和写入Logstore。 授予自定义RAM角色分析源Logstore的权限

创建定时SQL任务 2025-04-22 10:56

日志服务提供定时SQL功能,用于定时分析数据、存储聚合数据、投影与过滤数据。本文介绍定时SQL的使用场景。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1