SQLite

SQLiteは、DBMSです。サーバ・クライアント形式ではなく、ローカルに置かれているデータベースを直接操作します。

なお、SQLiteからテーブルの内容をODBCドライバーを利用してMSIPに読み込む際、対象テーブルのデータ量が多いと、データの読み込みに失敗する場合があります。その際は 読み込み対象データ量が多い場合の読み込み方法 を参照ください。

2.3.5.1. ODBCドライバーのインストーラを取得

SQLite用のODBCドライバー(ODBC Connector)は、SQLiteの公式ホームページから取得できます。お使いのOSにあわせて最新バージョンをダウンロードしてください。

以降では、64ビットWindows用のインストーラ「sqliteodbc_w64.exe」を基に説明します。

2.3.5.2. ODBCドライバーをインストール

インストーラを起動し、インストールを開始します。次の画面では「Typical」ボタンを押し、以降はデフォルト設定で実行します。インストーラの起動画面は次のとおりです。

次のインストーラ画面で、インストール対象として「SQLite 2 Drivers」を選択します。

2.3.5.3. ODBCデータソースを作成

  1. 「ODBC データソース アドミニストレーター (64ビット)」を起動します。

    「ODBC データソース アドミニストレーター (64ビット)」は、ショートカットキー[Windows]キー+[R]キーで開かれる次の画面「ファイル名を指定して実行」内に「ODBCAD32.EXE」を入力して、「OK」ボタンを押すと表示されます

  1. 次の「ODBC データソース アドミニストレーター (64ビット)」画面で、「ドライバー」タブを選択し、SQLiteの3種類のODBCドライバーが登録されていることを確認します

    • SQLite ODBC(UTF-8) Driver
    • SQLite ODBC Driver
    • SQLite3 ODBC Driver

  1. 次の「ODBC データソース アドミニストレーター (64ビット)」画面で、「システム DSN」タブを選択し、「追加」ボタンを押します

  1. 次の「データソースの新規作成」画面で、「SQLite3 ODBC Driver」を選択し、「完了」ボタンを押します

  1. 次の「SQLite3 ODBC DSN Configuration」画面で、次の内容を入力します

    • 「Data Source Name」には、作成するデータソース名(この例では「sqliteodbcdriver_test」)
    • 「Database Name」には、データベースファイルパス(この例では「C:\MSIP\temp\db\test1.db」)
    • SQLiteのデータベースファイルがMSIPがインストールされているフォルダ以下にない場合、MSIPからSQLiteのデータソースを扱うとエラーになる場合があります (MSIPからローカルのファイルを参照する場合、そのファイルがMSIPがインストールされているフォルダ以下にないと、通常はエラーが発生するためです)
    • 「OEMCP Translation」を選択してください

  1. 次の「ODBC データソース アドミニストレーター (64ビット)」画面で、「システムデータソース」にSQLiteのODBCデータソースが追加されていることを確認します

  1. MSIPサービスを再起動してください。MSIPサービスを再起動の方法については、「MSIPドキュメント」の「4.9. MSIPサービスの操作方法」を参照ください。

SQLiteのODBCドライバーを利用する手順は以上です。

2.3.5.4. 読み込み対象データ量が多い場合の読み込み方法

SQLiteからテーブルの内容をODBCドライバーを利用してMSIPに読み込む際、対象テーブルのデータ量が多いと、データの読み込みに失敗する場合があります。 問題が発生するデータ量は、テーブル定義にも依存しますが、数百万レコード程度で発生する可能性があります。また、この問題はSQLite用のODBCドライバーに起因しており、メモリに余裕がある状態であっても生じる可能性があります。 読み込み対象のデータ量が多いことで失敗する場合は、回避策として、ODBCドライバーを利用せず、テーブルの内容をCSVファイルへ出力し、そのCSVファイルをMSIPに読み込む方法があります。以下の手順を参照ください。

  • (1) コマンドプロンプトなどでSQLiteを起動します。

  • (2) SQLiteのデータベースファイル内のテーブルの内容をCSVファイルに出力します。

テーブルの内容を CSV ファイルに出力する方法を例示します。 この例では、SQLite の データベースファイル C:/sqlite/target.db を開き、その中に格納されているテーブル target_table の内容を、CSVファイル C:/temp/target.csv に書き出します。 CSVファイルへの出力方法の詳細は、SQLiteのマニュアルを参照ください。

sqlite> .open C:/sqlite/target.db   ※DB ファイルを開きます。                    
sqlite> .headers on                 ※ヘッダ行を追加するよう指定します。
sqlite> .mode csv                   ※CSV書き出しを指定します。
sqlite> .once C:/temp/target.csv    ※出力先CSVファイルを指定します。
sqlite> select * from target_table; ※出力先データを指定します。
sqlite>
  • (3) 出力されたCSVファイルを、MSIPのインポート機能で読み込みます。CSVファイルをMSIPにインポートする方法は、「MSIPドキュメント」の「3.6.6. データの読み込み(アップロードとインポート)」を参照ください。