Csv 如何快速搜索大文本行分隔的数据文件?

Csv 如何快速搜索大文本行分隔的数据文件?,csv,command-line,solr,indexing,Csv,Command Line,Solr,Indexing,我有一个大数据文件(>=300M,csv),我想查询数据并从中返回行 我可以用这个方法: grep pattern data.csv 但是它非常慢。我需要查询几个模式,所以也许索引这个文件是一个很好的解决方案 有什么好的命令行工具可以完成这项工作吗 我知道有: idutils:查询速度很快,但返回结果需要访问数据文件,因此速度较慢 索尔:没那么好用 您的问题中遗漏了许多细节,这些细节将使您更容易获得帮助。例如,CSV中的字段、通常搜索的模式(如果每次都针对相同的数据集进行搜索)以及搜索频率。

我有一个大数据文件(>=300M,csv),我想查询数据并从中返回行

我可以用这个方法:

grep pattern data.csv
但是它非常慢。我需要查询几个模式,所以也许索引这个文件是一个很好的解决方案

有什么好的命令行工具可以完成这项工作吗

我知道有:

  • idutils:查询速度很快,但返回结果需要访问数据文件,因此速度较慢
  • 索尔:没那么好用

您的问题中遗漏了许多细节,这些细节将使您更容易获得帮助。例如,CSV中的字段、通常搜索的模式(如果每次都针对相同的数据集进行搜索)以及搜索频率。假设您需要以grep和/或idutils不支持的方式对同一数据集进行搜索,Solr是有意义的。例如,如果您想要执行可以返回部分匹配的搜索,Solr会使这变得更容易


虽然不是命令行解决方案,但它是一个简单的活动。根据CSV的字节大小,它不需要任何调整。艰苦的工作是以支持各种搜索需求的方式为数据编制索引。在您的特定情况下,听起来您希望对您的可搜索字段进行一些标记化和词干分析,因为您已经在寻找模式匹配。但这取决于你的具体搜索需求

如果你真的想试一试,Hadoop(及其衍生工具)就是为此而设计的,尽管规模要大得多。原则应该是一样的。