使用限制

本文介绍日志服务数据加工的使用限制。

  • 任务配置

    限制项

    说明

    任务数

    1个Project中最多可创建100个数据加工任务。

    重要

    数据加工任务处于停止或者运行完成状态时,依然会占用配额,建议及时清理停止或者运行完成状态、并且确认不再使用的数据加工任务,减少配额占用。更多信息,请参见管理数据加工任务

    如您有更大的使用需求,请提工单申请。

    源数据Logstore消费组依赖

    1个数据加工任务运行依赖源数据Logstore的一个消费组实例。

    加工任务在运行中,不能针对该任务依赖的消费组实例执行删除重置消费点位的操作,否则任务将重新从其配置的起始时间开始消费数据,可能会导致结果数据出现重复。

    重要

    为了优化数据加工的运行效率,任务的Shard消费进度会定时更新至其依赖的消费组实例,所以该消费组实例的GetCheckPoint接口结果不能反映最新的加工进度。准确的加工进度数据请参考数据加工仪表盘中的Shard消费延迟模块。

    更多信息,请参见加工原理术语表消费组接口

    源数据Logstore消费组数目

    1个Logstore中最多可创建30个消费组,即1个源数据Logstore最多可创建30个数据加工任务。更多信息,请参见基础资源

    超出此限制时,加工任务启动后无法正常运行,任务通过其运行日志输出具体错误信息,详情请参考错误日志查看方式

    重要

    数据加工任务处于停止或者运行完成状态时,日志服务并不会主动删除其依赖的消费组实例,建议及时清理处于停止或运行完成状态、并且确认不再使用的数据加工任务,减少无效消费组实例。更多信息,请参见管理数据加工任务

    任务时间范围修改

    运行中的任务修改了时间范围后,将根据新指定的起始时间点开始运行,并处理新时间范围内的所有数据。

    1. 如果需要扩展时间范围:建议保留现有任务,新增任务补全需要扩展的时间范围。

    2. 如果需要缩小时间范围:已经写到目标的数据将不会被删除,所以建议必要时清除已经写到目标的数据,再修改任务,以防数据重复。

    输出目标数

    在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_mysqlres_log_logstore_pullres_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以提高网络传输稳定性。更多信息,请参见管理传输加速