本文介绍MaxCompute投递(新版)的稳定性与使用限制。
稳定性说明
读日志服务
稳定项 | 说明 |
可用性 | 可用性较高。 如果日志服务出错,无法读取数据,MaxCompute投递任务会在内部至少重试10次。如果仍然失败,任务执行会报错,然后任务重启。 |
写MaxCompute
稳定项 | 说明 |
并发度 | 按照日志服务Shard进行分区并创建投递实例,支持快速扩容。 如果日志服务源Logstore进行Shard分裂,可以在数秒以内完成投递实例的扩容,加快数据导出速度。 |
数据不丢失 | MaxCompute投递任务基于消费组进行扩展,提供一致性保证。投递完成后,才会提交offset,因此可以保证数据写入MaxCompute之前,offset不被提交,即保证投递数据不丢失。 |
Schema变更 | 如果投递过程中在MaxCompute表中添加了新列,则新列只会被写入新分区,不会被写入旧分区以及当前分区。 |
处理脏数据
错误项 | 是否计入失败条数 | 说明 |
分区错误 | 是 | 常见场景为分区不合法或分区列不存在。该条数据不会写入MaxCompute。 |
数据列不合法 | 否 | 常见场景类型为不匹配或者类型转换失败。该列数据不会写入MaxCompute,其余列正常写入MaxCompute。 |
数据列过长 | 否 | 常见场景为数据超出string类型或者varchar长度限制。该列数据经过截断后写入MaxCompute,其余列正常写入MaxCompute。 |
监控告警
稳定项 | 说明 |
监控告警 | 数据投递有完善的监控,可实时追踪投递任务的延迟、流量等指标。您可以根据业务需求,配置自定义告警,及时发现投递问题(例如导出实例不足、网络Quota限制等)。具体操作,请参见为MaxCompute投递任务(新版)设置告警。 |
重启任务
稳定项 | 说明 |
分区数过多 | 任务重启时,因为分区数过多(5分钟仍未完成写入),可能导致数据重复。 |
数据写入失败 | 任务重启且数据写入MaxCompute失败(授权错误、网络错误)时,可能导致数据部分重复。 |
使用限制
网络
限制项 | 说明 |
同地域投递的网络 | 同地域投递时,数据通过阿里云内网传输,因此网络稳定性和速度更有保障。 |
读流量
限制项 | 说明 |
读流量 | 单个Project以及单个Shard存在最高流量限制。更多信息,请参见数据读写。 如果超过最高流量限制,请分裂Shard或者申请扩容Project读流量限制。超过限制,会导致MaxCompute投递任务读取数据失败,并在内部至少重试10次,如果仍然失败,任务执行会报错,然后任务重启。 |
写MaxCompute
限制项 | 说明 |
并发实例 | 支持最大的导出并发实例为64。 如果日志服务Shard数量超过64,则会合并多个Shard到一个实例中进行导出处理,并且尽量保证每个实例中的Shard数相同。 |
写入阈值 |
重要 超过MaxCompute写入限制,写数据到MaxCompute会不稳定,且会触发MaxCompute侧的流控,导致FlowExceeded或者SlotExceed错误,请联系MaxCompute值班人员解决。 |
禁止修改数据 | MaxCompute投递(新版)使用了MaxCompute流式写入。在流式写入数据到MaxCompute期间,MaxCompute流式数据通道服务会禁止写入的表有更新、删除、插入等数据修改操作。更多信息,请参见流式数据通道概述。 由于禁止修改数据的限制,MaxCompute投递(新版)和MaxCompute投递(旧版)不能同时向同一张MaxCompute表写数据。 |
不支持写入特殊表 | 不支持写数据到MaxCompute的External表、Transactional表和Clustered表。 |
表Schema变更 | 如果您的MaxCompute表Schema有变更,您需要先暂停MaxCompute投递20分钟,再重新启动,使表Schema变更生效。 |
权限管理
限制项 | 说明 |
写授权 | MaxCompute写授权支持RAM用户以及RAM角色两种方式,并且需要在MaxCompute侧进行单独操作。 |
数据类型
普通列
类型
示例
说明
string
"hello"
最大长度为8 MB。
datetime
"2021-12-22 05:00:00"
日志服务中的数据需满足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分区列的格式要求。
管理投递
限制项 | 说明 |
暂停投递任务 | 投递任务会记录上次投递的日志Cursor,恢复运行时从记录的Cursor开始继续投递。因此暂停投递任务时存在如下机制。
|
MaxCompute IP白名单
限制项 | 说明 |
在MaxCompute项目管理中开启白名单(例如开启经典网络IP白名单),可能导致MaxCompute投递失败 | 可以在MaxCompute侧执行命令解决白名单导致的MaxCompute投递失败问题。
|