4

我有一堆非常大的 CSV(逗号分隔值)文件,我想分析它们。SQL 查询非常适合这种情况。到目前为止,我一直在使用 MS Access 导入 CSV 文件并对其执行查询。然而,除了有一个非常糟糕的 SQL 编辑器和关于何时可以打开/编辑/删除查询/表的愚蠢的任意规则之外,它非常慢。执行查询时,我可以忍受最初的缓慢,但我真的很讨厌每当我尝试对另一列上的表进行排序、等待 5 分钟或尝试滚动时,它似乎会重新执行它。

有没有更好的(免费)工具来完成这项工作?(如果需要,我愿意手动编写脚本将 CSV 转换为其他内容)

谢谢!

编辑:感谢所有答案!我将尝试 SQL Server,如果成功,我会接受这个答案。只是澄清一下:导入数据文件对我来说不一定是问题(尽管当然欢迎使用简单的方法)。我需要的是一些程序,它随后允许我快速有效地执行(相当复杂的)查询。FileHelpers 不会帮助我,因为首先我不知道任何 .NET 语言,其次,我有 Java 中的数据,但我认为使用 SQL 分析它会容易得多。不过感谢您的回答!

4

9 回答 9

5

为什么不直接将它们导入 MySQL,这很容易。

LOAD DATA LOCAL INFILE 'file.csv' 
INTO TABLE some_table 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(field1, filed2, field3);

然后你可以轻松运行任何复杂的查询......

于 2008-12-23T14:18:51.910 回答
4

你没有说你使用什么 DBMS,但PostgreSQL有一个COPY命令可以这样做,有很多选项:

COPY billing.contact FROM '/foo/bar/contact.csv' WITH DELIMITER AS ',';
于 2008-12-23T14:31:59.637 回答
3

SQL Server Express 2008 与工具在这里。它包括 Management Studio,效果很好。

请注意,它确实需要 .net framework 3.5 sp1、MS Installer 4.5 和 Powershell 1.0,但如果您也需要这些链接,下载页面上也有链接。

于 2008-12-23T14:26:59.197 回答
1

稍微开箱即用,您可能会查看LINQ to CSV

于 2008-12-23T15:21:06.077 回答
1

还有一个 Oracle Express Edition。

我想这取决于您已经精通的地方。或者也许你精通的地方。

于 2008-12-23T18:46:10.843 回答
0

如果您可以将它们获取到 Access,那么只需将 Access 表导出到 SQL Server。或者,如果 csv 有一个通用架构,则创建表是 SQL Server,从 Access 远程附加,然后直接导入 SQL Server。

于 2008-12-23T18:52:00.033 回答
0

logparser可以做到...您可以在 csv 和其他分隔文件上创建 sql 查询

于 2010-10-18T13:16:04.293 回答
0

Oracle SQL Developer(和 Oracle Express Edition - 感谢 Mark)都是免费的、轻量级的,并且 SQl Developer 可以将 csv 文件加载到完整的关系数据库中:Oracle XE> 然后您可以运行 SQL 语句,甚至可以通过拖放界面创建它们。你也可以看看松鼠

于 2010-10-18T13:19:43.833 回答
-1

如果您想对数据进行一些处理,我可以推荐http://www.filehelpers.com/上的 FileHelpers 库。它几乎包括您导入、处理和导出分隔或固定长度数据文件所需的一切。

您可以使用 SQL Server Express 作为免费数据库来代替 Access。在这里阅读:

http://www.microsoft.com/express/sql/default.aspx

您可以使用 SQL Server 的 Management Studio Express 来查询您的数据,或者您可以通过 Visual Studio Express 版本访问许多相同的工具,所有这些都是免费的 - 您甚至可以通过“添加新项目”菜单选项创建新的 MDF。

我希望这有帮助。

于 2008-12-23T15:47:16.053 回答