如何使用Kafka ElasticSearchSinkConnector存储时间戳类型?

时间:2018-08-22 05:19:55

标签: java elasticsearch apache-kafka avro apache-kafka-connect

我在avro中定义了我的架构,如下所示:

[  
  {  
    "namespace":"com.murali.message",
    "type":"record",
    "name":"MetaData",
    "doc":"Meta data of file like permissions, size etc.,",
    "fields":[  
      {  
        "name":"created",
        "type":"string",
        "doc":"creation time of file in millis"
      }
    ]
  }
]

我将毫秒转换为日期格式yyyy-MM-dd HH:mm:ss.SSSSSS,并将其设置为我的Avro模式中的“创建”成员。现在,我尝试在弹性搜索中将此“创建的”字符串字段转换为Timestamp类型。我已经写了elasticsink属性文件,据我所知属性文件是正确的,但是我没有在Elasticsearch中使用“ TimeStamp”数据类型记录中的“ created”字段。有人可以看一下并纠正我,无论我做的是正确的还是我所缺少的。我也在下面发布了我的Elasticsink属性。

name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=checking_fun1
connection.url=http://localhost:9200
type.name=file-data
key.ignore=true
schema.ignore=true

#Timestamp converters
transforms=convert_cr_ts
transforms.convert_cr_ts.type=org.apache.kafka.connect.transforms.TimestampConverter$Value
transforms.convert_cr_ts.target.type=Timestamp
transforms.convert_cr_ts.field=created
transforms.convert_cr_ts.format=yyyy-MM-dd HH:mm:ss.SSSSSS

behavior.on.malformed.documents=ignore

0 个答案:

没有答案