0

我剛開始使用Elasticsearch/logstash。如何讓Elasticsearch從文件的第一行獲取列名?

我有3個不同的文件與一個共同的ID。每個文件都包含在第一行的列名,例如:

header1,header2,header3,header4 
1234,data2,data3,data4 
1235,data2,data3,data4 
1236,data2,data3,data4 

我怎麼能告訴Elasticsearch得到的第一行作爲列名?

另外,如何使用文件之間的公共ID在Elastic上進行一些研究,例如q:column=data group by id

回答

1

看起來你有csv數據。 Logstash提供了一個csv過濾器,但它不處理標題行。

有一個新的csv codec,但它被列爲未準備好生產。

0

您可以在.confgig文件中添加下面提到的代碼。你必須明確提到配置文件中的列名。

filter { 
csv { 
    columns => [ 
     "YearMonth", 
     "ProjectCode", 
     "EmpNo", 
     "RevenueCreditUnit", 
     "Revenue", 
     "dtLoad" 

    ] 
    separator => "," 
    remove_field => ["message"] 
    } 
} 

繼續搜索,可能有更好的方法。