各ノードに関する重要なメタ データ セット (ノードごとに数千のプロパティ) を持つ大規模なグラフ データベースを構築しています。私は現在、どのメタ データを Neo4j 内のノードにする必要があるか、ノードのプロパティにする必要があるか、別のデータベースに格納する必要があるかを決定するプロセスを進めています。
私の考えでは、メタ データを 3 つの方法で使用します
。1 - プロパティが多くのノード間で共有されている場合、そのプロパティを独自のノードにして、そのプロパティにエッジを作成します。
2 - プロパティがグラフをトラバースするために重要であるが、「高度に」共有されていない場合は、それをノード プロパティとして追加します。(必要に応じて、Neo4j 内でインデックスを作成することもできます)
3 = メタ データがそのノードを厳密に記述している場合、それを別の NoSQL データベースに格納し、Neo4J ノード ID を他のデータベースへの外部キーにします。
グラフ データベースを使用するのが最も効率的であるように思えますが、さまざまなプロパティ タイプがあり、それを使用する前にどのタイプのプロパティであるかを判断しなければならないのは面倒です。(おそらくプロパティ ルックアップのキーと値のストア) また、プロパティが高度に共有されたり、効率的なトラバーサルが必要になったりした場合に、プロパティを 3 から 2 に昇格する簡単な方法が必要になることも意味します。
誰かがこのアプローチをとったことがありますか?共有すべき考えや避けるべきことはありますか?