Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡主题似乎只是第一次发挥作用。为什么?_Apache Kafka_Apache Kafka Connect - Fatal编程技术网

Apache kafka 卡夫卡主题似乎只是第一次发挥作用。为什么?

Apache kafka 卡夫卡主题似乎只是第一次发挥作用。为什么?,apache-kafka,apache-kafka-connect,Apache Kafka,Apache Kafka Connect,我正在与Kafka Connect合作(使用汇合实现),并看到一种奇怪的行为。我将源连接配置为从DB表中提取数据,并填充主题。这很有效。 但是,如果我删除主题,删除源配置,然后重置配置(可能会向查询中添加另一列),则不会填充主题。如果我将主题名称更改为以前从未使用过的名称,则它会起作用。我正在使用Postman来设置配置,尽管我认为这在这里并不重要 我的连接配置: { "name": "my-jdbc-connector", "config": { "connec

我正在与Kafka Connect合作(使用汇合实现),并看到一种奇怪的行为。我将源连接配置为从DB表中提取数据,并填充主题。这很有效。 但是,如果我删除主题,删除源配置,然后重置配置(可能会向查询中添加另一列),则不会填充主题。如果我将主题名称更改为以前从未使用过的名称,则它会起作用。我正在使用Postman来设置配置,尽管我认为这在这里并不重要

我的连接配置:

{
    "name": "my-jdbc-connector",
    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
        "connection.url": "jdbc:db2://db2server.mycompany.com:4461/myDB",
        "connection.user: "dbUser",
        "connection.password": "dbPass",
        "dialect.name": "Db2DatabaseDialect",
        "mode": "timestamp",
        "query": "select fname, lname, custId, custRegion, lastUpdate from CustomerMaster",
        "timestamp.column.name": "lastUpdate",
        "table.types": "TABLE",
        "topic.prefix": "master.customer"
    }
}

KAFKA JDBC连接器在时间戳列上使用HighWatermark,即您案例中的最后一次更新。它不依赖于主题,甚至您可以删除JDBC连接器并使用相同的名称重新创建它。它仍然将使用相同的HighWatermark,因为HighWatermark取决于连接器名称。因此,即使重新创建主题,也不会再次加载数据。 因此,有一种方法可以再次重新处理整个数据,您可以采用以下任一方法:

  • 删除主题并删除JDBC连接器,重新创建主题,然后使用其他名称创建JDBC连接器。或

  • 删除JDBC连接器,并使用模式“mode”:“bulk”的相同名称重新创建。它将再次转储主题中的所有DB表。加载后,您可以再次将模式更新为时间戳。 请参阅JDBC连接器配置详细信息

  • 将所有记录的lastUpdate更新为当前时间戳