2014-09-26 72 views
-1

我有一個很大的數據文件(> = 300M,csv),並且想要查詢數據並從中返回行。如何快速搜索大文本行分隔數據文件?

我可以用這個方法:

grep pattern data.csv 

但它是非常緩慢的。我需要查詢幾種模式,所以也許索引這個文件是一個很好的解決方案。

有什麼好的命令行工具可以完成這項工作嗎?

我知道的有:

  • idutils:查詢速度快,但返回的結果需要訪問數據文件,使其緩慢。
  • solr:不那麼好用。
+0

如果你真的想去一趟,Hadoop(及其派生工具)就是爲此而設計的,雖然規模更大。原則應該是一樣的。 – 2014-09-26 04:21:34

回答

0

您錯過了很多關於您的問題的細節,可以幫助您更輕鬆地進行操作。例如,CSV中的字段,通常搜索的模式(如果每次搜索相同的數據集)和搜索頻率。假設您需要以grep和/或idutils不支持的方式搜索相同的數據集,Solr纔有意義。例如,如果您想搜索可以返回部分匹配的搜索結果,Solr使得這更容易。

雖然不是命令行解決方案,但是standing up Solrloading it with CSV是一項直接的活動。根據您的CSV的字節大小,它不需要任何調整。努力的工作是defining a Solr schema.xml definition,它以支持您各種搜索要求的方式爲您的數據編制索引。在您的特定情況下,您似乎希望確實有一些標記,並且可能會對您的可搜索字段進行填充,因爲您已經在尋找模式匹配。但這真的取決於您的具體搜索需求。