3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MarkLogicAdvent Calendar 2017

Day 2

MarkLogicでRaspberryPi3のセンサー情報を取り込んでみよう(1)MarkLogic9のインストール~DB構築まで

Last updated at Posted at 2017-12-01

この記事はMarkLogic Advent Calendar 2017の2日目です。

#はじめに
いよいよ12月となりまして、JucoMLが主催するMarkLogic Advent Calendar 2017に参加することにしました。クリスマスまでよろしくお願いします(既に12月1日分を投稿済みですが・・・)。

MarkLogicといえばスキーマレスのXML/JSON DBですが、魅力的なのはそれだけではなく、多くの機能を搭載しています。MarkLogicの魅力をお伝えしたいと思います。

#なにをやろう
で、テーマをどうするか悩みましたが、ちょうど年末年始に遊ぼうと思っていたRaspberry Pi3や各種センサー類が手元にありますので、これとMarkLogicを連携して何か面白いことをやってみようと思います。

取りあえずは以下のようなことを徐々に投稿していきます。

  1. MarkLogic9のインストール
  2. node.jsとの連携
  3. MQTTでMarkLogicにアクセスしてみる
  4. RaspberryPi3のセンサー情報をMQTTで連携してみる

#今回やること
まずはMarkLogic環境を構築するところから始めます。そして今回の一連の記事で使用するデータベースを構築するところまで実施します。

#環境
以下の環境を使用します。

環境 バージョン等
CentOS7 7.4.1708
MarkLogic9 9.0-3

#注意事項
MarkLogicは商用DBです。商用利用する際にはライセンスの購入が必要になります。
開発目的や今回のような実験目的であれば、無料の開発者ライセンスが使用可能です。

MarkLogicの開発者ライセンスの詳細は以下をご確認下さい。
http://developer.marklogic.com/free-developer

#事前準備
MarkLogicのインストールや設定・管理を行うためには、WebブラウザでMarkLogicに接続する必要があり、ポート番号8001番や8000番を使用します。
CentOS7の場合、firewalldの設定でこれらのポートへのアクセスを許可するか、firewalldを無効化しておいて下さい。

#まずはMarkLogic9のインストール
CentOS7にMarkLogic9をインストールします。MarkLogic9はこの辺りからRPMを入手出来ます。

以下でインストールを実行します。

# yum install MarkLogic-9.0-3.1.x86_64.rpm -y

インストールが完了したら起動します。

# systemctl start MarkLogic.service

MarkLogicのセットアップとデータベース作成

初期設定

インストールと起動が完了したら、MarkLogicの初期設定を行います。
初期設定については、JucoMLのこの記事が参考になります。こちら記事はMarkLogic8ですが、MarkLogic9も同様の手順で設定出来ます。

データベースの作成

初期設定の完了後、今回使用するデータベースを作成します。
Webブラウザで8001番にアクセスし、管理画面を表示します。

データベースを作成するには、管理画面の左ペインから「Databases」をクリックします。次に右ペインの「Create」タブをクリックします。

pic01_ml9_db_create_sml.png

この画面で必要事項を入力するとデータベースが作成されます。

今回は以下のように設定しました。それ以外は初期値にしておきます。

項目名 設定値
database name IoTDatabase
language ja

入力を終えたら、画面の「ok」ボタンを押します。
すると、「This database has no forests, select Database->Forests to attach a forest.」と警告されます。

pic02_ml9_db_create_no-forests.png

MarkLogicのデータベース情報は「フォレスト」と呼ばれるファイル群に保存されています。Oracleで例えるなら「データファイル」のようなものでしょうか。
データベースを作成しようとしても、このフォレストが存在しないため警告されました。

フォレストの作成

続いてフォレストを作成します。警告文中の「Database->Forests」リンクを押下すると、フォレストの作成を行えます。

pic03_ml9_db_create_forest_1.png

「Create a Forest」を押下します。

pic03_ml9_db_create_forest_2.png

上記画面で必要事項を入力して「ok」を押下するとフォレストが作成されます。
「forest name」に「IoTDatabaseForest01」と入力し、それ以外は初期値としました。

フォレストを作成したら、先ほど作成したデータベースに紐付けます。
画面の右ペインの「Summary」タブをクリックすると、現在存在するフォレストの一覧が表示されます。

pic03_ml9_db_create_forest_3.png

この中から先ほど作成したフォレスト「IoTDatabaseForest01」を探し、「Databases」列のドロップダウンから紐付けるデータベースを選択します。そして「ok」ボタンを押下するとデータベースにフォレストが紐付き、データベースを使用できるようになります。

#データを登録してみる
作成したデータベースを使用出来るか確認してみます。

今回はQueryConsoleを使用します。Webブラウザ上でXQueryやJavascriptを実行できます。
Webブラウザを起動し、当該サーバの8000番ポートにアクセスしてログインします。

pic04_ml9_query-console_1.png

画面右上のドロップダウン「Database」で「IoTDatabase」を選択します。
その右隣の「Query Type:」で「XQuery」を選択します。

そして、以下のクエリを実行してXMLファイルを作成してみます。
クエリをテキストエリアに入力し、「Run」を押下すると実行されます。
ちなみに、「ALT+Enter」でも実行可能です。

xdmp:document-insert("/helloworld.xml", <message>Hello, World</message>)

pic04_ml9_query-console_2.png

これでドキュメントが作成されたはずです。確認してみます。

fn:doc("/helloworld.xml")

pic04_ml9_query-console_3.png

登録したドキュメントの内容が表示されれば成功です。

#おしまい
MarkLogicはインストールからDB構築まで非常に簡単に実施できる商用DBです。
初期設定のままでも十分使用可能な状態となっています。

#次回予告
次はnode.jsを導入し、MarkLogicと接続してみようと思います。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?