elasticsearch 尝试使用kafka Connect在Elasticsearch中索引kafka主题
我想索引一个主题,从卡夫卡在avro到elasticsearch格式,但 我在识别时间戳字段时遇到问题 elasticsearch作为日期格式字段 我对连接器使用了以下配置
elasticsearch 尝试使用kafka Connect在Elasticsearch中索引kafka主题,
elasticsearch,apache-kafka,apache-kafka-connect,
elasticsearch,Apache Kafka,Apache Kafka Connect,我想索引一个主题,从卡夫卡在avro到elasticsearch格式,但 我在识别时间戳字段时遇到问题 elasticsearch作为日期格式字段 我对连接器使用了以下配置 { "name": "es-sink-barchart-10", "config": { "connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
{
"name": "es-sink-barchart-10",
"config": {
"connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url": "http://localhost:8081",
"value.converter.schema.registry.url": "http://localhost:8081",
"connection.url": "http://localhost:9200",
"type.name":"type.name=kafka-connect",
"topics": "exchange_avro_01",
"topic.index.map": "exchange_avro_01:exchange_barchart",
"key.ignore": "true"
}
}
原始字段是bigint类型,我希望目标字段是日期类型,具有elasticsearch的任何有效格式。我定义了一个动态模板,试图用以下方式解决它:
curl -XPUT "http://localhost:9200/_template/kafkaconnect/" -H 'Content-Type: application/json' -d'
{
"index_patterns": "exchange*",
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"kafka-connect": {
"dynamic_templates": [
{
"dates": {
"match_mapping_type": "long",
"match": "TIME",
"mapping": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
]
,
"properties": {
"CLOSE": {
"type": "double"
},
.
.
.
}
}
}
}
}'
当我加载上面描述的连接器时,没有任何内容被索引到elasticsearch
有什么帮助吗?如果你的消息来源是一个bigint,那么可能是一个epoch。如果这是一个时代,那么这就行不通了:
"mapping": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
因为您告诉Elasticsearch日期格式是yyyy-MM-dd HH:MM:ss
(事实并非如此)
因此,请尝试以下方法(暂时省略您的自定义映射;先让它工作,然后再将其添加回):
另请参考:
elasticsearch没有索引
检查Kafka Connect worker日志和Elasticsearch日志是否有任何错误。如何检查Kafka Connect worker日志和Elasticsearch日志?有关如何检查Connect日志的信息。如果您从命令行启动Elasticsearch,则它的日志将显示在标准输出上,如果不是,则显示在相应的日志文件夹中。这些解决方案似乎工作正常,但在性能上有很大的影响。还有其他方法可以改变它吗?如何在模式注册表中更新模式?
{
"index_patterns": "exchange*",
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"kafka-connect": {
"dynamic_templates": [
{
"dates": {
"match": "TIME",
"mapping": {
"type": "date"
} } } ] } } }