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

类型NoSQL数据库原理-第八章-其他NoSQL数据库简介课件.pptx

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

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

    特殊限制:

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

    关 键  词:
    NoSQL 数据库 原理 第八 其他 简介 课件
    资源描述:

    1、NoSQL数据库原理第8章 其他NoSQL数据库简介 2 NoSQL并非是一个严谨的概念,包含很多能够进行数据管理和查询的系统,诸如:l 图数据库:专门描述点线关系的数据库,例如Neo4jl(用于缓存系统的)键值对数据库:实际仍是键值对模型,但侧重将数据转载到内存,以提升数据查询速度,例如:Redis和Memcachel 搜索引擎:强调实现文本类数据的全文检索功能,例如:Solr 还有一些特殊的数据库:l 环形数据库:类似于MongoDB中的定长集合,主要用于监控系统中绘制图表时提供数据支持,例如:rrdtooll 时序数据库:专门存储时序数据,例如监控日志的数据库,例如InfluxDB等第8

    2、章 其他NoSQL数据库简介概述 3 所谓图,是指将数据存储为顶点(或称为实体)和边(或称为关系)的数据存储模式,也可以称此类关系为网络l 图数据库专门描述节点与关系,但(常见的图数据库的)分布式部署能力较弱l 对比关系型数据库,图数据库中对数据关系进行了简化,边和节点以不同的方式描述和管理。第8章 其他NoSQL数据库简介8.1 图数据库简介 4 Neo4j是一个基于Java语言的开源图数据库系统,Neo Technology公司维护。l 2018年11月,Neo4j 宣布3.5 版本后企业版将闭源,但社区版仍会被维护,且保持开源l Neo4j具有强大的图处理和查询搜索能力,通过专用的Cyp

    3、her语言,可以非常便利地完成各类操作。l 目前Neo4j一般采用单机部署,但支持比较严格的事务机制,并可以提供数据的强一致性。谷歌公司曾于2010年发表论文Pregel:A System for Large-Scale GraphProcessing,介绍 了一种名为Pregel的分布式图计算模型。l Apache Spark中的GraphX模块是一个Pregel模型的具体实现,运算性能较高l 但GraphX不像Neo4j一样强调图数据的管理与查询等功能。第8章 其他NoSQL数据库简介8.1 图数据库简介 5 8.2.1 在Windows中安装Neo4j 前提:部署Java运行环境,注意%

    4、JAVA_HOME%路径最好以jre结尾 从官方网站(https:/ Bin存储软件控制命令,其中最重要的命令为neo4j.bat,l Conf目录下只有一个件配置文件neo4j.conf,即软件的配置文件。l Data目录为默认的数据文件存储位置。l Logs目录下为运行日志。l Lib目录下为各类java库包。第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 6 8.2.1 在Windows中安装Neo4j 前台启动方式。首先以管理员身份打开一个命令行窗口,在合适的目录下运行:l neo4j.bat consolel 软件会在窗口前台运行。服务模式(Windows Servi

    5、ces)。安装和卸载neo4j服务(需要管理员身份):l neo4j install-servicel neo4j uninstall-service 当服务安装完毕后,服务的启动、停止、重启和状态查看:l neo4j start|neo4j stop|neo4j restart|neo4j status第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 7 8.2.1 在Windows中安装Neo4j 打开配置文件:conf/neo4j.conf,开启软件的WEB操作界面,并禁用掉安全认证功能(可选)l(注意取消句首的注释符号“#”,以及注意地址、端口的正确性):l dbms.c

    6、onnector.http.enabled=truel dbms.connector.http.listen_address=localhost:7474l dbms.security.auth_enabled=false(重启软件后)以打开浏览器,输入访问地址:http:/localhost:7474/,进入neo4j的web操作界面l 默认用户名和密码均为“neo4j”,首次连接时,页面会提示修改密码。第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 8 8.2.2 在Centos7中安装Neo4j 可以使用yum方式进行安装:下载neo4j的软件公钥,并安装:l wget

    7、http:/debian.neo4j.org/neotechnology.gpg.keyl rpm-import neotechnology.gpg.key 在/etc/yum.repo.d/目录中neo4j.repo。内容如下:l neo4jl name=Neo4j Yum Repol baseurl=http:/yum.neo4j.org/stablel enabled=1l gpgcheck=1 最后执行安装:l yum install neo4j-y 在后台启动软件:l neo4j start 根据前文修改配置文件,即可私用web访问界面第8章 其他NoSQL数据库简介8.2 Neo4

    8、j 安装与使用 9 8.2.3 Neo4j的web操作界面 图中左侧为导航菜单栏,点击会弹出相应的子页面。菜单从上到下依次为:l Database Information:数据库和图(边、节点等)的基本属性信息。l Favorites:示例语句和用户自行保存的常用语句。l Documentation:文档。l Neo4j Browser Sync:与云端数据库同步。l Browser Settings:图形界面配置。l About Neoconj:版权信息等。右边上部为cyber语言的输入框,下部为结果栏。l 结果可以通过图形、表、文本等方式展示出来第8章 其他NoSQL数据库简介8.2 Ne

    9、o4j 安装与使用 10 8.2.3 Neo4j的web操作界面第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 切换结果显示方式导航栏输入Cyber语言指令显示结果 11 8.2.3 Neo4j的web操作界面 导航栏可以查询到运行历史和常见cyber语言的示例 在输入框中输入下列指令可以显示教程:l:play start第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 12 8.2.4 Cypher语言简介 Cypher语言是一种声明式查询语言,其语法较为简单,很方便对点线关系进行操作:利用Cypher语言可以实现节点与关系的定义、修改、删除和查询等功能,其中查

    10、询还支持条件查询、和聚合查询等。关于Cyber语言的语法,有如下注意事项:l Cypher语言中对命令的大小写不敏感,但是对标签和属性大小写敏感。l 在语句末尾可以加上分号表示结尾,但在web操作环境中,默认一次输入一条语句,此时可以不加分号。l 字符串值需要用引号包括,用单双引号均可。第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 13 8.2.4 Cypher语言简介 创建节点l create(n)l create(n:Person name:Bob,sex:male)return nl Person是节点n的标签,具有name和sex两个属性l 在节点建立之后,系统会自动

    11、为每个节点建立一个唯一的id(可以理解为内部仍然具有键值对结果)第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 14 8.2.4 Cypher语言简介 创建关系:CREATE(节点)-r:关系标签可选的关系属性-(另一个节点)例如:l MATCH(a:Person),(b:Person)l WHERE a.name=Bob AND b.name=Alicel CREATE(a)-r:friend_of name:a.name+and +b.name-(b)l RETURN r;找到具有Person标签的两个节点,如果name分别为bob和alice(MATCH),则建立一个从B

    12、ob到Alice的单向关系(CREATE和“-”),该关系的标签为“friend_of”,如果不使用MatchWhere,则会建立两个新节点a和b第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 15 8.2.4 Cypher语言简介 建立了三个节点和两个关系:lcreate p=l(n:Personname:alice)l-:play_withgame:football-l(q:Personname:Chris)l(p)RETURN pl MATCH(n:Person name:Bob)(x)return x;l 注意如果第一个MATCH子句返回了n个符合条件的结果,但opti

    13、onal MATCH子句中有m个结果没有任何匹配的结果,则返回m个空值。第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 19 8.2.4 Cypher语言简介 更新标签或属性set,例如:l MATCH(n name:alice)SET n.lastname=Jackson RETURN nl 为所有具有属性“name:alice”的节点增加一个lastname属性。删除属性可以用null关键字:l MATCH(n name:alice)SET n.lastname=null RETURN n 删除属性和标签,还可以使用remove命令:l MATCH(n name:alice

    14、)REMOVE n.age,n.sex RETURN n;第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 20 8.2.4 Cypher语言简介 修改标签:l MATCH(n name:alice)SET n:girl RETURN n 复制属性或标签:l MATCH(nname:Chris),(mname:bob)SET n.age=m.age RETURN n,m;删除符合条件的节点:l MATCH(n:Personname:Bob)DELETE n 如果符合条件的节点存在和其他节点关系,则无法完成删除,此时需要删除节点和它所有的对外关系:l MATCH(n name:al

    15、ice)-r-()DELETE n,r第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 21 8.2.4 Cypher语言简介 删除所有的节点和关系:l MATCH(n)OPTIONAL MATCH(n)-r-()DELETE n,r 聚合函数l Cypher语言支持在查询等场景中使用聚合函数,常见的聚合函数例如:count、sum、avg、max、min等。例如:l MATCH(n name:bob)RETURN count(*)l MATCH(n:Person)RETURN avg(n.age)有关Cypher语言的详细语法,可以从web操作界面的“Documents”子窗口

    16、中查询相关文档。第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 22 8.2.5 通过JAVA访问neo4j Neo4j提供了.NET、JAVA、Python、Javascript、http(rest风格),以及集成到spring框架的驱动包。利用Java语言访问Neo4j有两种方式:l 第一种为服务端方式,即运行Neo4j的数据库服务端,然后客户端通过bolt接口(类似JDBC的概念)进行传递Cypher语句。l 第二种方式为嵌入式方式,直接建立数据库文件并进行处理,不需要运行数据库软件。这种方式的效率更高,并且可以进行一些图的计算l 本节介绍第一种方式第8章 其他NoSQL

    17、数据库简介8.2 Neo4j 安装与使用 23 8.2.5 通过JAVA访问neo4j 编程时需要使用bolt协议,默认端口号为7687,可以通过conf/neo4j.conf文件进行配置,相关的配置项为:l dbms.connector.bolt.enabled=truel dbms.connector.bolt.listen_address=:7687第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 24 8.2.5 通过JAVA访问neo4j 在编程环境中添加:neo4j-java-driver-1.6.1.jar 在代码中导入所需的类库:l import org.neo4

    18、j.driver.v1.*;l import static org.neo4j.driver.v1.Values.parameters;建立连接:l Driver driver=GraphDatabase.driver(bolt:/localhost:7687,AuthTokens.basic(neo4j,123456);l Session session=driver.session();第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 25 8.2.5 通过JAVA访问neo4j 传递Cypher语句(删除、新建节点和关系,以及查询):l session.run(MATCH(

    19、n)OPTIONAL MATCH(n)-r-()DELETE n,r);l session.run(create p=(n:Personname:name1)+-:play_withgame:game1-(q:Personname:name2)+-:play_withgame:game2-(m:Personname:name3,sex:sex1),parameters(name1,alice,name2,bob,name3,chris,game1,football,game2,tennis,sex1,male);l StatementResult result=session.run(MATC

    20、H(n:Person name:name1)-(p.name)RETURN p,parameters(name1,bob);第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 26 8.2.5 通过JAVA访问neo4j 查看返回结果:l for(Record record:result.list()/遍历结果集(result),l for(String key:result.keys()/遍历结果集所含有的key(字段名),l System.out.println(record.get(key);l System.out.println(record.asMap().toStri

    21、ng();使用完毕后,关闭连接、释放资源。l session.close();l driver.close();第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 27 8.2.6 通过Python访问neo4j 利用Python3.x访问neo4j数据库,需要借助neo4j-driver库。该类库可以通过pip方式安装:l pip install neo4j-driverl 编程访问neo4j数据库只需要建立连接,并传送Cypher语句即可。入类库:from neo4j.v1 import GraphDatabase 建立连接:l driver=GraphDatabase.dri

    22、ver(bolt:/localhost)l session=driver.session()第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 28 8.2.6 通过Python访问neo4j 远程执行Cypher语句,并获取列表形式的返回结果:l session.run(CREATE(a:Person name:alice)l result=session.run(MATCH(a:Person)RETURN a.name)l for record in result:l print(recordname)显示结果为值字符串,例如:l alice第8章 其他NoSQL数据库简介8.

    23、2 Neo4j 安装与使用 29 8.2.6 通过Python访问neo4j 如果查询语句为:l result=session.run(MATCH(a:Person)RETURN a)l 显示语句可以改为:lprint(recorda)显示结果为该节点的全部属性,例如:l 操作结束后,需要关闭连接:l session.close()第8章 其他NoSQL数据库简介8.2 Neo4j 安装与使用 30 所谓“内存数据库”l 一般是键值对数据库,但强调基于内存的数据管理,例如:Redis、Memcachel 经常作为缓存系统使用l 一些关系型数据库也提供了“分布式内存数据库”缓存方案,例如MySQ

    24、L的NDB(MySQL Cluster)Redis本质为环形结构的分布式键值对数据库。l Redis通常会和“WEB开发”联系在一起,而非“大数据”l 在WEB架构设计与系统开发领域非常热门第8章 其他NoSQL数据库简介8.2 Redis和内存数据库 31 Redis没有使用一致性哈希机制,而是引入了哈希槽的概念。Redis 集群有16384个哈希槽,集群中所有设备平分这些哈希槽,数据则根据其行键的散列计算结果,映射到不同的哈希槽中。在集群中添加、去除或改变节点信息,都会涉及对哈希槽的重新分配,这和Dynamo也是类似的。第8章 其他NoSQL数据库简介8.2 Redis和内存数据库 32

    25、Redis的特点l 支持数据多副本、主从复制机制l 支持主节点选举机制l 在内存管理方面,Redis支持最近最少使用算法(Least Recently Used,LRU)l Redis提供了多种数据持久化(存储到硬盘)策略,常见的策略有RDB和AOF。RDB是指在指定时间间隔,将数据保存为快照(.rdb文件),其经常用于整个数据集的备份,存储格式比较紧凑,备份恢复性能较高。AOF是指逐次记录写入服务器的数据条目,追加到一个.aof文件末尾。AOF文件的易读性、实时性较好,但文件体积较大。第8章 其他NoSQL数据库简介8.2 Redis和内存数据库 33 Redis的特点l 支持发布订阅机制(

    26、即可以作为消息队列使用)l 支持多种数据格式:字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(sorted set)等l 操作方面,支持200多个Redis命令(操作方法)。l 支持多种主流编程语言,如C/C+、Java、Python、Erlang、Go、PHP、MATLAB和R语言等。l 支持“事务”实际上是一种批处理机制,并非RDBMS的事务l 存在多种图形化管理工具,如Redis Desktop Manager第8章 其他NoSQL数据库简介8.2 Redis和内存数据库 34 搜索引擎(SearchEngine)系统,也称全文检索系统,一般被用作W

    27、eb搜索引擎,或者用于限定行业、领域的垂直模糊搜索领域 常见的Web搜索引擎服务可以看作是搜索引擎系统和网络爬虫系统(负责抓取并分析网页和链接)的结合第8章 其他NoSQL数据库简介8.3 搜索引擎系统 35 而搜索引擎通过建立独特的索引机制和查询方法,实现高效的全文模糊查询,甚至处理查询结果排名等细节问题,但对原始数据(可能是结构化、半结构化或非结构化信息)的存储、管理等方面并不涉及。搜索引擎系统常和其他NoSQL数据库或分布式文件系统配合使用,如HBase、HDFS等,由后者实现原始数据的分布式存储和管理。第8章 其他NoSQL数据库简介8.3 搜索引擎系统 36 Nutch是一个基于Ja

    28、va的分布式开源搜索引擎,由Apache软件基金会维护。Nutch包括全文检索和网络爬虫(crawler)两个部分,当爬虫抓取网页之后,一般会将其保存在HDFS之上,并通过MapReduce实现对网页的分析,以获取标题、正文、链接等元素,并建立“倒排索引”。第8章 其他NoSQL数据库简介8.3 搜索引擎系统 37 Nutch通过Lucene引擎实现网页以及全文索引的建立。Lucene创立于2000年,目前也是Apache软件基金会的顶级开源项目,Lucene所建立的索引称为倒排索引(Inverted Index),这种索引是从字符串(如单词)映射到全文第8章 其他NoSQL数据库简介8.3

    29、搜索引擎系统 38 Lucene需要借助Hadoop实现分布式的网页处理和索引维护 在全文检索(建立索引和进行搜索)时,对于汉语,由于其词汇之间没有空格,因此需要借助中文分词组件(如IKAnalyzer)进行单词切分 对于相关性,一般考虑两个权重:TF和IDF。l 如果查询词在某篇文本中出现的次数多,则该文本的相关度较高,该权重称为TF(Term Frequency),即词频。l 如果查询词在多篇文档中的出现频率都很高,则该词汇重要性较小,如一些连词、量词等,该权重称为IDF(Inverse Document Frequency),即逆文档词频。将这两个权重相乘,就得到了一个词的TF-IDF值

    30、,该值越大,即说明该文本的相关度越高。还需要考虑对搜索结果的排名第8章 其他NoSQL数据库简介8.3 搜索引擎系统 39 使用Solr和Elasticsearch等开源软件,可以降低使用和管理难度。Solr是由Java开发的基于Lucene的完整的开源企业级全文检索引擎系统,目前也由Apache软件基金会维护。l Solr也对Lucene进行了封装、完善和扩展,提供了比Lucene更丰富的查询语言,实现了可配置、可扩展,并对查询性能进行了优化,提供了一个完善的功能管理界面。Elasticsearch也是一个基于Lucene的企业级搜索引擎系统,目前已经有独立的公司来进行维护,但其基本产品仍保

    31、持开源免费状态。l 一般认为Elasticsearch的实时搜索能力较强,对于大数据的分布式处理能力更强l 可以和Spark等大数据处理工具相结合使用 目前看来,两个软件和lucene、Nutch相比,热度更高第8章 其他NoSQL数据库简介8.3 搜索引擎系统 40 图数据库是一种简单易用的、处理点线关系的数据库l 在Windows上安装也很方便l 一般单机使用,而非集群化部署l 通过Cypher语言操作数据“内存数据库”l 可以看作键值对数据库的分支l 通常作为WEB架构中的缓存系统l 其分布式部署策略和Cassandra、MongoDB等均有相通之处 全文检索和搜索引擎l 可能和Hado

    32、op、HBase建立联系l 学习的重点在于算法和优化l 可以直接使用Solr、Elasticsearch等集成化软件第8章 其他NoSQL数据库简介小结 42 对数据的管理方法是多样的,不同的工具具有不同侧重l RDBMS不是万能的,NoSQL也无法取代RDBMS 优秀的分布式架构必须有取舍l CAP和BASE、弱一致性l 分片、多副本的代价是什么?采用灵活的数据模型,是为了分布式环境下更好的灵活性和分片性能l 体会数据模型的灵活性l 体会操作语言(如CQL)的限制 体会常见NoSQL系统的操作方法和编程方法课程的结束语通过对NoSQL的学习,我们学到了什么?课程的结束语n 希望在未来,当大家见到全新的数据管理软件与思想时,不会感到难以接受或难以理解n 希望大家能够以更快的速度、更轻松的心态学习使用新的大数据工具软件,或其他的开源软件

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

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


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


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

    163文库