neo4j 通過連接mysql 動態取資料圖形展示 python
程式分二個部分:
1.創建節點,會先判斷節點是否存在,存在則列印“already exists 1” 或 “already exists 2”,不存在則創建,
如:
nginx訪問后端tomcat ,資料庫填寫如下資訊:
192.168.1.1 nginx access 192.168.1.2 tomcat
2.創建關系,會按行掃描mysql
node_1 = Relationship(node1, ‘node’, node2)
3.python 運行時會先洗掉所有資料重新來過
4.做crontab 后,可以修改資料庫后自動圖形展示
# coding:utf-8
from py2neo import Graph, Node, Relationship,NodeMatcher
import MySQLdb
def createnode():
sql = "select * from `neo4j` ;"
cursor.execute(sql)
results = cursor.fetchall()
#py2neo 4.3.0 version
#graph = Graph('http://192.168.6.245:7474', username='neo4j', password='passwd')
#py2neo 2021.1 version
graph = Graph('http://192.168.1.245:7474', auth=('neo4j', 'passwd'))
graph.delete_all()
for row in results:
id,monitor,ip,product,relationship,ip1,product1 = row[0],row[1],row[2],row[3],row[4],row[5],row[6]
if monitor == 1 :
print id,monitor,ip,product,relationship,ip1,product1
node1 = Node('product', name=product+ip)
node2 = Node('product', name=product1+ip1)
matcher = NodeMatcher(graph)
ifnode1 = matcher.match('product', name=product+ip).first()
if ifnode1 == None:
graph.create(node1)
else:
cc = ifnode1['name']
if product+ip == cc:
print "already exists 1"
else:
graph.create(node1)
ifnode2 = matcher.match('product', name=product1+ip1).first()
if ifnode2 == None:
graph.create(node2)
else:
dd = ifnode2['name']
if product1+ip1 == dd:
print "already exists 2"
else:
graph.create(node2)
print "create node ok"
def neo4jrelationship():
sql = "select * from `neo4j` ;"
cursor.execute(sql)
results = cursor.fetchall()
graph = Graph('http://192.168.1.245:7474', auth=('neo4j', 'passwd'))
for row in results:
id,monitor,ip,product,relationship,ip1,product1 = row[0],row[1],row[2],row[3],row[4],row[5],row[6]
if monitor == 1 :
print id,monitor,ip,product,relationship,ip1,product1
matcher = NodeMatcher(graph)
node1 = matcher.match('product',name=product+ip).first()
node2 = matcher.match('product',name=product1+ip1).first()
node_1 = Relationship(node1, 'node', node2)
graph.create(node_1)
if __name__=="__main__":
try:
conn = MySQLdb.connect("192.168.1.23", "root", "passwd", "test", charset='utf8' )
cursor = conn.cursor()
print "connect mysql "
createnode()
neo4jrelationship()
conn.close()
except:
print "Error"
mysql結構:
圖形展示:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/384188.html
標籤:其他
上一篇:計算機組成原理---中央處理器
