2017-01-06 3 views
1

Я импортирую таблицу, используя плагин logstash jdbc, и я не понимаю, почему столбец динамически анализируется как tex.Elasticearch logstash jdbc: столбец datetime анализируется как текстовый тип

это мой SQL колонка:

[DATE_VISA] [datetime] 

мой файл logstash конф:

input { 
    jdbc { 
     jdbc_connection_string => "jdbc:sqlserver://192.168.100.205;databaseName=myDB;" 
      jdbc_user => "user" 
      jdbc_password => "pass" 
     jdbc_driver_library => "C:\Program Files (x86)\sqljdbc_6.0\enu\sqljdbc42.jar" 
     jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
     statement => "SELECT [DATE_VISA] FROM [dbo].[TABLE] WHERE [DATE_VISA] IS NOT NULL" 
    } 
} 

output { 
    elasticsearch { 
     hosts => "localhost:9200" 
     index => "myindex" 
     document_type => "mytype" 

    } 
} 

, когда я прошу отображение в ES Я вижу, что:

"date_visa": { 
    "type": "text", 
    "fields": { 
     "keyword": { 
     "type": "keyword", 
     "ignore_above": 256 
     } 
    } 
    } 

Если я пытаюсь сделать карту, прежде чем она приведет к ошибке при импорте.

Знаете ли вы, что происходит в этой ошибке, и как сделать фильтр или преобразование, пожалуйста?

ответ

1

два варианта:

  • имеют logstash сделать его дату, используя дату {} фильтра.
  • имеют elasticsearch сделать его датой, используя шаблон с параметром 'format', который соответствует значению в базе данных.
+0

спасибо за сообщение, я видел фильтр даты для парсинга журналов, но я не видел, как это сделать с помощью jdbc, не могли бы вы дать мне ссылку с примером? мне было бы очень полезно –

+0

Когда ваш запрос запустится, вы должны получить поле в logstash, которое называется «date_visa». Используйте это как вход в фильтр даты {} (и, вероятно, замените это поле, чтобы оно превратило date_visa в поле даты). –

 Смежные вопросы

  • Нет связанных вопросов^_^