投稿

11月, 2022の投稿を表示しています

Python でグラフデータベース(AuraDB, Docker版Neo4j)を使ってみる

イメージ
本記事では Neo4j、AuraDB を試す環境を準備して Python の簡単なプログラムを動かしてみます。 【目次】 [1]はじめに [2]AuraDB を無料で使ってみる [3]ローカル環境の Docker で Neo4j を使ってみる (1)使い捨て的な利用例 (2)データを永続化して利用する [4]アプリ(Python)から AuraDB / Neo4j にアクセスしてみる (1)サンプルデータ (2)Python で Cypher クエリを実行してみる [1]はじめに 前の記事『 プロパティグラフ(Neo4j / AuraDB他)の概要を知る:グラフデータベース 』で、プロパティグラフをモデルとするグラフデータベースの本を紹介しました。 本記事では実際に Neo4j、AuraDB を試す環境を作って、簡単なプログラムを動かしてみます。 今回は環境構築作業の負担が極力無い方法として AuraDB と Docker 版 Neo4j を取り上げます。 AuraDB は 登録すれば無料で使える Neo4j のクラウドホスティングです。例えば Google Colaboratory でプログラムを書いて AuraDB を使うことができます。 一方、Neo4j の Docker イメージも提供されていますので、ローカル環境で動作させることもできます。 AuraDB も Docker 版 Neo4j も接続設定を変えるだけで同じプログラムが動きます(動くはず)ので、例えば、ローカル環境でテストして本番にAuraDBを利用することもできます。 AuraDB と Neo4j は基本的には汎用データベースエンジンですが、可視化ツールなど面白そうなツールも組み込まれていて、使ってみると楽しいです。 [2]AuraDB を無料で使ってみる 実際の Neo4j データベースに触れる最も手軽な方法は AuraDB を使う事だと思います。 Fully Managed Graph Database Service | Neo4j AuraDB https://neo4j.com/cloud/platform/aura-graph-database/ AuraDB は Neo4j のフルマネージドなクラウドサービスでいくつかプランがありま

プロパティグラフ(Neo4j / AuraDB他)の概要を知る:グラフデータベース

イメージ
グラフデータベース ― Neo4jによるグラフデータモデルとグラフデータベース入門 Ian Robinson (著), Jim Webber (著), Emil Eifrem (著), 佐藤 直生 (監訳), 木下 哲也 (翻訳) 発売日:2015/3/25 今でも特別な要件が無い限りデータベース選択の第一候補はRDB(関係データベース)になることが多いと思います。 しかし、多様なプログラミング言語があるように、多様なデータベースがあり、オープンソースあるいはクラウド時代になって、より幅広く利用されるようになりました。(よく NoSQL とひとくくりにされてしまいますけど。) 今回はそのなかでもグラフデータベースの本を取り上げます。 この本のタイトルは『グラフデータベース』となっていますが、グラフデータベースに関する一般論というよりは、サブタイトルの通り『Neo4j によるグラフデータモデルとグラフデータベース入門』といった内容です。 Neo4j は意外に歴史のあるオープンソースのデータベースですが、最近特によく目にするようになりました。(最近では Neo4j のフルマネージドなクラウドサービスである AuraDB も利用できるようになってます。) Wikipedia: Neo4j https://ja.wikipedia.org/wiki/Neo4j Neo4j Graph Data Platform | Graph Database Management System https://neo4j.com/ Fully Managed Graph Database Service | Neo4j AuraDB https://neo4j.com/cloud/platform/aura-graph-database/ さて、グラフデータベースのモデルにもいろいろありますが、Neo4j のデータモデルはプロパティグラフです。 プロパティグラフとは、本書では以下の特徴を備えたものと説明されています。 プロパティグラフはノード、関係、プロパティで構成される。 ノードはプロパティを持つ。ノードを、任意のキー/値ペアの形式でプロパティを格納するドキュメントと考える。キーは文字列であり、値は任意のデータ型になる。 関係は、ノードをつないで構