代码之家  ›  专栏  ›  技术社区  ›  Tobias Hermann

如何让Kafka Connect BigQuery Sink Connector为每个事件类型而不是每个主题创建一个表?

  •  0
  • Tobias Hermann  · 技术社区  · 3 年前

    我在用 confluentinc/kafka-connect-bigquery 我们的卡夫卡(Avro)事件。在某些主题上,我们有不止一种事件类型,例如。, UserRegistered UserDeleted 都在这个话题上 domain.user .

    模式注册表中的主题如下。

    curl --silent -X GET http://avro-schema-registry.core-kafka.svc.cluster.local:8081/subjects | jq .
    
    [...]
      "domain.user-com.acme.message_schema.domain.user.UserDeleted",
      "domain.user-com.acme.message_schema.domain.user.UserRegistered",
      "domain.user-com.acme.message_schema.type.domain.key.DefaultKey",
    [...]
    

    我的 properties/connector.properties (我正在使用 quickstart 文件夹。)看起来如下:

    [...]
    topics.regex=domain.*
    sanitizeTopics=true
    autoCreateTables=true
    [...]
    

    在BigQuery中,一个名为 domain_user 创建。但是,我想有两张桌子,例如。, domain_user_userregistered domain_user_userdeleted 或者类似,因为这两种事件类型的模式完全不同。我怎样才能做到这一点?

    0 回复  |  直到 3 年前
        1
  •  1
  •   Robin Moffatt    3 年前

    我想你可以用 SchemaNameToTopic 单消息转换来完成此操作。通过将主题名称设置为模式名称,这将传播到创建的BigQuery表的名称。

    推荐文章