I'm using the logstash logstash-input-jdbc plugin. logstash conf file as follows.
input {
jdbc {
jdbc_driver_library => "/mars/services/ows/webapps/ows/WEB-INF/lib/postgresql-8.4-701.jdbc3.jar"
jdbc_driver_class => "org.postgresql.Driver"
jdbc_connection_string => "jdbc:postgresql://localhost:5432/testdb"
jdbc_user => "tests"
jdbc_password => "password"
statement => "select * from vw_gmti_job_definition"
}
}
filter {
mutate { add_field => { "[@metadata][_index]" => "gmti_y%{+YYYY-MM}_v1" } }
mutate { add_field => { "[@metadata][_type]" => "job" } }
}
output {
We build the "new" elasticsearch index in the default cluster
elasticsearch {
cluster => "testdb"
document_type => "%{[@metadata][_type]}"
host => "localhost"
index => "%{[@metadata][_index]}"
manage_template => "true"
port => "9200"
protocol => "http"
template => "/usr/share/logstash-1.5.2/lib/logstash/outputs/elasticsearch/elasticsearch-mars-template.json"
template_name => "mars"
template_overwrite => "false"
workers => "1"
}
stdout { codec => json_lines }
file {
codec => "json"
path => "/tmp/debug-filters.json"
}
}
The migration process is failing on the mapping.
org.elasticsearch.index.mapper.MapperParsingException: object mapping for [job] tried to parse field [platformType] as object, but got EOF, has a concrete value been provided to it?
this is the mapping clause.
"platformType": {
"type": "object",
"properties": {
"name" : {"type": "string", "index": "not_analyzed"},
"enum" : {"type": "integer"}
}
},
How can this error be resolved?
thanks