невозможно сопоставить темы с указанным индексом в соединителе kafkaasticsearch - PullRequest
0 голосов
/ 10 января 2020

попытался отобразить topi c "name: localtopi c" на index "name: indexoftopi c", создав два новых индекса в elasti c search "localtopi c и indexoftopi c "и данные topi c видны только в topi c имя индекса" localtopi c ", ошибки в соединителе не отображаются (распределенный режим)

моя конфигурация

 "config" : {
  "connector.class" : "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
  "tasks.max" : "1",
  "topics" : "localtopic", 
  "topic.index.map" : "localtopic:indexoftopic",
  "connection.url" : "aws elasticsearch url",
  "type.name" : "event",
  "key.ignore" : "false",
  "schema.ignore" : "true",
  "schemas.enable" : "false",
  "transforms" : "InsertKey,extractKey",
  "transforms.InsertKey.type" : "org.apache.kafka.connect.transforms.ValueToKey",
  "transforms.InsertKey.fields" : "event-id",
  "transforms.extractKey.type" : "org.apache.kafka.connect.transforms.ExtractField$Key",
  "transforms.extractKey.field" : "event-id"
 }

имя индекса: indexoftopi c создано в эластичном поиске, но данные видны по имени индекса: локальная версия kafkaversion: 2.3 конверсионная версия: 5 эластичная поисковая версия: 3.2.0

даже в журналах INFO - themes.regex = "", Я не знаю его вариант, может кто-нибудь предложить. как это использовать ???

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

Ниже работал для меня, но я сопоставлял только 1 топи c с другим именем индекса

"transforms": "addSuffix",  
"transforms.addSuffix.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.addSuffix.regex": "topic1.*",
"transforms.addSuffix.replacement": "index1",

, поэтому при преобразовании выше любой топи c, такой как topic1, topic1-test, topic1<anystring>, будет сопоставленный с index1

поочередно, вы также можете использовать имя topi c в качестве замены, изменив последние 2 строки, как показано ниже, это выберет

    "transforms.addSuffix.regex": "topic.*",
    "transforms.addSuffix.replacement": "index$1",

в основном, Вы можете заменить частичное или полное имя topi c, используя регулярное выражение.

0 голосов
/ 10 января 2020

Рекомендуется использовать вместо этого преобразование RegexRouter, если вы посмотрите параметры конфигурации

topic.index.map

Эта опция больше не поддерживается. Будущая версия может удалить его полностью. Используйте преобразования одного сообщения, такие как RegexRouter, для сопоставления имен topi c и имен индексов.

...