knimeで.mdbからCSVを作成



問題

ある日、分析用のデータをMS Access(.mdb)の形式でいただきました。あいにく手元にはAccessがインストールされておらず、
そのままでは加工出来ないので、何とかしてCSV形式のデータを取り出したいと考えました。
ちなみに、中身はたくさんのテーブルが含まれています。(同じ形式で月ごとに違うテーブルに保存されたもの)

解決策

フリーで.mdbファイルを開けるビューアはいくつか存在しましたが、日本語の問題があったり、CSV出力がエラーになったりで役に立ちませんでした。

もう少し調べて見たところ、

Apache Open Officeに含まれるBaseというアプリケーションで.mdbファイルを開き、
データをコピペして表計算ソフトに貼り付けし、
表計算ソフトでCSV形式で保存する

というのが王道(解説ブログの例)みたいですが、テーブル数が多くて嫌になってしまいます。

一瞬「ODBC⇒JDBC⇒ファイル書き出しプログラムを書くか」が頭をよぎりましたが、ODBC⇒JDBCまで出来たらKNIMEというデータマイニングツールが使えそうなことに思い至りました。

試してみたところ、以下の手順で実現可能でした。なお、ODBCの設定が含まれるので、Windows限定です。

  1. .mdbファイルをODBCデータソースに設定(⇒解説ページ
  2. KNIMEを開き、DatabaseReaderとCSV Writerをつなぐ
  3. DatabaseReaderの設定を開き
    • Database Driver をsun.jdbc.odbc.JdbcOdbcDriver に設定(組み込みで必ず使えるはず)
    • Database URL に jdbc:odbc:先に設定したデータソース名 を入力
    • 左下のDatabaseBrowserでテーブル名を確認しつつ、SQL欄にselect * from テーブル名を入力
  4. CSV writerの設定を開き、書き出し先ファイル名などを指定
  5. 3と4をテーブル数分繰り返す。ファイルの上書きに注意。

テーブル名とファイル名を手で入力するのがまだ面倒なのですが、プログラムは書かずに済んだので良かったです。KNIME便利。

KNIMEについて

オープンソースのデータマイニングツールで直感的に色んな事ができます。
本来はデータマイニングツールとしての使い方を解説したいのですが、またの機会に。。

今回は以上です。


This entry was posted in データマイニング, 技術. Bookmark the permalink.