Openflow Connector for Amazon Kinesis Data Streams 性能调优

备注

此连接器受 Snowflake 连接器条款 的约束。

在配置 Openflow Connector for Kinesis 以实现最佳性能时,请考虑以下影响引入吞吐量和延迟的关键因素:

Flowfile 大小

为了获得最佳性能,Flowfile 应介于 1-10 MB 范围内,而不是包含单独的小消息。较大的 Flowfile 通过尽可能减少单个文件操作的数量来减少处理开销并提高吞吐量。默认设置应生成在可接受的大小范围内的 Flowfile。当吞吐量低时,预计会生成较小的 Flowfile。

如果您发现较小的 Flowfile 具有高吞吐量,请联系 Snowflake 支持部门 寻求帮助。

网络和基础设施

网络延迟

Kinesis 和 Openflow 之间较低的延迟可以提高整体性能。强烈建议将您的 Kinesis 流和 Openflow 部署在同一个云服务提供商 (CSP) 区域。

节点大小建议

下表根据预期的工作负载特性提供了配置建议。吞吐量值是相对的,在很大程度上取决于源系统配置、主题和流的大小、数据格式以及其他因素。

节点大小

建议场景

消息速率容量

小 (S)

低到中吞吐量场景

每个节点最高 27 MB/s

中 (M)

中到高吞吐量场景

每个节点最高 135 MB/s

大 (L)

高吞吐量场景

每个节点超过 135 MB/s。每个节点最高 310 MB/s。

性能优化最佳实践

调整处理器并发任务

要优化处理器性能,可以调整 ConsumeKinesis 和 PublishSnowpipeStreaming 处理器的并发任务数。并发任务允许处理器同时运行多个线程,从而提高了高容量场景的吞吐量。

要调整处理器的并发任务,请执行以下任务:

  1. 右键点击 Openflow 画布中的处理器。

  2. 从上下文菜单中选择 Configure

  3. 导航到 Scheduling 选项卡。

  4. Concurrent tasks 字段中,输入首选的并发任务数。

  5. 选择 Apply 以保存配置。

重要注意事项

  • 内存使用量:每个并发任务都会使用额外的内存。增加并发任务时监控 JVM 堆使用量。

  • 谨慎开始:从较低的值开始,然后在监控性能指标时逐渐增加。

排查常见的性能瓶颈

使用者延迟严重或 Snowflake 引入瓶颈

如果 Kinesis 使用者延迟增加或 Snowflake 引入速度缓慢,则执行以下任务:

  1. 验证 Openflow 和 Kinesis 之间的网络连接和带宽。

  2. 观察 PublishSnowpipeStreaming 处理器前面的队列是否增加。

    1. 如果存在,请考虑在 调整处理器并发任务 中提供的范围限制中为 PublishSnowpipeStreaming 处理器添加更多并发任务。

    2. 如果不是,请考虑在 调整处理器并发任务 中提供的范围限制中为 ConsumeKinesis 处理器添加更多并发任务。

  3. 考虑使用更大的节点类型。

  4. 考虑增加运行时的节点数量。操作方法为:停止运行时中的连接器,更改节点最小和最大数量限制,然后重新启动连接器。

内存压力

如果遇到与内存相关的问题:

  1. 减小批次大小以减少内存占用。这可以通过更改 PublishSnowpipeStreaming 处理器中的“文件片段大小”和“文件片段数”参数来实现。

  2. 减少 ConsumeKinesis 处理器的并发任务数量。

  3. 考虑使用更大的节点类型。

网络延迟问题

如果遇到高延迟:

  1. 验证 Openflow 和外部系统之间的网络配置。

  2. 考虑将 Openflow 部署在与 Kinesis 流相同的区域。

  3. 如果在低吞吐量环境下工作,请考虑调低 PublishSnowpipeStreaming 处理器中的“客户端延迟”设置和 ConsumeKinesis 处理器中的“最大未提交时间”。