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 处理器的并发任务数。并发任务允许处理器同时运行多个线程,从而提高了高容量场景的吞吐量。
要调整处理器的并发任务,请执行以下任务:
右键点击 Openflow 画布中的处理器。
从上下文菜单中选择 Configure。
导航到 Scheduling 选项卡。
在 Concurrent tasks 字段中,输入首选的并发任务数。
选择 Apply 以保存配置。
推荐的并发任务设置¶
节点大小 |
ConsumeKinesis 任务 |
PublishSnowpipeStreaming 任务 |
|---|---|---|
小 (S) |
2 |
1 |
中 (M) |
4 |
2 |
大 (L) |
6 |
3 |
重要注意事项¶
内存使用量:每个并发任务都会使用额外的内存。增加并发任务时监控 JVM 堆使用量。
谨慎开始:从较低的值开始,然后在监控性能指标时逐渐增加。
排查常见的性能瓶颈¶
使用者延迟严重或 Snowflake 引入瓶颈¶
如果 Kinesis 使用者延迟增加或 Snowflake 引入速度缓慢,则执行以下任务:
内存压力¶
如果遇到与内存相关的问题:
减小批次大小以减少内存占用。这可以通过更改 PublishSnowpipeStreaming 处理器中的“文件片段大小”和“文件片段数”参数来实现。
减少 ConsumeKinesis 处理器的并发任务数量。
考虑使用更大的节点类型。
网络延迟问题¶
如果遇到高延迟:
验证 Openflow 和外部系统之间的网络配置。
考虑将 Openflow 部署在与 Kinesis 流相同的区域。
如果在低吞吐量环境下工作,请考虑调低 PublishSnowpipeStreaming 处理器中的“客户端延迟”设置和 ConsumeKinesis 处理器中的“最大未提交时间”。