【发布时间】:2016-06-13 05:26:31
【问题描述】:
我有一个东方数据库,其中包含来自不同管理工具的服务器的顶点。由于可以通过多个管理工具监视服务器,因此我想在同一服务器的顶点之间创建边。连接的组件将成为单独的服务器。
我遇到的问题是,不同的系统会有不同的命名约定——有些使用完全限定的域名,有些使用内部域名,有些只使用主机名。
我的样本数据:
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 个不同的命令(下面是伪代码),它们会产生下面的边缘
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
【问题讨论】:
-
在您的第一个伪查询“从 Alpha 中选择,将名称作为 Beta.DomainName 的子字符串加入”中,您有边 #12:0 到 #13:0 边 #12:0 到 #14:0 边#13:0 到 #14:0 但 14:0 是 GAMMA 而不是 BETA。你能更好地解释你的需求吗?
-
@AlessandroRota ,抱歉,我原来是按连通分量对边进行排序,现在按运算排序
-
嗨@Zeophilite,来源和目的地是否正确?
-
@LucaS ,边缘应该是双向的(或与方向无关)
-
嗨@Zeophlite,你能接受Javascript函数吗?
标签: orientdb