本文介绍数据投递的稳定性和使用限制。

MaxCompute投递(新版)

稳定性

  • 读日志服务
    稳定项 说明
    可用性 可用性较高。

    如果日志服务出错,无法读取数据,MaxCompute投递作业会在内部至少重试10次。如果仍然失败,作业执行会报错,然后作业重启。

  • 写MaxCompute
    稳定项 说明
    并发度 按照日志服务Shard进行分区并创建投递实例,支持快速扩容。

    如果日志服务源Logstore进行Shard分裂,可以在数秒以内完成投递实例的扩容,加快数据导出速度。

    数据不丢失 MaxCompute投递作业基于消费组进行扩展,提供一致性保证。投递完成后,才会提交offset,因此可以保证数据写入MaxCompute之前,offset不被提交,即保证投递数据不丢失。
    Schema变更 如果投递过程中在MaxCompute表中添加了新列,则新列只会被写入新分区,不会被写入旧分区以及当前分区。
  • 处理脏数据
    错误项 是否计入失败条数 说明
    分区错误 常见场景为分区不合法或分区列不存在。该条数据不会写入MaxCompute。
    数据列不合法 常见场景类型为不匹配或者类型转换失败。该列数据不会写入MaxCompute,其余列正常写入MaxCompute。
    数据列过长 常见场景为数据超出string类型或者varchar长度限制。该列数据经过截断后写入MaxCompute,其余列正常写入MaxCompute。
  • 监控告警
    稳定项 说明
    监控告警 数据投递有完善的监控,可实时追踪投递作业的延迟、流量等指标。您可以根据业务需求,配置自定义告警,及时发现投递问题(例如导出实例不足、网络Quota限制等)。具体操作,请参见为MaxCompute投递作业(新版)设置告警
  • 重启作业
    稳定项 说明
    分区数过多 作业重启时,因为分区数过多(5分钟仍未完成写入),可能导致数据重复。
    数据写入失败 作业重启且数据写入MaxCompute失败(授权错误、网络错误)时,可能导致数据部分重复。

使用限制

  • 网络
    限制项 说明
    同地域投递的网络 同地域投递时,数据通过阿里云内网传输,因此网络稳定性和速度更有保障。
    跨地域投递的网络 跨地域投递时,数据通过公网传输,因此网络稳定性和速度没有保障。

    网络出现问题时,内部会重试至少10次,如果仍然失败,作业执行会报错,导致作业重启。

  • 读流量
    限制项 说明
    读流量 单个Project以及单个Shard存在最高流量限制。更多信息,请参见数据读写

    如果超过最高流量限制,请分裂Shard或者申请扩容Project读流量限制。超过限制,会导致MaxCompute投递作业读取数据失败,并在内部至少重试10次,如果仍然失败,作业执行会报错,然后作业重启。

  • 写MaxCompute
    限制项 说明
    并发实例 支持最大的导出并发实例为64。

    如果日志服务Shard数量超过64,则会合并多个Shard到一个实例中进行导出处理,并且尽量保证每个实例中的Shard数相同。

    写入阈值 MaxCompute单分区写入上限为10 MB/s。

    超过限制时,写数据到MaxCompute会不稳定。

    禁止修改数据 MaxCompute投递(新版)使用了MaxCompute流式写入。在流式写入数据到MaxCompute期间,MaxCompute流式数据通道服务会禁止写入的表有更新、删除、插入等数据修改操作。更多信息,请参见流式数据通道概述

    由于禁止修改数据的限制,MaxCompute投递(新版)和MaxCompute投递(旧版)不能同时向同一张MaxCompute表写数据。

    不支持写入特殊表 不支持写数据到MaxCompute的External表、Transactional表和Clustered表。
  • 权限管理
    限制项 说明
    写授权 MaxCompute写授权支持RAM用户以及RAM角色两种方式,并且需要在MaxCompute侧进行单独操作。
  • 数据类型
    • 普通列
      类型 示例 说明
      string "hello" 最大长度为8 MB。
      datetime "2021-12-22 05:00:00.123456" 日志服务中的数据需满足MaxCompute的数据格式要求。
      date "2021-12-22" 日志服务中的数据需满足MaxCompute的数据格式要求。
      timestamp 1648544867 毫秒级或秒级精度。
      decimal 1.2 日志服务中的数据需满足MaxCompute的数据格式要求。
      char "hello" 最大长度为255字节。
      varchar "hello" 最大长度为65535字节。
      binary "hello" 最大长度为8 MB。
      bigint 123 最大支持int64。
      boolean 1
      • 1 、t、T、true、TRUE、True解析为True。
      • 0、f、F、false、FALSE、False解析为False。
      double 1.2 最大支持64位浮点数。
      float 1.2 最大支持32位浮点数。
      integer 123 最大支持int32。
      smallint 12 最大支持int16。
      tinyint 12 最大支持int8。
    • 分区列
      限制项 说明
      分区列 按照字符串处理,需要满足MaxCompute分区列的格式要求。