SQLite3へ大量のCSVを一括で取り込む
SQLite3へCSVファイルを取り込むためのスクリプトのメモ
次の必要なファイルを同じフォルダに配置する。
- sqlite3.exe
- CSVを取り込む先のテーブル(CSV_DATA)が作成されたDB(Sample.sqlite3)
- csv_import.bat
- INPUTフォルダを作成し、取り込む対象のCSVファイルを入れる。
*sqlite3.exeは http://www.sqlite.org/ から sqlite-shell-win32-x86-3090200.zip をダウンロードする。
*CSV_DATAテーブルの内容は、DATETIME型、後はREAL型が100個。
csv_import.batを実行すると、OUTPUTフォルダにINPUTフォルダ内のCSVファイルを結合したmerge.csvが作成され、それをDBに取り込む。
・csv_import.bat
@ECHO OFF ECHO DB内のCSVデータを削除 sqlite3 Sample.sqlite3 "delete from CSV_DATA" ECHO CSVを結合 mkdir .\OUTPUT type .\INPUT\*.csv > .\OUTPUT\merge.csv ECHO CSVをDBに取込 sqlite3 -separator , Sample.sqlite3 ".import ./OUTPUT/merge.csv CSV_DATA" ECHO. ECHO 処理が完了しました。 ECHO 終了するには何かキーを押してください... PAUSE > NUL
・取り込むCSVファイルの内容
数値データは、100個あります。
2015/12/01 00:00:00, 0, 0.1, 0, 0, 0, 0, 0, 0, 830, 0, 0, 0, 0, 1000 2015/12/01 00:01:00, 0, 0.2, 0, 0, 0, 0, 0, 0, 830, 0, 0, 0, 0, 1000 2015/12/01 00:02:00, 0, 0.1, 0, 0, 0, 0, 0, 0, 830, 0, 0, 0, 0, 1000 2015/12/01 00:03:00, 0, 0.3, 0, 0, 0, 0, 0, 0, 653, 0, 0, 0, 0, 0 2015/12/01 00:04:00, 0, 0.1, 0, 0, 0, 0, 0, 0, 657, 0, 0, 0, 0, 0 2015/12/01 00:05:00, 0, 0.2, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0 2015/12/01 00:06:00, 0, 0.3, 0, 0, 0, 0, 0, 0, 653, 0, 0, 0, 0, 0 2015/12/01 00:07:00, 0, 0.3, 0, 0, 0, 0, 0, 0, 653, 0, 0, 0, 0, 0 2015/12/01 00:08:00, 0, 0.4, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 1000 2015/12/01 00:09:00, 0, 0.3, 0, 0, 0, 0, 0, 0, 830, 0, 0, 0, 0, 1000 2015/12/01 00:10:00, 0, 0.4, 0, 0, 0, 0, 0, 0, 830, 0, 0, 0, 0, 1000