NiFi / ElasticSearch: дата не была проанализирована - PullRequest
0 голосов
/ 09 ноября 2018

Я использую NiFi, чтобы поместить некоторые данные в ElasticSearch. Я создал следующий индекс ES:

curl -XPUT http://localhost:9200/test_index -H 'Content-Type: application/json' -d'
{
"index_patterns" : ["test_index"],
"mappings" : {
    "doc"  : {
        "properties" : {
            "example1" :  { "type": "text" },
            "example2" :     { "type": "text" },
            "Date" :         
                { "type": "date",
                  "format": "yyyy-MM-dd HH:mm:ss" }
            }
        }
    }
}'

Это загружается в ES, нет проблем. Но объект Date, проходящий через мой поток NiFi, таков:

"Date" : "Fri, 09 Nov 2018 18:30:49 GMT"

А мой PutElasticsearchHttp процессор выдает ошибку:

ERROR [Timer-Driven Process Thread-1] o.a.n.p.e.PutElasticsearchHttp 
PutElasticsearchHttp[id=55b31b9a-3319-124c-4ede-0d3e8c02e9cb] Failed to 
process StandardFlowFileRecord[uuid=5b6d8fc7-0dfd-435d-8a5c- 
adb4cdb08495,claim=StandardContentClaim 
[resourceClaim=StandardResourceClaim[id=1541788260542-269, 
container=default, section=269], offset=176034, 
length=187],offset=0,name=ba74c484-9719-418f-a665- 
7b7d492b40a4,size=187] due to failed to parse [Date], transferring to 
failure

Нужно ли менять формат даты? (Возможно через UpdateAttribute?)

1 Ответ

0 голосов
/ 09 ноября 2018

да, вам нужно отформатировать дату в nifi в более распространенном виде, например https://en.wikipedia.org/wiki/ISO_8601 или установить пользовательский формат даты в вашем сопоставлении es.

пожалуйста, посмотрите на шаблоны, описанные здесь: https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html

если вам нужно знать, как определить пользовательское отображение даты в es, посмотрите на это: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html

...