我有两个KTable对象:
KTable<Long, byte[]> firstTable = builder.table("firstTopic", Consumed.with(Serdes.Long(), Serdes.ByteArray()));
KTable<Long, byte[]> secondTable = builder.table("secondTopic",
Consumed.with(Serdes.Long(), Serdes.ByteArray()));
在那之后,我想加入这两个表:
firstTable.leftJoin(secondTable,
(leftValue, rightValue) -> {
try {
return utils.serializeNetwork(utils.deserializeNetwork(leftValue));
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
)
所以我有两个表,并将它们连接到一个表中,并且我希望通过每个键将结果表存储在kafka状态存储中,但是我不知道该怎么做。
答案 0 :(得分:1)
您可以通过在Materialized
上指定leftJoin
参数并为状态存储指定名称来强制实现到本地存储。
firstTable.leftJoin(..., Materialized.as("my-store-name"));