我试图通过将包含数百万行的大型CSV文件导入SQLite来解析和分析日志文件 我正在使用我的.NET程序通过LINQ在没有任何数据库的情况下在较小的日志文件上实现相同的功能 但我面临着性能和可扩展性问题 然后我发现SQLite可能是从我的.NET程序中卸载性能问题的最佳选择。 我使用SQLite命令行中的以下命令导入日志文件 (替换名称以避免提供不必要的信息):
sqlite> Create Table MLogTable(DateTimeC text, Field1 text, Field2 text, Field3 text, Field4 text, Field5 text, Field6 text, Field7 text, Field8 text, Field9 text, Field10 text);
sqlite> .separator ","
sqlite> .import "D:\\logs\\xyz\\abc.log" MLogTable
日志记录机制似乎有问题,我在日志文件中得到一些不完整的行。 例如:
预期格式为(f1,f2,f3 f4,f5,f6,f7,f8,f9,f10,f11)
但是几行的实际格式是(f1,f2)
因此,日志文件中的行数很少(数百万行),并不是预期的,导入时会出现以下错误:
错误:D:\ logs \ xyz \ abc.log第4499214行:预计有11列数据,但找到2列
错误行的数量非常少,我无法控制记录时如何纠正错误 因此,在完成SQLite导入时,需要忽略这些行 是否可以使用SQLite?
答案 0 :(得分:2)
sqlite3
命令行工具的CSV导入功能仅适用于格式正确的CSV文件。
您必须手动转换文件,或编写自己的导入程序。