我有一个Orient数据库,其顶点用于来自不同管理工具的服务器。由于服务器可以通过多个管理工具进行监控,因此我希望在同一台服务器的顶点之间创建边缘。连接的组件将成为单独的服务器。在OrientDB中创建边缘
我遇到的问题是不同的系统会有不同的命名约定 - 有些使用完全限定域名,有些使用内部域名,有些使用主机名。
我的示例数据:
orientdb {db=audit}> select * from V
+----+------+-------+----------+----------------------+----------------+
|# |@RID |@CLASS |Name |DomainName |LocalName |
+----+------+-------+----------+----------------------+----------------+
|0 |#12:0 |Alpha |compute-1 |null |null |
|1 |#12:1 |Alpha |compute-2 |null |null |
|2 |#12:2 |Alpha |compute-3 |null |null |
|3 |#13:0 |Beta |null |compute-1.example.com |null |
|4 |#13:1 |Beta |null |compute-2.example.com |null |
|5 |#14:0 |Gamma |null |null |compute-1.local |
|6 |#14:1 |Gamma |null |null |compute-3.local |
+----+------+-------+----------+----------------------+----------------+
预期输出:
我期望3个不同的命令(下面pseudocoded),这将产生下面的边缘
Alpha to Beta:
Select from Alpha, join Name as a substring of Beta.DomainName
edge between #12:0 and #13:0
edge between #12:1 and #13:1
Alpha to Gamma:
Select from Alpha, join Name & ".local" with Gamma.LocalName
edge between #12:0 and #14:0
edge between #12:2 and #14:1
Beta to Gamma:
Select LocalName from Gamma, remove ".local" suffix, join as a substring of Beta.DomainName
edge between #13:0 and #14:0
在你的第一个pseudoquery “从阿尔法选择,加入名称为Beta.DomainName的子串” 你有 边缘#12:0〜#13:0 边缘#12:0〜#14 :0 边缘#13:0至#14:0 但是14:0是GAMMA而不是BETA。 你能解释一下你的需求吗? –
@AlessandroRota,道歉,我最初通过连接组件排序边缘,我现在通过操作 – Zeophlite
对它们进行了排序嗨@Zeophilite,源和目标是否正确? – LucaS