2013年12月10日
NoSQLインターフェースの使用例
Informix V12.10.xC2は、JSONのAPIをサポートしているので、たとえば MongoDB のシェルからInformixのデータベースをアクセスすることができます。
その方法の一例をご紹介します。(ここでは Windows版の Informix V12.10.FC2 を使用します。)
(1) Informix V12.10を "Typical"の指定でインストールします。このとき、デモ用のインスタンスを作成するよう指示してくだしさい。
(2)%INFORMIXDIR%\etc\サブディレクトリを見て、jsonListener.propertiesというファイルができているのを確認してください。
このファイルに含まれる、"listener.port=<数字>という行を探して、数字の部分をメモしてください。
以下、私のWindows環境でインストールした際につくられたファイルをお見せします。私は、"lucky"というコンピュータ名のPCに、標準的な(Typicalの指定)設定でInformixをインストールしました。"Typical"な設定でインストールすると、コンピュータ名の前に、"lo_"という文字列のついたInformixのインスタンス定義が作られます。ポート番号は、インストーラーが未使用のポート番号を自動的に割り当てます。Informixのインストール先ディレクトリ ("INFORMIXDIR")については手で設定しなおしました ("Program files"のままだと、コマンドラインでの操作をする時に、長すぎて大変だったり、間に空白があるので大変だったりするのが理由です。"Program files"にインストールしても動作に問題はありません)。
> C:\Win64App\informix\12.10\etc>type jsonListener.properties
> listener.port=27017
> url=jdbc:informix-sqli://localhost:9090/sysmaster:INFORMIXSERVER=lo_lucky
(3)Informixの JSON Wire Listener を起動します。
java -jar %INFORMIXDIR%/bin/jsonListener.jar -config %INFORMIXDIR%\etc\jsonListener.properties -start
(当然ですが、Informixのインスタンスは起動させておいてください。あと、JREも先にインストールしておいてください)
(4)Windows上にMongoDBをインストールし、monogoシェルを起動します。
mongo -port <数字>
<数字>は先ほど手順(2)でメモしたものです。。
プロンプトから、以下を実行します。
use
とりあえずどれか表のすべての行を表示するなら、こんな感じです。
db.<表名>.find()
Informix V2.10日本語版のサンプルデータベースを使用した実行例を以下に示します。
(以下に表示されている個人名、住所、電話番号はすべて架空のものです。)
C:\win64app\informix\12.10\etc>c:\win64app\mongodb\bin\mongo.exe -port 23997
MongoDB shell version: 2.4.8
connecting to: 127.0.0.1:23997/test
mongos> use stores
switched to db stores
mongos> db.customer.find( {customer_num: {$gt:115}} )
{ "customer_num" : 116, "kname" : "倉本 陽一郎", "yomi" : "クラモト ヨウイチロウ", "company" : "青山オリンピック", "zipcode" : "107-", "address1" : "東京都 港区 ", "address2" : "北青山 5−6−60", "building" : "サニーサイドビル2F", "phone" : "(03)478-1212" }
{ "customer_num" : 117, "kname" : "内田 敬一", "yomi" : "ウチダ ケイイチ", "company" : "スポーツキッズ","zipcode" : "150-", "address1" : "東京都 渋谷区 ", "address2" : "道玄坂 2−10−10", "building": "コスギビル 3F", "phone" : "(03)461-2659" }
:
(以下省略)
(以下に表示されている個人名、住所、電話番号はすべて架空のものです。)
C:\win64app\informix\12.10\etc>c:\win64app\mongodb\bin\mongo.exe -port 23997
MongoDB shell version: 2.4.8
connecting to: 127.0.0.1:23997/test
mongos> use stores
switched to db stores
mongos> db.customer.find( {customer_num: {$gt:115}} )
{ "customer_num" : 116, "kname" : "倉本 陽一郎", "yomi" : "クラモト ヨウイチロウ", "company" : "青山オリンピック", "zipcode" : "107-", "address1" : "東京都 港区 ", "address2" : "北青山 5−6−60", "building" : "サニーサイドビル2F", "phone" : "(03)478-1212" }
{ "customer_num" : 117, "kname" : "内田 敬一", "yomi" : "ウチダ ケイイチ", "company" : "スポーツキッズ","zipcode" : "150-", "address1" : "東京都 渋谷区 ", "address2" : "道玄坂 2−10−10", "building": "コスギビル 3F", "phone" : "(03)461-2659" }
:
(以下省略)
Posted by oninit at 21:24│Comments(0)
│ちょっと細かいテックネタ
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。