代码之家  ›  专栏  ›  技术社区  ›  Fizi

Kafka JDBC Connect:基于消息字段中的多个值插入键

  •  0
  • Fizi  · 技术社区  · 6 年前

    {"APP_SETTING_ID":9,"USER_ID":10,"APP_SETTING_NAME":"my_name","SETTING_KEY":"my_setting_key"}
    

    这是我的连接器文件

    name=data.app_setting
    connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
    poll.interval.ms=500
    tasks.max=4
    mode=timestamp
    query=SELECT APP_SETTING_ID, APP_SETTING_NAME, SETTING_KEY,FROM MY_TABLE with (nolock)
    timestamp.column.name=LAST_MOD_DATE
    topic.prefix=data.app_setting
    
    key.converter=org.apache.kafka.connect.json.JsonConverter
    key.converter.schemas.enable=false
    value.converter=org.apache.kafka.connect.json.JsonConverter
    value.converter.schemas.enable=false
    

    APP_SETTING_ID USER_ID . 所以这个信息的关键是 9*10 = 90

    这种转变是否可能通过连接,如果是的话,请有人阐明它

    1 回复  |  直到 6 年前
        1
  •  1
  •   OneCricketeer Gabriele Mariotti    6 年前

    我想看看你能走多远

    query=SELECT APP_SETTING_ID, APP_SETTING_NAME, SETTING_KEY, (APP_SETTING_ID*USER_ID) as _key FROM MY_TABLE with (nolock)
    

    transforms=AddKeys,ExtractKey
    # this make a map
    transforms.AddKeys.type=org.apache.kafka.connect.transforms.ValueToKey
    transforms.AddKeys.fields=_key  
    # this gets one field from the map 
    transforms.ExtractKey.type=org.apache.kafka.connect.transforms.ExtractField$Key
    transforms.ExtractKey.field=_key