数据偏斜 - Managed Service for Apache Flink

适用于 Apache Flink 的亚马逊托管服务(亚马逊 MSF)以前被称为适用于 Apache Flink 的亚马逊 Kinesis Data Analytics。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据偏斜

Flink 应用程序以分布式方式在集群上执行。为了扩展到多个节点,Flink 使用了密钥流的概念,这本质上意味着流的事件根据特定的密钥(例如客户 ID)进行分区,然后 Flink 可以在不同节点上处理不同的分区。然后,会根据这些分区对许多 Flink 运算符进行评估,例如 Keyed WindowsProcess FunctionsAsync I/O

选择分区键通常取决于业务逻辑。同时,D ynamoDB 和 Spark 等许多最佳实践同样适用于 Flink,包括:

  • 确保分区键的高基数

  • 避免分区之间的事件量出现偏差

您可以通过比较 Flink 控制面板中接收/发送的子任务(即同一运算符的实例)的记录来识别分区中的偏差。此外,还可将 Managed Service for Apache Flink 监控配置为公开子任务级别numRecordsIn/OutnumRecordsInPerSecond/OutPerSecond子任务级别的指标。