マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Neo4j

【OSS情報アーカイブ】Neo4j

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Neo4j」とは

基本情報

概要

Neo4j(ネオフォージェイ)とは、オープンソースNoSQL型グラフデータベースです。いくつかの基本的なデータ構造を理解し、SQLライク言語(Cypher)を覚えれば、グラフ理論に基づいたデータ処理機能を利用できます。

「グラフデータベース」とは

グラフデータベースとは、「ノード」「リレーション」「プロパティ」の3要素によってノード間の「関係性を表現」する「グラフ型データモデル」を持つデータベースです。

データセット全体をひとつの巨大高密度ネットワーク構造としてモデル化します。

RDBMSには不向きとされる、複雑なデータ群に対する保存/探索/集計に最適化されたデータベースです。

グラフデータベースは、グラフ化するためだけのデータベースではなく、グラフ理論を使用してデータ処理を行う汎用性の高いデータベースです。グラフ化機能は、多くの機能の中の1つにすぎません。

グラフ型データベースの設計には、「データモデリング用ER図」「オブジェクトモデル用UML」との共通点もあり、RDBMS設計者でも入りやすい側面を持っています。

基本説明

Neo4jは、グラフデータベースであり、NoSQLデータベースに分類されます。

Javaで開発されたソフトウェアで、Linux/Windows/Macに対応しています。

ポイント

・洗練されたユーザインターフェース(UI)
・データモデリングの容易さ
・読みやすいクエリ
・活発なコミュニティ活動
・オプショナルスキーマ

経緯

Neo4jは、「Neo Technology社」がメインとなり開発しています。

RDBMS系データベースのパフォーマンス問題を解決するために始まったとされています。

2003年から開発を始めて、2007年に公開されました。

GitHubで公開されています。

主な特徴

スキーマレス

Neo4jでは、事前のテーブル作成は必要はありません。クエリ構文が実行されデータが登録される時に、データ構造が決定されます。

データモデル

モデル化手法「プロパティグラフモデル(property graph model)」に基づいています。プロパティグラフモデルをストレージレベルにまで実装しています。

クエリ言語(Cypher QL)

データ操作は「Cypher QL(Cypher Query Language)」を使用します。SQLライクで短時間で習得できます。

クエリ実行結果表示

「Cypher QL」の実行結果は、結果値をデータとして受け取るか、グラフとして表示できます。グラフ化はブラウザや各種ツールを利用します。

ACID保証(トランザクション処理)

ACIDとは、「Atomicity(原子性)」「Consistency (一貫性)」「Isolation(独立性)」「Durability(耐久性)」の略です。

関連する複数の処理を一つの処理単位にまとめて管理するトランザクション処理を保証します。

ハイパフォーマンス

数十億のノード/リレーション/プロパティを管理できます。

2000リレーションの検索(探索)処理は、ミリ秒程度で完了します。

1000ノード程度の最短ルート計算の場合、MySQLの1000倍のスピードになります。ノード数が多くなるほど、その差は拡大します。

開発言語

Neo4jは、Java/Scalaで開発されています。REST APIを利用して、Java/JavaScript/Python/Ruby/PHP/.NETなどで開発が可能です。

マスタ型アーキテクチャ

Neo4jは、マスタデータベース1本に集中して管理します。

高可用性構成できるのは商用版のみですが、コミュニティ(オープンソース)版でもDRBDなどを利用して高可用化できます。

各種ツール

バッチ処理ツール「neo4j-shell」、大量データアップロードツール「neo4j-import」、バックアップツール「neo4j-backup」など、各種ツールが用意されています。

ドキュメント類が最適化されている

チュートリアル/ドキュメント類は、開発者向けに最適化されています。

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

商用製品:「Oracle Database『Oracle Spatial and Graph』オプション」など。

オープンソース製品:「OrientDB」など。

導入事例

グローバルでは500社以上の導入事例があります。adidas、eBayなどで採用されています。

日本国内では今後拡大していくと見られています。

ライセンス情報

Neo4j(コミュニティ版)のライセンスは、「GNU General Public License v3」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「企業によるベンダー、SIerへの 訴訟 」とは?〜日本通運がアクセンチュアを提訴〜🏢

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】「企業によるベンダー、SIerへの 訴訟 」とは?〜日本通運がアクセンチュアを提訴〜🏢

企業がベンダー(SIer)に対する 訴訟 の背景や原因を解説します。日本通運とアクセンチュアの125億円訴訟に加え、他の大規模な紛争事例も紹介します。プロジェクト管理や要件定義の重要性を具体例で説明し、成功への鍵を探ります。

【デジタル寺田の3分用語解説】経済産業省「 ダイバーシティ・コンパス 」とは?🧭

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】経済産業省「 ダイバーシティ・コンパス 」とは?🧭

経済産業省の「 ダイバーシティ・コンパス 」は、多様性を活かし企業の持続的成長を目指すためのツールです。企業が「目指す姿」や「行動指針」を整理し、未来へのビジョンを描く支援をします。また、診断ツールを活用し、「経営者」「人事」「現場」の取り組み状況を可視化することで、新たなステップを模索できます。

【デジタル寺田の3分用語解説】自然言語でアプリ開発「 GitHub Spark 」とは?⚡

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】自然言語でアプリ開発「 GitHub Spark 」とは?⚡

「 GitHub Spark 」は、コードを書かずに自然言語でアプリを作成できるAIツールです。アイデアを言葉で伝えるだけで、AIが自動的にアプリを作成します。リアルタイム編集や自動デプロイに対応し、初心者でも簡単にアプリ開発を楽しめます。