本文介绍日志服务数据加工的使用限制。
任务配置
限制项 | 说明 |
任务数 | 1个Project中最多可创建100个数据加工任务。 重要 数据加工任务处于停止或者运行完成状态时,依然会占用配额,建议及时清理停止或者运行完成状态、并且确认不再使用的数据加工任务,减少配额占用。更多信息,请参见管理数据加工任务。 如您有更大的使用需求,请提工单申请。 |
源数据Logstore消费组依赖 | 1个数据加工任务运行依赖源数据Logstore的一个消费组实例。 加工任务在运行中,不能针对该任务依赖的消费组实例执行删除和重置消费点位的操作,否则任务将重新从其配置的起始时间开始消费数据,可能会导致结果数据出现重复。 重要 为了优化数据加工的运行效率,任务的Shard消费进度会定时更新至其依赖的消费组实例,所以该消费组实例的GetCheckPoint接口结果不能反映最新的加工进度。准确的加工进度数据请参考数据加工仪表盘中的Shard消费延迟模块。 |
源数据Logstore消费组数目 | 1个Logstore中最多可创建30个消费组,即1个源数据Logstore最多可创建30个数据加工任务。更多信息,请参见基础资源。 超出此限制时,加工任务启动后无法正常运行,任务通过其运行日志输出具体错误信息,详情请参考错误日志查看方式。 重要 数据加工任务处于停止或者运行完成状态时,日志服务并不会主动删除其依赖的消费组实例,建议及时清理处于停止或运行完成状态、并且确认不再使用的数据加工任务,减少无效消费组实例。更多信息,请参见管理数据加工任务。 |
任务时间范围修改 | 运行中的任务修改了时间范围后,将根据新指定的起始时间点开始运行,并处理新时间范围内的所有数据。
|
输出目标数 | 在1个数据加工任务中配置独立静态输出目标数限制为20个。 在加工代码中使用1个静态输出目标配置,动态指定Project和Logstore输出数限制为200个。超出此限制时,写入到新增目标的数据将被丢弃。 |
加工处理
限制项 | 说明 |
快速预览 | 数据加工快速预览功能用于调试数据加工代码,使用有以下限制:
数据加工高级预览功能无此限制。 |
运行时并发度 | 数据加工任务使用源数据Logstore的读写Shard数目作为任务的最大运行时并发度。更多信息,请参见加工原理。 Logstore的Shard使用限制请参考基础资源,Logstore的分裂Shard操作请参考管理Shard。 重要
|
并发单元数据负载 | 数据加工任务单个并发单元的数据负载,由其所运行的源数据Logstore Shard中存储数据量所决定。如果写入源数据Logstore的数据在其Shard间分布不均衡,会使得数据加工任务运行时出现热点并发单元,导致部分Shard处理延迟。 如果源数据通过Key路由Shard模式(KeyHash)写入,建议合理分配Key与Shard,尽可能减少数据分布不均衡。 |
内存使用 | 数据加工任务单个并发单元的内存使用限制为6 GB,超过此限制时任务运行性能将变慢,导致处理延迟。 内存使用超限制的引起原因是单次拉取的LogGroup数量过大,需要修改高级参数 重要 高级参数 |
CPU使用 | 数据加工任务单个并发单元的CPU使用限制为100%,可以根据上文扩展并发度上限实现更高的CPU要求。 |
维表数据量 | 维表数据条目数限制为两百万,数据内存使用限制为2 GB。数据量超过该限制时,将做截断处理,使用限制内的数据内容。涉及函数包括res_rds_mysql、res_log_logstore_pull和res_oss_file等。 重要 单个任务中如果包含多个维表,将共享此限制。建议尽量精简维表数据。 |
结果数据写入
限制项 | 说明 |
目标Logstore写入 | 将处理结果写入目标Logstore时,需要满足Logstore的数据写入限制,具体请参考基础资源和数据读写。 如果在使用e_output、e_coutput函数时,指定 此限制可通过数据加工任务日志进行定位,参考错误日志查看方式。 重要 数据加工在遇到目标Logstore写入限制错误时会执行无限重试,以保证数据完整,但是加工任务进度会因此受影响,导致负责当前源Shard的负载处理延迟。 |
跨地域传输 | 通过公网Endpoint完成跨地域数据传输时,由于公网网络质量无法保证,加工结果写入目标Logstore可能会出现网络错误,导致数据加工任务处理延迟。日志服务Endpoint请参考服务入口。 建议为目标Project开启传输加速服务,并在数据加工中配置其传输加速Endpoint以提高网络传输稳定性。更多信息,请参见管理传输加速。 |