使用多个 csv 生成多个类型
Generate multiple types with multiple csv
我正在尝试根据各种 csv 在同一索引中生成各种类型。因为我不知道 csv 的数量,所以为每个输入都进行输入是不可行的。
那么有谁知道如何用文件名生成类型,并在其中分别引入csv?
input {
file {
path => "/home/user/Documents/data/*.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
skip_header => "true"
autodetect_column_names => true
autogenerate_column_names => true
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "final_index"
}
stdout {}
}
非常感谢
从第 6 版开始,Elasticsearch 索引中删除了同一索引中的多个文档结构,如果文档看起来与索引模板化的方式不同,它将无法向其发送数据,什么您可以做的是确保所有字段都是已知的,并且您有一个包含所有可能字段的通用模板。
为什么要将所有内容都放在一个索引中?
如果是用于查询目的或 Kibana,请知道您可以在搜索时使用通配符并具有 Kibana 的模式。
评论后更新:
使用过滤器使用 grok 提取文件名
filter {
grok {
match => ["path","%{GREEDYDATA}/%{GREEDYDATA:filename}\.csv"]
}
}
并在输出中使用文件名,如下所示:
elasticsearch {
hosts => "http://localhost:9200"
index => "final_index-%{[filename]}"
}
我正在尝试根据各种 csv 在同一索引中生成各种类型。因为我不知道 csv 的数量,所以为每个输入都进行输入是不可行的。 那么有谁知道如何用文件名生成类型,并在其中分别引入csv?
input {
file {
path => "/home/user/Documents/data/*.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
skip_header => "true"
autodetect_column_names => true
autogenerate_column_names => true
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "final_index"
}
stdout {}
}
非常感谢
从第 6 版开始,Elasticsearch 索引中删除了同一索引中的多个文档结构,如果文档看起来与索引模板化的方式不同,它将无法向其发送数据,什么您可以做的是确保所有字段都是已知的,并且您有一个包含所有可能字段的通用模板。
为什么要将所有内容都放在一个索引中?
如果是用于查询目的或 Kibana,请知道您可以在搜索时使用通配符并具有 Kibana 的模式。
评论后更新:
使用过滤器使用 grok 提取文件名
filter {
grok {
match => ["path","%{GREEDYDATA}/%{GREEDYDATA:filename}\.csv"]
}
}
并在输出中使用文件名,如下所示:
elasticsearch {
hosts => "http://localhost:9200"
index => "final_index-%{[filename]}"
}