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