Neo4j グラフデータベースに大規模なデータセットがすでに保存されており、その全体像を掴みたいというシチュエーションが多々有ります。
本記事では、そのようなシチュエーションで役に立つ Cypher のクエリを紹介します。
db.schema.visualizaion()
は、Neo4j が提供する Procedure の一つです。Node と Relation の全体像をグラフで視覚的に表示してくれるので、重宝する Procedure です。
利用するには、CALL
を用いて以下の Cypher クエリを実行します。
CALL db.schema.visualization()
以下の図は、Neo4j Sandbox の Twitter Graph テンプレートを利用した時に生成されるサンプルデータに対する実行結果です。
db.schema.nodeTypeProperties()
は、Node に割り当てられたラベルやプロパティ名、プロパティ型の一覧を表形式で表示します。
CALL db.schema.nodeTypeProperties()
Relation に対しては、同様に db.schema.relTypeProperties()
が便利です。データに格納されている Relation 一覧を表示させたい場合にも便利でしょう。
CALL db.schema.relTypeProperties()
db.labels()
は、全ての Node に割り当てられたラベル一覧を表示させることができます。
CALL db.labels()
db.relationshipTypes()
は、同様に存在する全ての Relation 一覧を表示させることができます。
CALL db.relationshipTypes()
データベースに格納されている全てのプロパティキーを表示させたい場合は、db.propertyKeys()
を使うと良いでしょう。
CALL db.propertyKeys()
データベースに格納されている Node の総数を表示させたい場合は以下のクエリが便利です。
match (n) return count(n) as output
Relation の総数を知りたい場合は、anonymous relation を利用することで実現できます。
match ()-[]-() return count(*) as output
以上、Neo4j グラフデータベースに格納されているグラフデータセットの全体像を理解するために便利な Cypher を紹介しました。