gpt4 book ai didi

gremlin - AWS Neptune 数据库中的 Multi-Tenancy

转载 作者:行者123 更新时间:2023-12-03 15:30:47 43 4
gpt4 key购买 nike

我是海王星的新手。
在 Neptune 数据库中支持 Multi-Tenancy 的最佳方式是什么?
要求:
1. 支持数据库上千租户(一个集群)
2. 通过租户过滤避免查询变得过于复杂
3. 性能好(如果有办法使用数据分区来加快查询时间)
4. 安全 - 避免出错导致跨租户访问。

最佳答案

在非生产环境中 Gremlin partition strategy事实证明对我来说已经足够了。顶点和边共存于同一个 Gremlin 集群中,它们具有区分它们的属性,在我的情况下,我使用了 _env属性(property)。

然后在我的 Java 代码中,每次我从我的工厂请求遍历时,它都会使用分区策略。

    private GraphTraversalSource buildReadOnlyTraversal() {
log.debug("building read-only traversal");
return AnonymousTraversalSource.traversal()
.withRemote(DriverRemoteConnection.using(getReadOnlyCluster()))
.withStrategies(buildPartitionStrategy(), buildReadOnlyStrategy());
}

private PartitionStrategy buildPartitionStrategy() {
var env = this.properties.getEnvironmentPartition();
log.info("building partition strategy for environment={}", env);

return PartitionStrategy.build()
.partitionKey(ENVIRONMENT_PARTITION_KEY)
.writePartition(env)
.readPartitions(env)
.create();
}

使用这些遍历将自动限定到您的分区。然而,最大的问题是你需要记住在从控制台查询时手动添加对分区的引用(实际上任何不使用分区策略机制的东西),例如
g.V().hasLabel('user').has('_env', 'dev')
我认为这符合您的前 2 条标准,性能我无法评论。第 4 点,是的,这不是应用程序代码的问题,手动修改图形时更容易出错。

关于gremlin - AWS Neptune 数据库中的 Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59221208/

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