neo4j - マニュアルを読んでみる(1)
前の記事で、グラフデータベースという面白そうなネタを見付けたので、モチベーションが続く限り、気づいた点などを書いていこうと思う。(1回で終わらないことを祈るw)
とりあえずオンラインヘルプ読んでおけ
オライリーのタコ本(下記参照)は、この記事を書いている時点で約60%ほど読み進めたが、個人的に結構ヒットだった。他のデータベースのタイプの比較から始まり、どのようなタイプの処理(データ)の場合、グラフ型データベースが向いているかという話から始まり、簡単な事例を用いてその用途を説明してくれている。
その中で、Neo4jのクエリ言語であるCypherの記述例を見せてくれている。Cypherのリファレンスではなく、あくまでこういう風に使うんだよという方向性を示してくれているのが、個人的にはポイントが高い。今の段階で分厚いリファレンス調の本を渡されても、途中で投げ出すのがオチである。
幸い、オンラインヘルプの類いは非常に充実している(ただし英語)ので、大まかな使い道が分かったところで、このオンラインヘルプの中のTutorialsのところを読んでみることにした。
訳すより慣れるべし
仕事柄、英語の技術文書を読む事への抵抗は、あまり大きくないのだが、それをかみ砕いて日本語で説明するのは非常に苦手だ。例えば、オンラインヘルプの3.1.Background and MotivationというところにQuery processingはこんな感じだよという箇条書きがある。
- Parse and validate the query.
- Generate the execution plan.
- Locate the initial node(s).
- Select and traverse relationships.
- Change and/or return values.
この中のParseとかtraverseなんて、日本語でどう訳したら良いのか分からない。自分の語彙力に問題があることは否定しないが、IT業界の技術文書だったら、そのまま「パースする」、「トラバースする」とか書かれていそうである(苦笑)。
それはさておき、読み解くのであれば、最初の2つが準備段階で、記述されたクエリが正しい文法で書かれていることを確認・チェック(Parse and validate)して、最適であろうexecution planを選択してクエリが実行されるという事を言っていると考えれば良さそうだ。もちろん、書かれたクエリがクソでとんでもなく時間が掛かる事もあるというのは、古典的なRDBMSと同じだろう。
Locate the initial node(s)ってのは、どこから検索(探索といった方が良いのかな)を始めるという話で、Neo4jの中でもIndexを作ったり、それを使う事が出来るよと書いてある。そこから関係性の探索(select and traverse)を行って、最終的に値を返したり、値を変更したりするということのようだ。
ま、relationshipをtraverseするあたりを除けば、SQLとまったく同じだね。と言うことが分かれば、このセクションの目的は達成と考えて良さそうというのが分かれば十分だと思う。
この先、ぼちぼちマニュアルを読み進めてみることにしよう。
グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門
- 作者: Ian Robinson,Jim Webber,Emil Eifrem,佐藤直生,木下哲也
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/03/25
- メディア: 大型本
- この商品を含むブログ (1件) を見る
A Programmatic Introduction to Neo4j
- 作者: Jim Webber,Ian Robinson
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2016/02/08
- メディア: ペーパーバック
- この商品を含むブログを見る
NOSQLの基礎知識 (ビッグデータを活かすデータベース技術)
- 作者: 本橋信也,河野達也,鶴見利章,太田洋
- 出版社/メーカー: リックテレコム
- 発売日: 2012/04/25
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 81回
- この商品を含むブログ (7件) を見る