Filemaker to Python (1) - ODBCドライバを入れてみる

これまでとちょっと毛色の違う話と感じるかも知れませんが、これも技術ネタなのでここに書いておきたいと思います。

なぜいきなりこの話?

先日、中国語の単語のデータベースを持っているという話がありましたが、Filemaker Pro 12のデータベースに入っています。これをCSVに落として、Python+NLTK(ん?NLTKは使ってないかw)で読み込んでいろいろ弄りました。ただ、もう少し簡単にというか、ダイレクトにいじれないかという方法を模索しています。

簡単に考えて、PythonからFilemakerにアクセスすれば良いのではとググってみると、PyFileMakerというのがあったのですが、どうも2008年ぐらいから更新がされていません。その間にFilemakerのリリースも12に上がって、ファイル形式も.fp7から、.fmp12にフォーマットが変わっていて使えなくなったという話も、どこかに目にしました。

となるとこれを使う方法はダメそうです。

それでODBC

その代わりに考えたのがODBCを使う方法です。Filemakerでのファイル共有の方法の1つに、ODBCというのがあり、PythonからODBCにつなぐのには、pyODBCというのがあるのが分かりました。こちらはこの記事を書いている現在でも更新されています。となれば、Filemaker - ODBC - Python (+NLTK)とつなげば行けそうじゃないですか。

pyODBCはeasy_installか何かでインストールすれば良いだろうから、まずはFilemaker側での準備を始めることにしました。Filemakerで出してある良い感じのガイドに素直に従います。

Filemaker ODBC and JDBC Guide

自分の場合は、Filemakerのデータベースを(しかもローカルで)ソースとして使うだけなので、Chapter 3から8に沿って設定すれば良いそうです。

Filemaker ODBCのインストール

ガイドによると、インストールの時に使ったディスクイメージの中にxDBCというフォルダがあって、

f:id:deutschina:20130720105438p:plain

その中のFilemaker ODBC.mkpgというファイルを実行しろと。

f:id:deutschina:20130720105346p:plain

はい、インストール終了。

f:id:deutschina:20130720105842p:plain

ODBC Administratorのインストールと設定

続いては、ODBCの設定をするためのODBC Administratorというのをインストールします。ガイドには、Actual Technologiesというところから出ているODBC Managerというモノの方が先に紹介されていましたが、ODBC AdministratorはAppleが出しているという理由で、こちらを選択しました。ダウンロードしてインストールするあたりは、別に紹介するまでもないと思います。

インストールが終わったら、ODBC Administratorを立ち上げて、User DSNかSystem DSNを追加しろとあります。とりあえず深く考えずにSystem DSN側でAddボタンを押して追加します。

f:id:deutschina:20130720110922p:plain

今のところ選べるのは、当たり前ですがFilemaker ODBCだけなので選びます。

f:id:deutschina:20130720111113p:plain

これはIntroductionなので華麗にスルー。

f:id:deutschina:20130720111209p:plain

データソースにお名前を付けてくださいとのこと。

f:id:deutschina:20130720111322p:plain

ホストネームなりIPを割り当ててという事ですが、今のところローカルでしか使わないのでlocalhostと入れておきます。

f:id:deutschina:20130720111811p:plain

これはFilemaker特有な設定になります。

f:id:deutschina:20130720111952p:plain

Filemakerのどのファイルを参照するのと聞いています。ドロップダウンリストは使えませんでしたが、そのままファイル名をベタ打ちしてやりました。

ここまでやると一通りの手続きが終わったようで、サマリが表示されます。

f:id:deutschina:20130720112203p:plain

一応テストボタンがあったので押してみます。

f:id:deutschina:20130720112235p:plain

大丈夫そうですね。ということで登録完了です。

f:id:deutschina:20130720112258p:plain

(つづく)