java - flink可以使用固定数量的key到keyBy一个数据流均匀地避免数据倾斜吗?

标签 java apache-flink grafana influxdb

我设置了keyby并行度30,如何找到30个唯一的key来使数据流keyByed均匀?flink支持这个吗?因为我不需要太多的 key ,并且我会将 key 作为 influxdb 中的标签,所以我不需要太多的 key ,避免 influxdb 中的 oom。但是我如何使用最小 key 来均匀地通过数据流进行 key ?

我想使用flink来跟踪mysql中表的每次更改(例如更新/插入)。并且我会计算每秒每个表的更改次数。但是有些表更改太多,导致keyby数据倾斜,所以我想使用固定数字 key 来平衡 keyby 流的负载。

最佳答案

从技术上讲它可以,但从你的问题中我了解到你并不真正需要使用keyBy(),你只是想这样做来重新平衡流。在这种情况下,您可以轻松地在DataStream上使用rebalance(),这将导致使用循环算法对流进行分区,这确实会导致负载均匀分布.

关于java - flink可以使用固定数量的key到keyBy一个数据流均匀地避免数据倾斜吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57369122/

相关文章:

kubernetes - Promtail 多行不合并堆栈跟踪

java - 我如何告诉 Spring 使用 Java 映射来解析属性占位符?

java - Swig java 进程 std::pair 与 c++ 中的类

java - Apache 弗林克 : Return type of function could not be determined automatically due to type erasure

kotlin - Flink:如何结合countWindowAll()处理有限流的其余部分

docker - 修改grafana查询以跳过一个Docker容器

Java-jxls-XLSTransformer线程安全

java - 删除java中的十六进制UTF-8字符

java - Flink 中名为 "conf/masters"的文件有什么用?

docker - 用于监视多服务器上的Docker容器的Prometheus