Je suis en train d'importer csv en ElasticSearch utilisant logstash J'ai essayé d'utiliser deux façons:ElasticSearch - csv à l'importation par date de logstash n'est pas analysé de type datetime
- Utilisation CSV
- Utilisation filtre grok
1) Pour csv ci-dessous est mon fichier logstash:
input {
file {
path => "path_to_my_csv.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns => ["col1","col2_datetime"]
}
mutate {convert => [ "col1", "float" ]}
date {
locale => "en"
match => ["col2_datetime", "ISO8601"] // tried this one also - match => ["col2_datetime", "yyyy-MM-dd HH:mm:ss"]
timezone => "Asia/Kolkata"
target => "@timestamp" // tried this one also - target => "col2_datetime"
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "my_collection"
}
stdout {}
}
2) Utilisation de filtre grok:
Pour filtre grok ci-dessous est mon fichier logstash
input {
file {
path => "path_to_my_csv.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => { "message" => "(?<col1>(?:%{BASE10NUM})),(%{TIMESTAMP_ISO8601:col2_datetime})"}
remove_field => [ "message" ]
}
date {
match => ["col2_datetime", "yyyy-MM-dd HH:mm:ss"]
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "my_collection_grok"
}
stdout {}
}
PROBLÈME:
Alors, quand je lance deux fichiers individuellement, je suis en mesure importer les données dans elasticsearch. Mais mon champ de date n'est pas analysé en tant que type date/heure, mais il a été sauvegardé en tant que chaîne et à cause de cela je ne suis pas capable d'exécuter les filtres de date.
Quelqu'un peut-il m'aider à comprendre pourquoi cela se produit? Ma version elasticsearch est 5.4.1.
Merci à l'avance
Pouvez-vous partager af EW lignes de votre fichier CSV? – shantanuo
S'il vous plaît vérifier 1234365,2016-12-02 19:00:52 1234368,2016-12-02 15:02:02 1234369,2016-12-02 15:02:07 – pravindot17