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 如何在Kafka connect SMT中重命名/替换结构中的字段?_Apache Kafka_Apache Kafka Connect_Ksqldb - Fatal编程技术网

Apache kafka 如何在Kafka connect SMT中重命名/替换结构中的字段?

Apache kafka 如何在Kafka connect SMT中重命名/替换结构中的字段?,apache-kafka,apache-kafka-connect,ksqldb,Apache Kafka,Apache Kafka Connect,Ksqldb,声明它可以过滤或重命名结构或映射中的字段。但是我找不到任何替换或重命名结构中字段的工作示例 我有一个主题中的数据,正在使用ElasticSearch写入。为简单起见,假设数据的格式如下所示 { 'ID':22, 'ITEM': 'Shampoo' 'USER':{ 'NAME': 'jon', 'AGE':25 } } 因此,如果我试图重命名/替换USER.NAME或USER.AGE,我将如何在连接器中配置它?(我已经用ksqldb编写了所有内容。这是我当

声明它可以
过滤或重命名结构或映射中的字段。
但是我找不到任何替换或重命名结构中字段的工作示例

我有一个主题中的数据,正在使用ElasticSearch写入。为简单起见,假设数据的格式如下所示

{
  'ID':22, 
  'ITEM': 'Shampoo'
  'USER':{
    'NAME': 'jon', 
    'AGE':25
   }
}
因此,如果我试图重命名/替换
USER.NAME
USER.AGE
,我将如何在连接器中配置它?(我已经用ksqldb编写了所有内容。这是我当前的配置,我将
项目
重命名为
产品
,将
ID
重命名为
ID

CREATE SINK CONNECTOR ELASTIC_SINK WITH (
    'connector.class' = 'io.confluent.connect.elasticsearch.ElasticsearchSinkConnector',
    'connection.url' = 'http://host.docker.internal:9200',
    'type.name' = '_doc',
    'topics' = 'ELASTIC_TOPIC',
    'key.ignore' = 'false',
    'schema.ignore' = 'true',
    'transforms' = 'RenameField',
    'transforms.RenameField.type' = 'org.apache.kafka.connect.transforms.ReplaceField$Value',
    'transforms.RenameField.renames' = 'ITEM:product,ID:id',
);

看看现有的SO问题和答案:

您可以提供要重命名的字段的路径,各部分之间用句点分隔

CREATE SINK CONNECTOR ELASTIC_SINK WITH (
    'connector.class' = 'io.confluent.connect.elasticsearch.ElasticsearchSinkConnector',
    'connection.url' = 'http://host.docker.internal:9200',
    'type.name' = '_doc',
    'topics' = 'ELASTIC_TOPIC',
    'key.ignore' = 'false',
    'schema.ignore' = 'true',
    'transforms' = 'RenameField',
    'transforms.RenameField.type' = 'org.apache.kafka.connect.transforms.ReplaceField$Value',
    'transforms.RenameField.renames' = 'USER.NAME:name,ITEM:product,ID:id',
);

看看现有的SO问题和答案:

您可以提供要重命名的字段的路径,各部分之间用句点分隔

CREATE SINK CONNECTOR ELASTIC_SINK WITH (
    'connector.class' = 'io.confluent.connect.elasticsearch.ElasticsearchSinkConnector',
    'connection.url' = 'http://host.docker.internal:9200',
    'type.name' = '_doc',
    'topics' = 'ELASTIC_TOPIC',
    'key.ignore' = 'false',
    'schema.ignore' = 'true',
    'transforms' = 'RenameField',
    'transforms.RenameField.type' = 'org.apache.kafka.connect.transforms.ReplaceField$Value',
    'transforms.RenameField.renames' = 'USER.NAME:name,ITEM:product,ID:id',
);

这回答了你的问题吗?这回答了你的问题吗?