本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
数据偏斜
Flink 应用程序以分布式方式在集群上执行。为了向外扩展到多个节点,Flink 使用了密钥流的概念,这意味着流的事件根据特定的键(例如客户 ID)进行分区,然后 Flink 可以在不同的节点上处理不同的分区。然后,许多 Flink 运算符会根据这些分区进行评估,例如带钥匙的窗户
选择分区键通常取决于业务逻辑。同时,还有许多最佳实践,例如DynamoDB
确保分区键的基数较高
避免分区之间的事件卷出现偏差
您可以通过在 Flink 控制面板中比较子任务(即同一个运算符的实例)的接收/发送记录来识别分区中的偏差。此外,可以将 Kinesis Data Analytics 监控配置为公开numRecordsIn/Out和numRecordsInPerSecond/OutPerSecond在子任务级别也是如此。