インタビューNeo4j のグラフデータベースの最新バージョン 4.0 は、新たなスケーリング機能とセキュリティ強化を謳っています。The Reg は、自称グラフマニアの Jim Webber 博士にインタビューを行い、グラフラングラーがついに大規模データベースに対応できるようになった経緯と、その最大の敵である、何があっても SQL を使い続ける開発者の惰性について語ります。
グラフデータベースは、データをノード、プロパティ、そして関係性として保存するため、関係性を探索するクエリに適しています。このようなクエリは、リレーショナルデータベースでは構築がより困難または複雑になります。DB-Enginesのランキングによると、Neo4jは最も人気のあるグラフデータベースですが、依然として総合順位22位と低迷しており、これは1年前と同じ順位です。
ウェバー博士は2010年からNeo4jのチーフサイエンティストを務めており、それ以前はソフトウェアコンサルティング会社ThoughtWorksのディレクターを務めていました。グラフデータベースが他のNoSQLアプローチほど普及していない理由について、ウェバー博士に尋ねました。
グラフデータベース事業を展開するNeo4j、Eシリーズへの8000万ドルの投資で資金調達総額が倍増
続きを読む
「わからないよ」と彼は告白する。「マーティン・ファウラーやThoughtWorksの人たちと働いていた頃を振り返ると、リレーショナルデータベースにデータを無理やり詰め込んで、ありとあらゆる不自然なことをさせるプロジェクトが山ほどあった。今思えば、グラフとして保存する方がずっと簡単だっただろう。当時はそういう技術がなかった。最終的には誰もが当たり前のこととして捉えるようになると思うけど、その勢いを生むのに10年近くかかったような気がするんだ。」
初心者にとって、グラフ データベースはどのような問題の処理に適しているのでしょうか?
「グラフは汎用的なデータモデルです。一世代前のリレーショナルモデルが汎用モデルだったのと同じです」とウェバー氏は言います。「私がグラフを初めて活用したのは、小売店のおすすめでした。購入した商品と互換性のある商品は何だろう?周囲のネットワーク上の人々は何を買っただろうか?ソーシャルなものなら何でも使える傾向にありますが、グラフの問題となることが数多くあることに気づきました。電力網、ネットワークに関わるもの、トラフィックのルーティングなどです。ヘルスケアは一連のイベント、処方箋、そして介入です。サプライチェーンもナレッジもグラフです。アイデンティティ管理やアクセス管理にも役立ちます。グラフは幅広いユースケースに応用可能です。」
Neo4j チーフサイエンティスト ジム・ウェバー博士
にもかかわらず、グラフデータベースはリレーショナルデータベースやドキュメントデータベースと比べると、依然としてニッチな存在です。この技術を阻んでいるものは何でしょうか?
「ニッチな分野からスタートしたと思います」とウェバー氏は語る。「『ニッチ』という言葉には少し抵抗がありますね。もちろん私はグラフ好きですが、おっしゃる通り、私たちはもっと小さなところからスタートしたのです。グラフの課題の一つは、リレーショナルモデルに比べてシンプルなモデルではあるものの、いくつか覚えなければならないことがあることです。ラベルとプロパティを持つノード、そして名前とプロパティの方向を持つリレーションシップがあります。これには慣れが必要です。グラフへの参入障壁は少し高くなっています。Neo4jを使うなら、Cypher(クエリ言語)を学ばなければなりません。SQL開発者にとっては難しくありませんが、新しい言語です。」
Neo4j 4.0には、いくつかの重要な新機能が搭載されています。1つ目は、シャーディング(水平分割)によってサイズ制限がなくなるスケーラビリティです。2つ目は、きめ細かなセキュリティ機能の強化により、セキュリティとプライバシーをより詳細に制御できるとされています。3つ目は、単一のNeo4jクラスタで複数のデータベースを実行できるようになったことです。最後に、新しい「リアクティブアーキテクチャ」により、開発者はデータの取得方法をより細かく制御できるようになります。
なぜスケーラビリティにこれほど重点を置くのでしょうか?「4.0以前は、単一画像のレプリケーションデータベースでした」とウェバー氏は言います。「プロジェクトを評価するアーキテクトであれば、Neo4jのレプリケーション機能では拡張性に十分対応できないのではないかと心配するかもしれません。Neo4jは最小限のハードウェアフットプリントで非常にパワフルですが、私たちにとってはこの点が重要になりました。Neo4j 4.0はこの点を改善し、複数のサーバーにまたがる複数のスピンドルにデータを分割し、水平方向に拡張できるようにするための一歩を踏み出しました。例えば、大手小売業者からクリックストリームデータを取得する場合、そのデータは非常に膨大であるため、水平方向に拡張できる必要があります。」
Neo4j グラフデータベースのボス:「主流は常に攻撃を受けている」
続きを読む
リアクティブアーキテクチャとはどういう意味でしょうか?「Neo4jではこれまで、クエリを発行するとデータベースが結果を返すというものでした。クライアントもデータベースも、クエリの生成や消費の速度を制御できませんでした。リアクティブAPIは、開発者が結果を返す速度を制御できることを意味します。あらゆる場所にバッファを構築してリソースを無駄にすることはありません。」
最後にウェバー氏は、グラフデータベース、特にNeo4jの発展を阻んでいるものは何なのかというテーマに戻りました。「それは惰性です」と彼は言います。「Neo4jの競合相手は誰でしょうか?Amazon NeptuneでもMicrosoft CosmosDBでもありません。Oracle、SQL Server、そしてまあまあ使えるMySQLです。開発者コミュニティに、より良く、より簡単な方法があることを示すことが、私たちにとって最大の課題であり、現在もなお大きな課題となっています。私たちの課題は、この分野の啓蒙活動と、市場にその価値を理解してもらうことです。」
Neo4j はオープンソースで、コミュニティ エディションと有料ライセンスが用意されています。コードは GitHub にあるため、SQL の熱心な愛好家でも簡単に参照できます。®