在浏览https://docs.janusgraph.org/v0.5/basics/configuration-reference/时,我发现对于关键
storage.cassandra.keyspace
,
JanusGraph 的键空间名称。如果不存在,则会创建它。如果未提供,但 graph.graphname 已提供,则键空间将设置为该值。
我想在运行时在java代码中获取这个配置的键空间以进行一些验证。有什么方法可以识别这个配置的键空间吗?
此外,如果我们通过 Cassandra CQL 命令创建键空间并尝试在 JanusGraph 服务器中使用它,服务器会抛出异常。这意味着JanusGraph只能识别JanusGraph本身创建的键空间。所以,我想确定哪个键空间是由 JanusGraph 创建的,哪个是由 Cassandra 本身创建的。
如果您不指定
storage.cassandra.keyspace
,JanusGraph 服务器将使用 graph.graphname
的值,如您链接的文档中所述(来自 CQLStoreManager.java
):
private String determineKeyspaceName(Configuration config) {
if ((!config.has(KEYSPACE) && (config.has(GRAPH_NAME)))) return config.get(GRAPH_NAME);
return config.get(KEYSPACE);
}
如果未配置
graphname
,JanusGraph 服务器默认会创建一个名为 janusgraph
的键空间(如果它尚不存在)。
conf/cassandra/cassandraTables.cql
中提供的模式创建 JanusGraph 表。否则,JanusGraph 会认为键空间无效并抛出错误。干杯!