1

数百万行の大きな CSV ファイルを SQLite にインポートして、ログ ファイルを解析および分析しようとしています。
私は.NETプログラムを使用して、データベースなしでLINQを介して小さなログファイルで同じことを達成していました。
しかし、パフォーマンスとスケーラビリティの問題に直面していました。
その後、.NET プログラムからパフォーマンスの問題を取り除くには、SQLite が最適なオプションである可能性があることがわかりました。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で可能ですか?

4

1 に答える 1

2

コマンドライン ツールの CSV インポート機能は、sqlite3整形式の CSV ファイルでのみ機能します。

ファイルを手動で変換するか、独自のインポーターを作成する必要があります。

于 2013-01-21T10:48:59.653 に答える