映射一对多关系

时间:2020-02-23 07:42:11

标签: apache-kafka-streams

我有两个主题。

1-艺术家<ArtistId, Artist>

2-TitleArtist-<String, TitleArtist> TitleArtist由artistId和titleId组成

我试图找出如何产生具有以下结构的表。

ArtistsForTitle-<TitleId, [Artist]>

以表格形式读取Artist流似乎很简单。

对于TitleArtist,我认为我先对titleId进行selectKey,然后对groupByKeyaggregate进行。我不明白的是如何处理从标题中删除艺术家的事情。

1 个答案:

答案 0 :(得分:0)

您应该将两个输入主题都读为KTable(而不是KStream)。首先,您要进行外键联接,以获取演出者信息(从2.3.0版本开始可用),然后使用新键groupBy()进行TitleId,以收集演出者列表。

使用KTables为您提供端到端更新语义。我假设从标题中删除艺术家是TitleArtist主题中的<key,null>条消息?

相关问题