流计算能力快速入门及使用限制

更新时间:
复制 MD 格式

本文旨在以简单明了的方式引导您快速上手云消息队列 Kafka 版流计算能力。

开服地域

已开服:杭州、北京、上海、新加坡

关键名词解释

预留 CU:预留 CU 是流任务运行所需的最小资源保障,即实例在任意时刻都会为该任务持续预留、不会被回收的计算单元数量。

  • 作用说明: 预留 CU 是流任务的资源基线。无论当前数据流量高低,系统都会为任务锁定这部分资源,确保任务在低峰期也能稳定运行、不因资源不足而降速或中断。它决定了任务的"保底算力",也是计费的固定基础部分——即使任务处于空闲状态,预留的这部分 CU 仍会持续占用并计费。

  • 取值建议: 预留 CU 应参照业务的日常平均负载设置,能够平稳承接大部分时段的数据处理量即可。设置过低会导致常态下频繁触发弹性扩容、增加调度开销并可能引入处理延迟;设置过高则会在低峰期造成资源闲置、抬高固定成本。建议结合监控中的 Busy 百分比与 CU 数量观察一段时间后校准:若日常 Busy 长期偏低,可适当调低预留 CU。

CU 上限:CU 上限是流任务在弹性伸缩过程中所能扩展到的最高计算资源边界,即实例自动扩容时允许占用的计算单元数量上限。

  • 作用说明: CU 上限为任务的弹性能力"封顶"。当数据流量上涨、预留 CU 不足以支撑当前负载时,系统会在预留 CU 与 CU 上限之间自动扩容,动态补充算力以消化流量高峰、抑制反压与延迟;当流量回落后,再自动缩容回收多余资源。CU 上限既保证了任务应对突发峰值的能力,又通过设置边界防止异常流量或作业问题导致资源无限扩张、产生不可控的费用。超出预留 CU 的这部分弹性资源,按实际用量计费。

  • 取值建议: CU 上限应参照业务的峰值负载并预留一定余量设置,确保大促、突发流量等场景下任务仍有足够算力扩容。若设置过低,高峰期任务会因触达上限而无法继续扩容,表现为反压升高、处理延迟累积;若设置过高,虽不影响正常运行,但在异常放量时可能带来超出预期的成本,因此建议同时配置资源用量告警。CU 上限必须大于或等于预留 CU。

使用限制

  • DML 限制:不支持 UPDATE / DELETEINSERT INTO 仅支持追加或 UPSERT 模式。

  • JOIN 限制:暂不支持 JOIN 语义。

  • 精确一次语义:端到端精确一次依赖 Sink 的幂等或事务能力(如 Kafka 事务)。

  • 窗口作业资源:使用窗口函数的作业 CU 用量较高,建议至少配置 4 CU。

  • 整体吞吐受外部系统制约:性能参考值仅为内部计算能力,实际吞吐会受上下游数据源/目标的连接数、TPS、配额等限制。

  • 资源上限:资源上限用于在实时数据流量上升时,有足够的计算资源尽快处理数据的计算。请保障账号余额充足,避免因欠费导致流任务停止。

  • 源和目标限制:Kafka流计算能力,必须以云消息队列 Kafka 实例作为源或目标。

快速入门

  1. 开通并购买计算实例:在云消息队列 Kafka 版控制台开通流计算能力,购买计算实例。此时不会产生费用。

  2. 部署实例:在控制台部署实例,部署实例主要确认该计算实例后续任务的网络架构,等待状态变为"服务中"。

  3. 配置成员与权限:将需要使用的阿里云账号或 RAM 用户添加为成员,并通过角色授予相应权限(需要补充流计算实例相应的API列表)。

  4. 编写流任务:新建流任务,使用流式 SQL 定义输入表、输出表和数据处理逻辑。云消息队列 Kafka 版流计算兼容 Flink SQL,支持以下两种创建方式:

    • 通过连接器创建:选择已有数据源或目标端连接器,由系统生成对应的 SQL 模板,在模板基础上补充处理逻辑。

    • 手动创建流任务:手动编写 SQL,或者复制并修改已有流任务的 SQL。

  5. 运行流任务:运行流任务。

    • 调试运行:控制台会展示部分执行结果以供参考,此时数据不会写入目标端,会产生计算资源的计量、计费。

    • 运行:按照SQL部署并执行任务,数据会写入目标端,会产生计算资源的计量、计费。

  6. 观测与调优:通过实例级/任务级监控指标观测 CU 水位、吞吐、Lag 与背压,按需开启弹性伸缩或调整 CU。