数据偏斜 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

数据偏斜

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

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

  • 确保分区键的基数较高

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

您可以通过在 Flink 控制面板中比较子任务(即同一个运算符的实例)的接收/发送记录来识别分区中的偏差。此外,可以将 Kinesis Data Analytics 监控配置为公开numRecordsIn/OutnumRecordsInPerSecond/OutPerSecond在子任务级别也是如此。