gpt4 book ai didi

neo4j - 如何对单个 Neo4j 数据库进行分区?

转载 作者:行者123 更新时间:2023-12-04 19:06:52 27 4
gpt4 key购买 nike

一个Neo4j数据库是否可以拆分,让一个数据库有多个起点,所有查询都可以隔离,而不是有多个数据库?

我已经考虑过这个问题,我认为它可以在一定程度上起作用,但是一旦使用了标签之类的东西,这个想法就行不通了,因为标签查询将始终跨越整个数据库。

无论如何,我想知道是否有人成功地做到了这一点以及他们是如何做到的。

最佳答案

您所描述的听起来像是 Multi-Tenancy 。 Neo4j 2.0.1 目前不支持 Multi-Tenancy 作为一项功能。在 Neo4j 数据库实例中实现 Multi-Tenancy 架构有多种方法和策略。

您可以按标签对属性图集进行分区。由于节点可以有多个标签,您可以使用该分区的唯一标识标签来标记一个分区。

请参阅此处的标签文档:http://docs.neo4j.org/chunked/milestone/graphdb-neo4j-labels.html

此策略需要注意的事项是确保所有 Cypher 调用都包含标签的分区标识符,以确保两个分区在图中彼此隔离。确保来自一个分区的关系不会跨越到另一个分区是很重要的。

例如,分区 1 可以是标签 Partition1 .假设您的应用程序上下文在 Partition1 上运行:

MERGE (user:User:Partition1 { name: 'Peter' })
RETURN user

假设您的应用程序上下文在 Partition2 上运行:
MERGE (user:User:Partition2 { name: 'Peter' })
RETURN user

执行这两个查询时,会为 Partition1 创建两个单独的 Peters。和 Partition2 .

您只需要确保您的应用程序所操作的分区标签将其标签附加到您的每个查询中。虽然这很乏味,但这是目前进行 Multi-Tenancy 的建议方法。

关于neo4j - 如何对单个 Neo4j 数据库进行分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com