主要内容

确定服务网络的依赖性

这个例子展示了如何分析服务之间的依赖关系网络中使用MATLAB®接口Neo4j®。假设您有图的数据存储在一个Neo4j代表一个网络数据库。该数据库有七个节点和七个关系。每个节点只有一个惟一的属性键的名字与价值观Service1通过Service7。每个关系类型DEPENDS_ON

找到服务的每个服务取决于数量,使用MATLAB接口Neo4j和有向图对象。Neo4j MATLAB接口的详细信息,请参阅图形数据库的工作流Neo4j数据库接口

Neo4j数据库本地计算机主机和端口号7474年、用户名neo4j和密码matlab。对数据库中数据的可视化表示,看到这个图。

连接到Neo4j数据库

创建一个Neo4j连接对象neo4jconn使用URLhttp://localhost: 7474 / db /数据、用户名neo4j和密码matlab

url =“http://localhost: 7474 / db /数据”;用户名=“neo4j”;密码=matlab的;neo4jconn = neo4j (url、用户名、密码);

检查消息Neo4j连接对象的属性neo4jconn。空白的消息属性表示连接成功。

neo4jconn.Message
ans = []

检索整个图

检索所有类型的关系DEPENDS_ON和所有节点与每个相关关系。

network_graphdata = searchGraph (neo4jconn, {“DEPENDS_ON”})
network_graphdata =结构体字段:节点(7×3表):关系:[7×5表]

图形数据转换为有向图

使用的表network_graphdata.Nodes,访问的名字为每个节点属性中出现NodeData表的变量。

分配表network_graphdata.Nodesnodestable

nodestable = network_graphdata.Nodes
nodestable =7×3表NodeLabels NodeData NodeObject __________ _______ ___________________________________ 6“服务”[1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 0“服务”[1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 4“服务”[1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 2“服务”[1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 3 '服务' [1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 5“服务”[1×1 struct] [1 x1 database.neo4j.http。Neo4jNode] 1“服务”[1×1 struct] [1 x1 database.neo4j.http.Neo4jNode]

分配每一行的行名称rownames

rownames = nodestable.Properties.RowNames
rownames =7×1单元阵列{' 6 '}{' 0 '}{‘4’}{' 2 '}{‘3’}{‘5’}{' 1 '}

访问NodeData变量的nodestable为每一行。nodedata包含一个结构数组。

nodedata = [nodestable.NodeData {rownames}]
nodedata =1×7结构体数组字段:的名字

检索的名字从每个结构,数组的索引。节点名是一个单元阵列特征向量包含节点的名称。

节点名= {nodedata (:) . name}
节点名=1×7单元阵列{' Service7}{‘价格’}{‘Service1} {‘Service3}{”生成“Service2} {‘Service4} {' Service5 '}

创建有向图对象network_graph使用neo4jStruct2Digraph功能和图形network_graphdata

network_graph = neo4jStruct2Digraph (network_graphdata,的节点名节点名)
network_graph =有向图的属性:边缘:[7×3表]节点:[7×3表]

看到一个图的可视化表示,创建一个图,显示了图network_graph

情节(network_graph“EdgeLabel”network_graph.Edges.RelationType)

找到每个服务的依赖性计数

发现服务,每个服务的数量取决于图中network_graph。确定每个节点的依赖数通过遍历图中的节点使用一个for循环。确定依赖统计,使用最近的函数。

创建表dependency_count存储的计数为每个服务的相关服务。排序由依赖表中的行计数降序排列。

dependency_count =表;i = 1:高度(network_graph.Nodes) nodeid = network_graph.Nodes.Name(我);nearest_node =最近的(network_graph nodeid,正无穷,“方向”,“外向”);nearest_length =长度(nearest_node);dependency_count = [dependency_count;表(nodeid nearest_length,“VariableNames”,{“节点”,“Dependency_count”}));结束dependency_count = sortrows (dependency_count, 2)
dependency_count =7×2表节点Dependency_count __________ ___________“价格”5“Service7”3“Service4”2“Service5”2“Service3”1生成的Service2 ' 1 ' Service1 0

为特定的服务找到所有依赖项

找到所有的服务服务的价格取决于图中network_graph使用最近的函数。

disp (的价格取决于以下服务:);
价格取决于以下服务:
最近的(network_graph“价格”正,“方向”,“外向”)
ans =5×1单元阵列{' Service4} {‘Service5} {‘Service3}{”生成“Service2} {' Service1 '}

关闭数据库连接

关上(neo4jconn)

另请参阅

|||

相关的例子

更多关于