我正在尝试通过将一些包含数百万行的大型 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可以吗?