如何在Vertica企业版(K-safety 1)中明确节点依赖关系以构建节点图
在Vertica企业版(K-safety 1)中明确节点依赖关系
要构建节点关联图,你当前的查询仅返回节点名称和dependency_id,但dependency_id是节点的数字ID而非名称,无法直接看出节点间的对应关系。可以通过关联VS_NODES表将ID转换为节点名称,得到清晰的依赖映射。
原查询及问题
原查询语句:
select n.name, d.dependency_id from v_internal.VS_NODE_DEPENDENCIES d inner join v_internal.VS_NODES n on d.node_oid = n.oid where d.dependency_id < (select count (*) from v_internal.VS_NODES)
返回结果:
name | dependency_id --------------+-------------- v_db_node0001 | 0 v_db_node0001 | 1 v_db_node0002 | 0 v_db_node0002 | 2 v_db_node0003 | 1 v_db_node0003 | 2
该结果中dependency_id对应节点的node_id字段,需关联节点表转换为名称才能明确依赖关系。
改进后的查询语句
SELECT src.name AS source_node, dest.name AS dependent_node FROM v_internal.VS_NODE_DEPENDENCIES d JOIN v_internal.VS_NODES src ON d.node_oid = src.oid JOIN v_internal.VS_NODES dest ON d.dependency_id = dest.node_id WHERE d.dependency_id < (SELECT COUNT(*) FROM v_internal.VS_NODES);
查询结果说明
基于你的节点数据,该查询会返回如下清晰的依赖对应关系:
source_node | dependent_node --------------+-------------- v_db_node0001 | v_db_node0001 v_db_node0001 | v_db_node0002 v_db_node0002 | v_db_node0001 v_db_node0002 | v_db_node0003 v_db_node0003 | v_db_node0002 v_db_node0003 | v_db_node0003
其中source_node是当前节点,dependent_node是它依赖的节点,直接对应关系可用于构建节点关联图。
内容的提问来源于stack exchange,提问作者GriGrim
相关产品推荐
相关产品推荐

