技術 ブログ

読書メモ:グラフデータベース



スキルの棚卸のため、こちらも過去読んだ本について書きます。

グラフデータベースとしては、プロパティグラフ(ノードとエッジにデータを格納する)であるNeo4jと、W3Cが定めたフォーマット仕様の一つであるN-TriplesのRDFデータを格納するBlazegraphが有名ではないでしょうか(GraphQLはAPIでありデータベースではないので省きます)?

とは言うものの、ほとんどのエンジニアが使わずに一生を過ごすことかと思います。

5年以上前ですが、SNSの普及によりFacebookやインスタグラムの友人関係など、さまざまな関連を格納できるグラフデータベースの可能性が話題になりました。

RDBだと表(テーブル)としてデータを格納するため、「友人の友人の友人」といった複数のデータ同士(N×N×N…)の関連を格納するのに処理が重くなり適していません。

そういったデータ同士の関連の格納にグラフデータベースが適しているというのが話題に上がった理由です。

結果として前職では、グラフデータベースを利用したシステムを作ることになり、その前段階の検討において当書籍で学びました。

結局は、私自身が業務でNeo4jを使うことはありませんでしたが、RDFを使ったBlazegraphの方は携わったので、結果的にプロパティグラフを中心に扱った当書籍を勉強してRDFをつかったBlazegraphとの比較ができたことは大きかったと思います。

※RDFはW3Cで定められたフォーマットを使うので組織の枠を超えたシステム同士のデータ連携に優れています。

グラフデータベース自体は、パフォーマンス等や汎用性を考えると処理に優れたRDBを使うことが多いので、結局のところまだメインストリームには上がっていません。

しかし、グラフデータを扱うには、CypherというNeo4jのクエリは適していると思うので、グラフ理論を学びたいというよりグラフデータをシステムで活かしたい場合に、導入においてお勧めの書籍です。

コメント投稿フォーム

メールアドレスが公開されることはありません。 が付いている欄は必須項目です