在阿里云 Flink 配置 SLS 作为源表时,如果不使用 SPL 下推,默认会消费 Logstore 从指定时间点开始的全量数据,存在以下两个问题:
网络带宽浪费:Connector 从 SLS 拉取了过多不必要的数据行和数据列。例如在安全场景中可能仅需要符合某种特征的数据,或者 Logstore 有 30 个字段但 Flink 只需要 10 个字段,全量拉取造成大量冗余传输。
计算资源浪费:这些不必要的数据进入 Flink 后还需要通过 WHERE 和 SELECT 进行过滤和投影计算,而这些清洗工作并非数据分析的核心关注点,消耗了宝贵的 Flink CU 资源。
虽然 Flink SQL 的 WHERE 和 SELECT 可以完成过滤和投影,但这些操作发生在数据已经通过网络进入 Flink 之后。使用 SPL 下推则将这些预处理逻辑推到 SLS 服务端执行,从源头减少不必要的数据传输和计算。