国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Python > 正文

Python使用py2neo操作圖數(shù)據(jù)庫neo4j的方法詳解

2024-09-09 19:03:34
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python使用py2neo操作圖數(shù)據(jù)庫neo4j的方法。分享給大家供大家參考,具體如下:

1、概念

圖:數(shù)據(jù)結(jié)構(gòu)中的圖由節(jié)點(diǎn)和其之間的邊組成。節(jié)點(diǎn)表示一個(gè)實(shí)體,邊表示實(shí)體之間的聯(lián)系。

圖數(shù)據(jù)庫:以圖的結(jié)構(gòu)存儲(chǔ)管理數(shù)據(jù)的數(shù)據(jù)庫。其中一些數(shù)據(jù)庫將原生的圖結(jié)構(gòu)經(jīng)過優(yōu)化后直接存儲(chǔ),即原生圖存儲(chǔ)。還有一些圖數(shù)據(jù)庫將圖數(shù)據(jù)序列化后保存到關(guān)系型或其他數(shù)據(jù)庫中。

之所以使用圖數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)是因?yàn)樗谔幚韺?shí)體之間存在復(fù)雜關(guān)系的數(shù)據(jù)具有很大的優(yōu)勢(shì)。使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫在處理數(shù)據(jù)之間的關(guān)系時(shí)其實(shí)很不方便。例如查詢選修一個(gè)課程的同學(xué)時(shí)需要join兩個(gè)表,查詢選修某個(gè)課程的同學(xué)還選修什么課程,這就需要兩次join操作,當(dāng)涉及到十分復(fù)雜的關(guān)系以及龐大的數(shù)據(jù)量時(shí),關(guān)系型數(shù)據(jù)庫效率十分低下。而通過圖存儲(chǔ),可以通過節(jié)點(diǎn)之間的邊十分便捷地查詢到結(jié)果。

圖模型:

節(jié)點(diǎn)(Node)是主要的數(shù)據(jù)元素,表示一個(gè)實(shí)體。

屬性(Properties)用于描述實(shí)體的特征,以鍵值對(duì)的方式表示,其中鍵是字符串,可以對(duì)屬性創(chuàng)建索引和約束。

關(guān)系(Relationships)表示實(shí)體之間的聯(lián)系,關(guān)系具有方向,實(shí)體之間可以有多個(gè)關(guān)系,關(guān)系也可以具有屬性

標(biāo)簽(Label)用于將實(shí)體分類,一個(gè)實(shí)體可以具有多個(gè)標(biāo)簽,對(duì)標(biāo)簽進(jìn)行索引可以加速查找

2、Neo4j

Neo4j是目前最流行的圖數(shù)據(jù)庫,它采用原生圖存儲(chǔ),在windows中下載安裝訪問如下地址https://neo4j.com/download/community-edition/。在Linux下通過如下命令下載解壓

curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gztar -axvf neo4j-community-3.4.5-unix.tar.gz

修改配置文件conf/neo4j.conf

# 修改第22行l(wèi)oad csv時(shí)l路徑,在前面加個(gè)#,可從任意路徑讀取文件#dbms.directories.import=import# 修改35行和36行,設(shè)置JVM初始堆內(nèi)存和JVM最大堆內(nèi)存# 生產(chǎn)環(huán)境給的JVM最大堆內(nèi)存越大越好,但是要小于機(jī)器的物理內(nèi)存dbms.memory.heap.initial_size=5gdbms.memory.heap.max_size=10g# 修改46行,可以認(rèn)為這個(gè)是緩存,如果機(jī)器配置高,這個(gè)越大越好dbms.memory.pagecache.size=10g# 修改54行,去掉改行的#,可以遠(yuǎn)程通過ip訪問neo4j數(shù)據(jù)庫dbms.connectors.default_listen_address=0.0.0.0# 默認(rèn) bolt端口是7687,http端口是7474,https關(guān)口是7473,不修改下面3項(xiàng)也可以# 修改71行,去掉#,設(shè)置http端口為7687,端口可以自定義,只要不和其他端口沖突就行#dbms.connector.bolt.listen_address=:7687# 修改75行,去掉#,設(shè)置http端口為7474,端口可以自定義,只要不和其他端口沖突就行dbms.connector.http.listen_address=:7474# 修改79行,去掉#,設(shè)置http端口為7473,端口可以自定義,只要不和其他端口沖突就行dbms.connector.https.listen_address=:7473# 去掉#,允許從遠(yuǎn)程url來load csvdbms.security.allow_csv_import_from_file_urls=true# 修改250行,去掉#,設(shè)置neo4j-shell端口,端口可以自定義,只要不和其他端口沖突就行dbms.shell.port=1337# 修改254行,設(shè)置neo4j可讀可寫dbms.read_only=false

在bin目錄下執(zhí)行 ./neo4j start,啟動(dòng)服務(wù),在瀏覽器http://服務(wù)器ip地址:7474/browser/可以看到neo4j的可視化界面

3、py2neo

py2neo是一個(gè)社區(qū)第三方庫,通過它可以更為便捷地使用python來操作neo4j

安裝py2neo:pip install py2neo,我安裝的版本是4.3.0

3.1、Node與Relationship

創(chuàng)建節(jié)點(diǎn)和它們之間的關(guān)系,注意在使用下面的py2neo相關(guān)類之前首先需要import導(dǎo)入:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江孜县| 平谷区| 万源市| 湄潭县| 商水县| 友谊县| 微博| 黔江区| 东光县| 旺苍县| 从化市| 新密市| 马山县| 教育| 正蓝旗| 富锦市| 密山市| 博白县| 高碑店市| 绥中县| 乌兰浩特市| 南投市| 鄂尔多斯市| 新邵县| 兴安盟| 怀集县| 合川市| 纳雍县| 阜平县| 上高县| 邵武市| 萍乡市| 塔河县| 恩平市| 定结县| 桦甸市| 晋中市| 新兴县| 保康县| 姜堰市| 大悟县|