
图数据库
大白兔黑又黑
这个作者很懒,什么都没留下…
展开
-
Neo4j笔记(五)APOC(1)数据导入导出
前言一直以来都想写一些关于Neo4j APOC工具包的使用笔记,不过一直比较忙,最近又需要用到里面的一些东西,决定开始关于APOC笔记的第一步。个人看来,掌握了apoc的使用,cypher水平至少可以提高一倍,开发效率也可以快很多(个人愚见)。下面的笔记都是以linux下的Neo4j 服务器版为准。官网地址:https://neo4j.com/docs/labs/apoc/current/...原创 2020-04-08 11:46:31 · 10204 阅读 · 2 评论 -
TinkerPop集成Hadoop+Spark
前言前面介绍了TinkerPop集成Neo4j的配置方法,并且实现了HA操作。这里有一个突出问题就是不管是使用Neo4j,还是自带的TinkerGraph都不可避免的面临一个问题——大数据量场景,也即分布式问题。鉴于此,Tinkerpop还提供了和Hadoop+Spark的集成解决方案,从而解决单节点问题。但是由于Spark中的数据一致性问题,不能修改数据,所以这种方案不能修改数据,也不能新增...原创 2020-01-15 18:42:24 · 1241 阅读 · 0 评论 -
TinkerPop集成Neo4j
简介ThinkerPop是由Apache开发,面向实时事务处理(OLAP)以及批量、分析型(OLTP)的开源图计算框架。TinkerPop可以应用于不同图数据库的抽象层,避免应用程序与特定数据库高度依赖。Tinkerpop提供的通用API、Gremlin语言和工具,使开发人员可以基于不同图数据库轻松创建图形应用程序,使图数据库与图计算解耦,方便切换不同图形数据库,简化其工作。TinkerPop...原创 2020-01-06 20:24:29 · 3003 阅读 · 0 评论 -
Neo4j笔记(四)Neo4j Shell
虽然大多数时候,我们的操作都在Neo4j自带的BI界面完成。但是Neo4j同样提供了一个命令行工具,在跑批和系统集成的时候会经常用到。另外,在shell里面执行cypher会比BI效率高,缺点就是不能可视化,不过可以导出到本地。Neo4j的命令行工具是 cypher-shell ,在 NEO4J_HOME/bin 目录下。默认情况下可以直接通过 ./cypher-shell 输入用户名和密码后...原创 2019-05-28 14:46:42 · 3864 阅读 · 0 评论 -
Neo4j笔记(三)Neo4j批量导入数据
Neo4j批量导入提供了三个工具:load csv、neo4j-admin import、apoc。本文只介绍前两个方法,也是使用最多的方法,关于apoc的内容在后面介绍。load csv和neo4j-admin import的主要区别就是 load csv是在线导入方式,即Neo4j不需要停止运行,支持增量导入数据,本质是cypher语言;neo4j-admin import 导入数据必须是生成...原创 2019-05-24 19:14:10 · 10131 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(9)cypher时间处理
1、datedate函数默认返回当前时区的当前日期,如:RETURN date() //结果:"2019-05-24" 。具体使用方法如下:date() //当前时区当前日期date({ timezone: 'America/Los Angeles' }) //指...原创 2019-05-24 16:05:55 · 3005 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(8)函数
关于cypher中的函数有两点需要注意:(1)如果输入是null,则函数返回null。(2)字符串输入都是Unicode字符,而不是标准字符集,比如 size("你") 的结果是1。一、断言函数1、all语法:all(variable IN list WHERE predicate)返回:Boolean含义:list中的所有元素都满足where条件,则返回true,否则返回fal...原创 2019-04-28 19:51:15 · 2728 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(7)UNION
UNION可以组合两个或者两个以上的查询结果到一个结果中,需要注意一下几点:(1)可以组合两个或者两个以上的查询结果。(2)UNION和UNION ALL的用户不同,尤其需要注意UNION的用法。(3)每个查询的结果列数和列名都必须相同。1、可以组合两个或者两个以上的查询结果unwind [1,2,3] as xreturn xunion allunwind [4,5,6] ...原创 2019-04-28 19:26:04 · 2372 阅读 · 1 评论 -
Neo4j笔记(二)Cypher(6)UNWIND和FOREACH
unwind是cypher提供的一种列表遍历工具,类似于python中的for循环,unwind结合case等语法可以写出许多复杂的查询,尤其是对于路径查询的处理。foreach也是cypher提供的一个列表遍历工具,但是主要用来做增删改。对于这两个的用法,建议结合列表推导一起学习。一、UNWIND官方文档对于UNWIND的说明:WithUNWIND, you can transform...原创 2019-04-28 12:54:15 · 14458 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(5)聚合
Cypher的聚合和别的语言不一样,比如在SQL中聚合是通过group by实现的,而在cypher中是通过聚合函数默认聚合的。看一个例子:match(n:Person) return n.name, count(n.name)表面上看没有做任何聚合操作,实际上,因为使用了聚合函数count,因此会自动根据前面字段做聚合操作,上述语句的意思是统计每个名字的使用次数(使用相同名字的个数)。1...原创 2019-04-18 20:43:28 · 2824 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(4)特殊查询
如题,本片主要介绍一些cypher的细节语法。1、省略关系match(n)-->(m) 两个 - 表示省略任意关系2、匹配多种关系类型match(n)->[:A|:B]->(m) 匹配A或者B类型的关系3、带有空格的关系match(n)-[`A B`]->(m) 使用反引号4、变长关系match(n)-[r:SHIP...原创 2019-04-18 19:26:45 · 7252 阅读 · 2 评论 -
Neo4j笔记(二)Cypher(3)NULL
Cypher中的NULL和SQL中的NULL有一些不同,SQL中的NULL表示这个字段没有值,在建表的时候可以添加非控约束,而Cypher中的null表示某个节点没有这个这段属性。一个表示这个字段没有值,一个表示没有这个字段。Cypher中可以使用 is null 判断某个节点是否有某个字段属性。null不同于其他类型值,不能直接使用 = 判断某个字段是否为null,同时 null = nul...原创 2019-03-29 11:07:41 · 1812 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(2)列表
Cypher支持列表操作,并且和Python中的列表很相似。使用[],可以直接手动创建列表,例如:RETURN [1,2,3]。Cypher内置的range函数可以直接返回一个列表,用法和Python中的range也几乎一样。需要注意的是Cypher中的列表和Python一样,可以包含不同类型的元素,如 RETURN [[1, 2], 3, 1, 5.2, "sss"] 。1、range定...原创 2019-03-28 11:24:58 · 1837 阅读 · 0 评论 -
Neo4j笔记(二)Cypher(1)case语句
Cypher支持case条件表达式,它的逻辑类似于C语言中的if/else语句。一个CASE语句包含一个或多个WHEN-THEN子句,每个子句都是一个表达式。 case语句也可以包含一个ELSE子句,当之前的条件都不为真时,则执行该ELSE子语句,类似于C语言中的default。CASE语句有两种语法:其中的一种语法等效于if-else语句,而另一种则类似于SWITCH语句。对于等效于IF-E...原创 2019-03-27 09:23:46 · 4050 阅读 · 0 评论 -
Neo.ClientError.Statement.TypeError: Expected Long(0) to be a org.neo4j.values.storable.TextValue
LOAD CSV WITH HEADERS FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists-with-headers.csv' AS lineCREATE (:Artist { name: line[0], year: toInteger(line[1])})我们在使用上面load csv命令导入数据的时候,可能会遇到下...原创 2019-03-06 19:37:21 · 3885 阅读 · 0 评论 -
Neo4j笔记(一)算法(2)算法实例
一、中心度算法1、PageRank1.1 算法介绍PageRank最初是谷歌推出用来计算网页排名的,简单的说就是,指向这个网页的链接数越多,那么这个网页就越重要。但是很可能会有人自己制作一些垃圾网页设置大量的链接指向自己的网页来提高网页排名,这肯定是谷歌不希望看到的。因此PageRank还有一个迭代计算的过程,一个网页A虽然有大量的垃圾网页指向自己,但是这些垃圾网页是没有被指向的,因...原创 2019-02-25 18:02:30 · 5932 阅读 · 8 评论 -
Neo4j笔记(一)算法(1)配置
Neo4j提供了两个常用的算法库-----apoc和algo,相对于algo,apoc不仅仅提供了一些算法实现,还提供了数据导入等功能,更多地像一个工具包。而在算法实现方面,algo显得更专业、全面。本文主要介绍algo库的使用,后续再记录apoc的使用。algo的详细使用文档,请点击这里。另外所有关于Neo4j的操作都是基于Linux系统。简介图算法用于计算图形,节点或关系的度量,Neo...原创 2019-02-25 10:49:52 · 4619 阅读 · 6 评论 -
linux安装neo4j
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。------来自百度百科。对于nosql和图数据库不了解的,可自行百度。这里是db-engi...原创 2018-12-07 10:33:51 · 1190 阅读 · 0 评论 -
TigerGraph笔记(三)gsql基础(2)数据加载和查询
在上一节中,我们介绍了怎么创建一个顶点、边和图,本节我们介绍怎么加载数据和查询数据。进入gsql-shell,执行drop all删除所有东西,也可不删除,只要不重名即可。在TG安装目录下的document/examples 目录下提供了一些demo,在 document/examples/gsql_ref/socialNet/Graph 目录下存在一些简单的社交数据,我们会利用这些数据,创...原创 2019-02-02 11:42:25 · 3413 阅读 · 0 评论 -
TigerGraph笔记(三)gsql基础(1)创建顶点、边、图
打算先写一点关于gsql的基础知识,对TG(TigerGraph)有一些理性认识,然后再讲述GraphStudio的使用,通过UI界面有一些理性认识,最后再系统介绍gsql。另外,由于CSDN还不支持图数据库语法,所以部分字段没有高亮。GSQL™软件为TigerGraph公司研发的用于存储和分析大数据的图数据库计算平台,该平台包含一系列完整的生态系统,包括图模型建立、数据加载、图数据查询与分析...原创 2019-02-02 10:24:14 · 3012 阅读 · 3 评论 -
TigerGraph笔记(二)概念
在介绍具体gsql语法之前,先介绍一些和TG(TigerGraph)相关的概念,便于理解。1、Graph(图)TG的定义是:图是数据实体以及数据之间连接的集合。也就是说,它是一个数据实体的网络。在TG里面,可以使用CREATE创建子图,并赋予相关用户对该图的操作权限。2、vertex(顶点)图中的每一个数据实体,我们称之为顶点,在Neo4j里面称之为节点(node),只是叫法不同而...原创 2019-02-01 16:28:47 · 1547 阅读 · 0 评论 -
TigerGraph笔记(一)安装和卸载(centos)
最近用到TigerGraph(TG),顺便记录一下笔记,以便以后查阅。另外,由于网上关于TG的资料比较少,笔记的大多数资料都是从TG官网获得的,个人理解若有错误之处还请指正。TG官网、官方文档、中文网站、中文文档,在此说明下建议去看英文文档,或者中英文文档结合看。中文文档往往更新不及时、资料不全,而且写的较为晦涩。 TigerGraph是tigergraph公司开发的...原创 2019-02-01 11:57:01 · 5526 阅读 · 2 评论