如何在具有条件的情况下使用jdbc在kafka中进行读取/写入

时间:2019-05-25 07:48:46

标签: jdbc apache-kafka kafka-consumer-api apache-kafka-connect

我有一个Kafka服务器,可以很好地在服务器之间同步表。我的数据库是PostgreSQL,正在使用JDBC接收器/源连接器。

现在我的问题是如何从Source的两个表中读取数据并将数据插入Sink侧的四个不同的表中。

示例:

源表:用户,角色

接收器表:工人,经理,雇主等...

在父服务器中,所有用户在Users表中可用,并且与Role表有关系。另一方面,我想根据其角色将数据插入到特定表中

1 个答案:

答案 0 :(得分:1)

对于JDBC Sink,每个目标表需要一个主题。因此,您需要四个主题,每个目标表一个,并填充有连接的数据。这种连接需要在管道中的某个时刻发生。选项为:

  1. 使用连接器的query选项作为JDBC Source的一部分。构建四个连接器,每个连接器都有必要的查询,以使用在SQL的postgres端完成的连接填充每个目标主题。
  2. 作为流媒体应用程序,例如在Kafka Streams或KSQL中。 JDBC源将引入源usersroles表,并且您将在流过每个记录时执行联接。