书签 分享 收藏 举报 版权申诉 / 59
上传文档赚钱

类型《NOSQL数据库技术》课件第3章-Neo4j图数据库.pptx

  • 上传人(卖家):momomo
  • 文档编号:5818426
  • 上传时间:2023-05-11
  • 格式:PPTX
  • 页数:59
  • 大小:2.15MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《NOSQL数据库技术》课件第3章-Neo4j图数据库.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    NOSQL数据库技术 NOSQL 数据库技术 课件 Neo4j 数据库
    资源描述:

    1、目录目录Neo4j DBNeo4j DB基础基础1Neo4jNeo4j数据操作基础数据操作基础2Neo4jNeo4j集群技术集群技术3Neo4jNeo4j管理与监控管理与监控4小结小结513.1 Neo4j DB基础基础2nNeo4jNeo4j图数据库采用图数据库采用JavaJava语言开发语言开发。nNeo4jNeo4j图数据库是以原生图结构形式来存储数据的,数据模图数据库是以原生图结构形式来存储数据的,数据模型对于实体及其间的复杂关联关系具有天生的适配性型对于实体及其间的复杂关联关系具有天生的适配性n官网:官网:https:/https:/ Neo4j DB基础基础nNeo4jNeo4j特

    2、点特点n优越的性能优越的性能:高效的读写能力;:高效的读写能力;n设计的灵活性设计的灵活性:无固定模式,自然扩展;:无固定模式,自然扩展;n迭代的敏捷性迭代的敏捷性:适应迭代的敏捷开发方法;:适应迭代的敏捷开发方法;n安全可靠安全可靠:支持事务管理,提供实时在线备份、日志恢:支持事务管理,提供实时在线备份、日志恢复功能;复功能;n简单易用简单易用:支持多种程序设计语言开发,特别是:支持多种程序设计语言开发,特别是Spring Spring data Neo4jdata Neo4j开发包;支持开发包;支持REST APIREST API;n提供提供类类SQLSQL的图数据查询语言:的图数据查询语

    3、言:Neo4j CQLNeo4j CQL;n支持批量导入、导出支持批量导入、导出图图数据;数据;n提供提供一个用于执行一个用于执行CQLCQL命令命令的的Web UIWeb UI:通过浏览器即可通过浏览器即可操作操作Neo4jNeo4j图图数据;数据;3.1 Neo4j DB基础基础nNeo4jNeo4j特点(续)特点(续)n支持索引支持索引机制机制及及UNIQUEUNIQUE约束约束;n采用原生图采用原生图数据存储模式数据存储模式与图与图计算计算引擎引擎;n提供丰富的图数据处理与分析算法库(提供丰富的图数据处理与分析算法库(APOCAPOC);n提供提供丰富的丰富的APIAPI,支持,支持J

    4、avaJava、PythonPython、ScalaScala等编程语言;等编程语言;n集群架构易于横向扩展;集群架构易于横向扩展;n最新最新4.04.0版本在横向扩展方面、安全控制粒度方面、支持版本在横向扩展方面、安全控制粒度方面、支持WebWeb应用响应式开发框架技术等方面都有很大提升;应用响应式开发框架技术等方面都有很大提升;n丰富丰富的学习资源:的学习资源:https:/ Neo4j DB基础基础nNeo4jNeo4j特点(续特点(续):):采用采用属性图模型属性图模型描述业务关描述业务关键图数据键图数据n图数据模型关键要素图数据模型关键要素 节点、关系、节点属性、关系属性等节点、关系

    5、、节点属性、关系属性等还有?还有?nNeo4jNeo4j数据模型基本要素数据模型基本要素n节点存储(节点存储(node storenode store)n关系存储(关系存储(relationship storerelationship store)n属性存储(属性存储(property storeproperty store)n标签标签(LabelLabel):表示类别的含义):表示类别的含义3.1 Neo4j DB基础基础n官网下载官网下载:httpshttps:/:/ 2020年年1 1月月1515日发布最新版本日发布最新版本4.04.0,读者可自行对比练习;,读者可自行对比练习;n4.0

    6、4.0版本主要在多数据库访问支持、响应式开发等方面进行提升版本主要在多数据库访问支持、响应式开发等方面进行提升3.1.1下载与安装下载与安装nWindowsWindows版本安装,版本安装,linuxlinux平台安装步骤类似平台安装步骤类似 下载下载neo4j-community-3.5.x-windows.zipneo4j-community-3.5.x-windows.zipn需要需要OpenJDKOpenJDK 8 8 或者或者 Oracle Java Oracle Java 8 8 环境环境n创建目录:如创建目录:如D:neo4jD:neo4jn解压解压,主要,主要文件夹作用如下文件

    7、夹作用如下:nbin bin 目录目录:用于:用于存储存储 Neo4j Neo4j 的可执行程序;的可执行程序;nconfconf目录:用于控制目录:用于控制 Neo4j Neo4j 启动的配置文件,启动的配置文件,neo4j.confneo4j.conf ;ndata data 目录:目录:用于存储核心数据库文件;用于存储核心数据库文件;nplugins plugins 目录:用于目录:用于存储存储 Neo4j Neo4j 的的插件插件;nl logsogs目录目录:用于存储用于存储日志文件日志文件;nliblib目录目录:用于存储依赖的用于存储依赖的jarjar包文件;包文件;3.1.1下

    8、载与安装下载与安装n配置环境变量配置环境变量n设置环境变量:设置环境变量:NEO4J_HOMENEO4J_HOME为安装路径为安装路径n修改环境变量:修改环境变量:PATHPATH,加上,加上Neo4jNeo4j的的binbin目录目录3.1.1下载与安装下载与安装n启动服务启动服务:管理员身份管理员身份n方法方法1 1:控制台启动:控制台启动:neo4j.bat consoleneo4j.bat console问题:需要始终开启窗口,否则服务无法访问问题:需要始终开启窗口,否则服务无法访问n方法方法2 2:安装服务,在系统服务管理中启停服务:安装服务,在系统服务管理中启停服务 neo4j i

    9、nstall-service neo4j install-servicen方法方法3 3:neo4j start neo4j start 命令启动服务命令启动服务 neo4j stop neo4j stop 命令停止服务命令停止服务3.1.1下载与安装下载与安装n启动服务启动服务n验证服务启动成功验证服务启动成功使用浏览器打开:使用浏览器打开:http:/localhost:7474http:/localhost:74743.1.1下载与安装下载与安装n登录数据库服务登录数据库服务n默认登录账号:默认登录账号:neo4j neo4j 密码:密码:neo4j neo4j n首次首次登录需要修改密

    10、码登录需要修改密码:如改为:如改为yuanyuan3.1.1下载与安装下载与安装n左边收藏中有电影库示例及其它功能菜单左边收藏中有电影库示例及其它功能菜单3.1.1下载与安装下载与安装n在在WebWeb控制台可以执行以下命令查看有关控制台可以执行以下命令查看有关CQLCQL的详细在线的详细在线语法帮助。语法帮助。$:help$:help cyphercyphernNeo4jNeo4j除了提供除了提供WebWeb控制台方式操作数据库外,也提供控制台方式操作数据库外,也提供了了Cypher-shellCypher-shell的命令行方式操作数据库的命令行方式操作数据库。n命令行交互环境下可命令行交

    11、互环境下可输入输入:help :help 查看查看cyphercypher命令提示命令提示信息信息n输入输入:quit quit 则则退出交互退出交互环境环境ncyphercypher命令执行时需要以冒号命令执行时需要以冒号开头开头3.1.1下载与安装下载与安装nNeo4jNeo4j除了除了CQLCQL默认提供的函数和存储过程外,还提供了功默认提供的函数和存储过程外,还提供了功能强大的扩展能强大的扩展APOCAPOC库。库。n可以调用库函数进行可以调用库函数进行更复杂的图数据处理与更复杂的图数据处理与分析如图数据分析如图数据集成处理集成处理、社团、社团检测检测、节点重要性计算、节点重要性计算、

    12、PageRankPageRank等算法等算法,及灵活,及灵活的格式转换等数据处理函数的格式转换等数据处理函数。n需要额外安装对应程序包,如需要额外安装对应程序包,如apoc-3.5.0.2-all.jarsapoc-3.5.0.2-all.jarsn实践环节再详细介绍,右边实践环节再详细介绍,右边 命令可确认是否安装成功命令可确认是否安装成功n以下为格式转换命令示例以下为格式转换命令示例3.1.1下载与安装下载与安装n在在Neo4jNeo4j数据库中,节点、边的属性是一系列的数据库中,节点、边的属性是一系列的KeyKey、ValueValue值对,值对,KeyKey取值要求为字符串类型,表示属

    13、性的名称,属取值要求为字符串类型,表示属性的名称,属性性ValueValue的类型如的类型如表所表所示,可以是示,可以是9 9种基本类型之一,也可种基本类型之一,也可以是由基本类型组成的数组类型。以是由基本类型组成的数组类型。序号序号CQL数据类型数据类型含义含义1boolean布尔:布尔:true,false2byte8位位整数整数3short16位位整数整数4int32位位整数整数5long64位位整数整数6float32位位浮点浮点7double64位位浮点浮点8char16位位Unicode字符字符9string字符串,字符串,Unicode字符序列字符序列3.1.2 数据类型数据类型

    14、n复杂类型支持复杂类型支持n映射映射(MapMap):):KVKV形式形式n列表列表(ListList)类型)类型:n类似类似数组的形式存储多个值的数组的形式存储多个值的序列序列n可以可以通过位置引用某个元素值,位置索引从通过位置引用某个元素值,位置索引从0 0开始,开始,位置为负时表示从尾部位置为负时表示从尾部开始开始n时间、日期类型:不直接支持时间、日期类型:不直接支持n通过函数调用实现,如下通过函数调用实现,如下datedate函数调用示例函数调用示例3.1.2 数据类型数据类型n时间、日期类型:不直接支持(续)时间、日期类型:不直接支持(续)ntimestamptimestamp()(

    15、)函数可以用来获取当前的函数可以用来获取当前的时间时间ntimestamp()timestamp()函数内部是使用函数内部是使用System.currentTimeMillisSystem.currentTimeMillis()()返返回当前毫秒级时间戳值的回当前毫秒级时间戳值的。n可以使用可以使用APOCAPOC库函数库函数apoc.date.formatapoc.date.format来完成格式转换来完成格式转换操作,如按操作,如按”yyyyyyyy-MM-MM-dddd HH:mm:ssHH:mm:ss”格式显示格式显示3.1.2 数据类型数据类型目录目录Neo4j DBNeo4j DB

    16、基础基础1Neo4jNeo4j数据操作基础数据操作基础2Neo4jNeo4j集群技术集群技术3Neo4jNeo4j管理与监控管理与监控4小结小结5193.2 Neo4j数据操作基础数据操作基础20nNeo4jNeo4j每次每次启动读取配置文件中默认启动读取配置文件中默认链接的链接的数据库数据库 如初始默认配置数据库名称为:如初始默认配置数据库名称为:graph.dbgraph.dbn对应配置文件对应配置文件neo4j.confneo4j.conf中对应的数据库配置项:中对应的数据库配置项:dbms.active_databasedbms.active_database=graph.dbgrap

    17、h.dbn数据库文件位于安装路径下的数据库文件位于安装路径下的datadatabasesdatadatabasesgraph.dbgraph.db文件夹下文件夹下n后续实践课学习如何新建其他数据库后续实践课学习如何新建其他数据库n节点及其属性、标签的节点及其属性、标签的CRUDCRUDn创建创建没有属性的没有属性的节点节点n创建包含创建包含属性的节点属性的节点n创建有一个标签的节点创建有一个标签的节点n创建有多个标签的节点创建有多个标签的节点n节点查询、修改、删除操作节点查询、修改、删除操作3.2.1节点操作节点操作n1 1、创建、创建没有属性的没有属性的节点节点CREATE(CREATE(:

    18、)n例:例:create create(emp:Employeeemp:Employee)create(create(dept:Deptdept:Dept)n注注:如果执行两次上面标红色的语句会报错吗?如果执行两次上面标红色的语句会报错吗?要要创建的节点名称。创建的节点名称。节点节点标签名称标签名称3.2.1节点操作节点操作说明:v表示variable,变量n2 2、创建有、创建有属性的属性的节点节点CREATE(CREATE(:.:-Value )n示例:示例:CREATE(CREATE(dept:Deptdept:Dept deptno:10,dname:Accounting,locati

    19、on:Hyderabad)deptno:10,dname:Accounting,location:Hyderabad)3.2.1节点操作节点操作n3 3.创建标签:创建标签:节点单一标签节点单一标签CREATE(CREATE(:)n示例:示例:CREATE(google1:GooglePlusProfile)CREATE(google1:GooglePlusProfile)n4.4.同时创建节点的多个标签同时创建节点的多个标签CREATE(:label-nameCREATE(:.:.:)n示例示例:CREATE(CREATE(m:Movie:Cinema:Film:Picturem:Movie

    20、:Cinema:Film:Picture)3.2.1节点操作节点操作n节点查找节点查找 MATCHMATCH (emp:Employeeemp:Employee)WHEREWHERE emp.name=emp.name=AbcAbc OR emp.name=Xyz OR emp.name=Xyz RETURNRETURN empempn查询所有节点,结果显示如图查询所有节点,结果显示如图 MATCH(n)RETURN n;MATCH(n)RETURN n;3.2.1节点操作节点操作n更改节点属性更改节点属性n语法:语法:SET property-name-listSET n示例:示例:1 1)

    21、批量修改)批量修改MATCH(MATCH(emp:Employeeemp:Employee)set)set emp.salemp.sal=3456 return=3456 return empemp2 2)加加WHEREWHERE过滤条件,修改满足条件节点的属性过滤条件,修改满足条件节点的属性MATCH MATCH(emp:Employeeemp:Employee)WHERE emp.id=121 set)WHERE emp.id=121 set emp.salemp.sal=5678 =5678 return return empemp3 3)加属性匹配过滤条件,修改匹配节点的属性)加属性匹

    22、配过滤条件,修改匹配节点的属性MATCH(MATCH(empempid:121id:121)set)set emp.salemp.sal=9000 return=9000 return empemp3.2.1节点操作节点操作n删除节点示例删除节点示例n语法:语法:DELETE DELETE node-name-list n示例:示例:match match(e:Employeee:Employee)DELETE)DELETE e en注意:当节点含注意:当节点含关系时关系时,无法执行,无法执行删除删除 。n可以限定要删除节点满足的属性取值及其它需要满可以限定要删除节点满足的属性取值及其它需要满

    23、足的条件足的条件3.2.1节点操作节点操作n删除删除节点节点属性,关系属性删除语法类似属性,关系属性删除语法类似n语法:语法:REMOVE REMOVE property-name-list n示例:示例:1 1)创建创建CREATE(CREATE(book:Bookbook:Book id:122,title:Neo4j id:122,title:Neo4j Tutorial,pages:340,price:250)Tutorial,pages:340,price:250)3.2.1节点操作节点操作n删除删除节点节点属性,关系属性删除语法类似(续)属性,关系属性删除语法类似(续)n示例:示例

    24、:2 2)查询查询:match(match(n:Bookn:Book)return n limit)return n limit 25253 3)删除节点属性删除节点属性MATCH(bookid:122)MATCH(bookid:122)removeremove book.pricebook.price return book return book3.2.1节点操作节点操作n删除删除节点标签,节点标签,关系关系标签标签删除删除语法语法类似类似n语法:语法:REMOVE label-name-listREMOVE n示例:示例:MATCH(MATCH(m:Moviem:Movie)remove

    25、remove m:Picture m:PicturenREMOVEREMOVE与与DELETEDELETE比较比较nDELETEDELETE删除节点、关系;删除节点、关系;nREMOVEREMOVE删除属性、标签;删除属性、标签;n二者都不能独立使用;二者都不能独立使用;n二者需要和二者需要和MATCHMATCH配合使用;配合使用;3.2.1节点操作节点操作n使用循环批量创建节点使用循环批量创建节点n示例:示例:withwith a,b,ca,b,c as as collcoll foreachforeach (value in(value in collcoll|create(:person

    26、|create(:personname:valuename:value)3.2.1节点操作节点操作n1 1、创建无属性的关系、创建无属性的关系CREATECREATE (:)-relationship-v-name:relationship-label-name-(:)node2-label-name)RETURN RETURN relationship-v-name n示例:示例:create(p1:Person)-create(p1:Person)-like:LIKESlike:LIKES-(p2:Person-(p2:Person)3.2.2 关系操作关系操作return非必需,也可非必

    27、需,也可返回其它表达式结果返回其它表达式结果n2 2、创建有属性的关系、创建有属性的关系CREATE(CREATE(:)-relationship-v-name-:-(:)list)RETURN RETURN n示例:示例:CREATE(CREATE(TheMatrix:MovieTheMatrix:Movie title:Thetitle:The Matrix,released:1999,Matrix,released:1999,tagline:Welcometagline:Welcome to the to the Real WorldReal World)CREATE(CREATE(Ke

    28、anu:PersonKeanu:Person name:Keanuname:Keanu Reeves,born:1964)Reeves,born:1964)CREATE CREATE (Keanu)-:ACTED_IN roles:Neo-(Keanu)-:ACTED_IN roles:Neo-(TheMatrixTheMatrix););3.2.2 关系操作关系操作return非必需,也可非必需,也可返回其它表达式结果返回其它表达式结果n3 3、匹配已有节点,创建关系、匹配已有节点,创建关系MATCH MATCH(:),(),(:):)CREATECREATE ()-)-:-()-()RET

    29、URN RETURN n示例:示例:CREATE(CREATE(e:Customere:CustomercustID:100);custID:100);CREATE(CREATE(cc:CreditCardcc:CreditCardcardID:300360);cardID:300360);MATCH MATCH(e:Customere:CustomercustID:100custID:100),(),(cc:CreditCardcc:CreditCardcardID:300360)cardID:300360)CREATECREATE(e)-(e)-r:DO_SHOPPING_WITHr:DO

    30、_SHOPPING_WITH-(cc-(cc););3.2.2 关系操作关系操作n删除关系示例删除关系示例,通常通常n语法:语法:DELETE DELETE 注:需配合匹配子句指定要删除关系需满足的条件注:需配合匹配子句指定要删除关系需满足的条件n示例:示例:1 1)查询)查询MATCH MATCH(cc:CreditCardcc:CreditCard)-r)-r-(-(e:Customere:Customer)RETURN RETURN cc,ecc,e,r,r3.2.2 关系操作关系操作n删除关系示例删除关系示例,通常通常2 2)删除节点及关系)删除节点及关系match match(cc:

    31、CreditCardcc:CreditCard)-r-()-r-(e:Customere:Customer)where id(r)=273 deletewhere id(r)=273 delete r r3 3)查询查询MATCH(MATCH(cc:CreditCardcc:CreditCard)-r-()-r-(e:Customere:Customer)RETURN RETURN cc,ecc,e,r r4 4)以下语句会产生什么效果呢?)以下语句会产生什么效果呢?match(match(cc:CreditCardcc:CreditCard)-r-()-r-(e:Customere:Cust

    32、omer)deletedelete r r3.2.2 关系操作关系操作n排序子句排序子句n语法:语法:ORDER BY ORDER BY DESC DESCn示例:示例:create(create(emp:Employeeemp:Employeeid:121,name:qiqi,sal:35600,deptno:11)id:121,name:qiqi,sal:35600,deptno:11)create(create(emp:Employeeemp:Employeeid:123,name:maqi,sal:5600,deptno:131)id:123,name:maqi,sal:5600,de

    33、ptno:131)create(create(emp:Employeeemp:Employeeid:125,name:wufang,sal:8600,deptno:123)id:125,name:wufang,sal:8600,deptno:123)MATCH(MATCH(emp:Employeeemp:Employee)return)return emp.id,emp.name,emp.sal,emp.deptnoemp.id,emp.name,emp.sal,emp.deptno3.2.3 排序排序与聚合操作与聚合操作n排序子句排序子句n示例:示例:MATCH MATCH(emp:Empl

    34、oyeeemp:Employee)return)return emp.id,emp.name,emp.sal,emp.deptnoemp.id,emp.name,emp.sal,emp.deptno ORDER BY emp.name ORDER BY emp.name DESCDESCMATCH(MATCH(emp:Employeeemp:Employee)return)return emp.id,emp.name,emp.sal,emp.deptnoemp.id,emp.name,emp.sal,emp.deptno ORDER BY ORDER BY emp.salemp.sal 3.2

    35、.3 排序排序与聚合操作与聚合操作n使用使用WITHWITH,连接子句,连接子句MATCH(MATCH(a:Persona:Person)-:)-:ACTED_IN-(ACTED_IN-(b:Movieb:Movie)WITH WITH a,counta,count(b)AS k(b)AS k WHERE WHERE k0 k0 RETURN RETURN a,ka,kORDER BY ORDER BY k DESCk DESC3.2.3 排序排序与聚合操作与聚合操作n如经典的如经典的 最最短短路径路径 查询查询MATCH(MATCH(bacon:Personbacon:Person name

    36、:Kevinname:Kevin Bacon)-Bacon)-*1.4-(1.4-(hollywoodhollywood)RETURN DISTINCT RETURN DISTINCT hollywoodhollywood3.2.4路径操作路径操作nCQLCQL索引索引nNeo4j Neo4j CQLCQL支持节点或关系属性上的索引,支持节点或关系属性上的索引,以以进一步进一步提提高高应用程序的性能应用程序的性能。n可为可为具有相同具有相同标签的节点属性、关系属性创建标签的节点属性、关系属性创建索引索引。n可以可以在在MATCHMATCH或或WHEREWHERE或或ININ运算符上使用这些运算

    37、符上使用这些索引索引来来改进改进CQL CommandCQL Command的的执行性能。执行性能。nNeo4JNeo4J索引操作索引操作nCreate IndexCreate Index创建创建索引索引CREATE CREATE INDEX ON:INDEX ON:()nDrop IndexDrop Index删除删除索引索引DROP INDEX ON:DROP INDEX ON:()3.2.5 索引索引操作操作nCQL UNIQUECQL UNIQUE约束约束nNeo4jNeo4j数据库支持对节点或关系的属性设定数据库支持对节点或关系的属性设定UNIQUEUNIQUE约束约束n创建唯一约束

    38、语法创建唯一约束语法CREATE CONSTRAINT ON(CREATE CONSTRAINT ON()ASSERT ASSERT IS UNIQUE IS UNIQUEn删除删除UNIQUEUNIQUE约束约束语法语法DROP CONSTRAINT ON(DROP CONSTRAINT ON()ASSERT ASSERT IS UNIQUE IS UNIQUE3.2.6 约束约束操作操作n调用存储过程调用存储过程CALL CALL db.labelsdb.labels()()CALL CALL dbms.proceduresdbms.procedures()():返回可用的存储过程列表及说

    39、明:返回可用的存储过程列表及说明3.2.7存储过程调用存储过程调用目录目录Neo4j DBNeo4j DB基础基础1Neo4jNeo4j数据操作基础数据操作基础2Neo4jNeo4j集群技术集群技术3Neo4jNeo4j管理与监控管理与监控4小结小结5443.3 Neo4j集群技术集群技术45n集群技术是低成本提供高性能存储与访问图数据的集群技术是低成本提供高性能存储与访问图数据的关键关键技术技术nNeo4jNeo4j图数据库主要有两种集群图数据库主要有两种集群方式方式n因果集群(因果集群(Causal ClusteringCausal Clustering)n在在3.13.1企业版中企业版中

    40、增加增加n采用先进的集群架构和安全架构满足企业更大规模生采用先进的集群架构和安全架构满足企业更大规模生产与产与安全性、可用性需求安全性、可用性需求n配置文件集群类别配置文件集群类别 dbms.modedbms.mode的值:的值:CORECORE或者或者READ_REPLICAREAD_REPLICAn高高可用性集群(可用性集群(High AvailabilityHigh Availability,HAHA)n最先在最先在1.21.2版本上版本上提供提供n配置文件集群类别配置文件集群类别 dbms.modedbms.mode的值的值:HAHA3.3.1 因果因果集群集群46n因果集群按节点在集

    41、群中的操作任务分工,主要分为两因果集群按节点在集群中的操作任务分工,主要分为两类类n(1 1)核心服务器(核心服务器(Core ServerCore Server):处理读写的操作,大多:处理读写的操作,大多数的核心服务器主要处理写操作。数的核心服务器主要处理写操作。n(2 2)读复制服务器(读复制服务器(Read ReplicasRead Replicas):集群中可以包含一:集群中可以包含一个或多个只负责分担读数据任务的服务器,数据从核心服个或多个只负责分担读数据任务的服务器,数据从核心服务器异步更新,保持一致。务器异步更新,保持一致。n安全性安全性:当:当大多数核心服务器正大多数核心服务

    42、器正常运行时,该平台将保持可用常运行时,该平台将保持可用。n扩展性扩展性:读复制服务器提供了可:读复制服务器提供了可大规模横向扩展的平台,可以高大规模横向扩展的平台,可以高效地效地分担图分担图数据查询数据查询类负载。类负载。n因果一致性:保证客户端应用程因果一致性:保证客户端应用程序至少能够读取自己的写入。序至少能够读取自己的写入。3.3.1 因果因果集群集群47n为了保障一定数量核心为了保障一定数量核心服务器的容错能力,一服务器的容错能力,一般通过公式般通过公式M=2F+1M=2F+1来来计算集群中核心服务器计算集群中核心服务器的数量的数量规模规模nF F为容错服务器为容错服务器数量数量nM

    43、M为核心服务器总数为核心服务器总数量量n如果可容忍如果可容忍1 1台故障台故障服务器,则需要配置服务器,则需要配置3 3台服务器台服务器。n架构中核心服务器基于架构中核心服务器基于RaftRaft协议协议维护维护和管理和管理,并内置了由并内置了由Neo4j BoltNeo4j Bolt驱动处理的负载驱动处理的负载均衡机制均衡机制3.3.2 高高可用性集群可用性集群nNeo4jNeo4j高可用性(高可用性(HAHA)集群采用主从式)集群采用主从式架构架构,可以,可以1 1主多从。主多从。n主主服务器完成写入之后,同步数据到从服务器,主服务器既可服务器完成写入之后,同步数据到从服务器,主服务器既可

    44、以写也能以写也能读。读。n与其与其他他主从复制相比主从复制相比,Neo4jNeo4j从从节点(节点(slaveslave)可以处理)可以处理写入写入,不需要都从不需要都从主节点直接写入主节点直接写入。但为。但为保持数据一致性,从保持数据一致性,从节点将节点将写请求发给主节点同步处理写请求发给主节点同步处理写入。然而更新操作最终从主写入。然而更新操作最终从主节点节点传播传播到从节点(到从节点(slaveslave),所以一个从节点的写入在其他所有从),所以一个从节点的写入在其他所有从节点上不是立即可见的。节点上不是立即可见的。目录目录Neo4j DBNeo4j DB基础基础1Neo4jNeo4j

    45、数据操作基础数据操作基础2Neo4jNeo4j集群技术集群技术3Neo4jNeo4j管理与监控管理与监控4小结小结5493.4 Neo4j管理与监控管理与监控50nNeo4jNeo4j图数据库提供了方便、易用的管理与图数据库提供了方便、易用的管理与监控功能监控功能n批量图批量图数据导数据导入入n图数据库备份、恢复图数据库备份、恢复n事务事务管理管理n监控与监控与日志日志n3.4.1 图图数据导入数据导入51n图数据库在初始建立或者数据库迁移时,往往需要图数据库在初始建立或者数据库迁移时,往往需要将大量历史数据导将大量历史数据导入数据库。入数据库。n为了为了提高工作效率,提高工作效率,Neo4j

    46、Neo4j为用户提供了方便为用户提供了方便的批的批量数据量数据导导入操作。入操作。nNeo4jNeo4j导导入方法主要有入方法主要有两种两种nLOADLOAD命令导入命令导入CSVCSV格式格式数据数据$LOAD CSV WITH HEADERS FROM$LOAD CSV WITH HEADERS FROM http:/ AS row/products.csv AS rownneo4j-importneo4j-import工具工具n也可以借助第三方也可以借助第三方ETLETL工具软件完成数据导入、导工具软件完成数据导入、导出处理任务。出处理任务。n数据导入、导出方法将在实践课具体介绍。数据导

    47、入、导出方法将在实践课具体介绍。3.4.2 图数据备份与恢复图数据备份与恢复52nNeo4jNeo4j数据库中数据备份支持完全备份和增量备份操作数据库中数据备份支持完全备份和增量备份操作。n企业版提供企业版提供neo4j-backupneo4j-backup备份备份工具功能更丰富。工具功能更丰富。n主要主要采用采用neo4j-adminneo4j-admin命令进行数据库备份与恢复,在备份命令进行数据库备份与恢复,在备份数据前需要将以下两个参数设置如下数据前需要将以下两个参数设置如下。dbms.backup.enabledbms.backup.enable=true=true#默认值就是默认值

    48、就是truetrue dbms.backup.addressdbms.backup.address=:/IP:63626362nneo4j-adminneo4j-admin不仅仅可以用来实现数据的备份与恢复,还可不仅仅可以用来实现数据的备份与恢复,还可以加上不同的子命令参数实现不同的管理以加上不同的子命令参数实现不同的管理功能。在功能。在命令行命令行下输入以下下输入以下helphelp子子命令命令可可查看帮助查看帮助 neo4j-admin neo4j-admin helphelpn对于单实例数据库、对于单实例数据库、HAHA集群、因果集群,过程类似。集群、因果集群,过程类似。3.4.2 图数

    49、据备份与恢复图数据备份与恢复53n数据备份与恢复的数据备份与恢复的dumpdump命令、命令、loadload命令的命令的用法用法(1 1)neo4j-admin neo4j-admin dumpdump备份数据,导出整个数据库数据,需要备份数据,导出整个数据库数据,需要先停止数据库。先停止数据库。neo4j-admin dump-database=neo4j-admin dump-database=graph.dbgraph.db -to=C:to=C:backupsgraph.dbbak-20190510.dumpbackupsgraph.dbbak-20190510.dump 其中其中,

    50、-database-database参数值为要备份的数据库名称,参数值为要备份的数据库名称,-to-to参数为参数为备份目标文件路径及名称。备份目标文件路径及名称。(2 2)采用)采用neo4j-adminneo4j-admin,导入整个数据库数据,需要先停止数据,导入整个数据库数据,需要先停止数据库。库。neo4j-admin load-from=C:backupsgraph.dbbak-20190510.dump neo4j-admin load-from=C:backupsgraph.dbbak-20190510.dump -database=database=graph.dbgraph

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《NOSQL数据库技术》课件第3章-Neo4j图数据库.pptx
    链接地址:https://www.163wenku.com/p-5818426.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库