Не удалось загрузить данные CSV в Elasticsearch, проблема перевода - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь импортировать файл CSV в файл elasti c, но произошел сбой и возникла ошибка

Трубопровод прерван из-за ошибки {: pipeline_id => "main",: исключение => #,: backtrace => ["/ usr / local / Cellar / logstash / 7.6.1 / libexec / vendor / bundle / jruby / 2.5.0 / gems / logsta sh -filter-mutate-3.5.0 / lib / logstash / filters / mutate.rb: 222: в block in register'", "org/jruby/RubyHash.java:1428:in каждый '"," /usr/local/Cellar/logstash/7.6.1/libexec/vendor/bundle/jruby/2.5.0/gems/logstash -filter-mutate-3.5.0 / lib / logstash / filters / mutate.rb: 220: в register'", "org/logstash/config/ir/compiler/AbstractFilterDelegatorExt.java:56:in зарегистрируйте '"," /usr/local/Cellar/logstash/7.6.1/libexec/logstash -core / lib / logstash / java_pipeline.rb: 200: в block in register_plugins'", "org/jruby/RubyArray.java:1814:in каждый '"," /usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline .rb: 199: в register_plugins'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:502:in Maybe_setup_out_plugins '"," /usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:212:in start_workers'", "/usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:154:in запустите '"," /usr/local/Cellar/logstash/7.6.1/libexec/logstash-core/lib/logstash/java_pipeline.rb:109:in `блок в запуске'"], "pipeline.sources "=> [" / Users / user / Document / Esk-Data / xudaxia.conf "],: thread =>" # "}

Ниже приведен файл conf

input
{
    file{
    path => ["/test.csv"]
    start_position => "beginning"
    }
}
filter{
    csv{
        separator => ","
         columns => ["comment_time","comment", "id", "video_time"]
       }
    mutate{
        convert => {
            "comment_time" => "date_time"
            "comment" => "string"
            "id" => "integer"
            "video_time" => "float"
      }
    }
}
output{
    elasticsearch{
        hosts => ["localhost:9200"]
        index => "test"
    }
}

test.csv

comment_time         comment        id        video_time
2020/03/22 15:59:41  バイ             a        123.100
2020/03/22 15:59:45  บาย             b        100.100
2020/04/22 15:59:50  ByeBye          c        80.210

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 28 марта 2020

Согласно документации, опция date_time не существует для действия конвертации на плагине mutate - введите c здесь . Однако этот плагин используется для приведения типа в другой, это не ваш вариант использования. Если comment_time не распознается как поле даты, вы должны преобразовать его с плагином date - сделайте c здесь .

Поэтому вы должны удалить этот блок:

mutate{
    convert => {
        "comment_time" => "date_time"
        "comment" => "string"
        "id" => "integer"
        "video_time" => "float"
  }
}

и замените его следующим:

date {
    match => [ "comment_time", "yyyy/MM/dd HH:mm:ss"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...