数据偏斜 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

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

数据偏斜

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

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

  • 确保分区键的高基数

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

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