跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)

Revin

首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • MySQL优化

  • MySQL海量数据存储与优化

  • 索引优化注意
  • MySQL平滑扩容实战
  • TiDB

  • 图和Neo4j

    • 1 图和 Neo4j 介绍
      • 1 图论
        • 1.1 图论起源:柯尼斯堡(Konigsberg)七桥问题
        • 1.2 图和节点
        • 1.3 节点关系表达
        • 简单关系表达
        • 复杂关系表达
        • 1.4 属性图模型规则
      • 2 知识图谱和图库
        • 2.1 知识图谱
        • 2.2 图数据库
        • 2.3 图形数据库优势
      • 3 Neo4j 基础
        • 3.1 什么是Neo4j
        • 3.2 Neo4j 模块构建
        • Neo4j 主要构建块
        • 节点
        • 属性
        • 关系
        • 标签
        • 3.3 Neo4j的主要应用场景
        • 3.4 Neo4j 环境搭建
        • Neo4j环境Linux下搭建
        • Windows下的安装
        • 3.5 Neo4j数据浏览器
    • 2 Neo4j CQL
    • 3 Neo4j CQL高级
    • 3 Neo4j 之Admin管理员操作
    • 5 Neo4j 程序访问
  • MongoDB

  • 缓存

  • 文件存储

  • Elasticsearch

  • 数据库与缓存
  • 图和Neo4j
Revin
2023-07-09
目录

1 图和 Neo4j 介绍

# 1 图论

# 1.1 图论起源:柯尼斯堡(Konigsberg)七桥问题

众所周知,图论起源于一个非常经典的问题——柯尼斯堡(Konigsberg)七桥问题。1738年,瑞典数学家欧拉( Leornhard Euler)解决了柯尼斯堡七桥问题。由此图论诞生,欧拉也成为图论的创始人。

Page2_01

欧拉把问题的实质归于"一笔画"问题,即判断一个图是否能够遍历完所有的边(Edge)而没有重复,而柯尼斯堡七桥问题则是一笔画问题的一个具体情境。欧拉证明这个问题不成立。

满足一笔画的图满足两个条件:

  • 图必须是一个完整图

  • 有零个或二个奇数点

# 1.2 图和节点

图是一组节点和连接这些节点的关系组成。图形数据存储在节点和关系所在的属性上。属性是键值对表示的数据。

image-20230708221604020

在图形理论中,我们可以使用圆表示一个节点 并且可以向里面添加键值对形式的数据。

# 1.3 节点关系表达

# 简单关系表达

Page3_01

此处在两个节点之间创建关系名称“跟随”。 这意味着Profile1 跟随 Profile2。

# 复杂关系表达

Page3_02

这里节点用关系连接。 关系是单向或双向的。

  • 从XYZ到PQR的关系是单向关系。

  • 从ABC到XYZ的关系是双向关系。

# 1.4 属性图模型规则

Page4_01

  • 图表示节点,关系和属性中的数据

  • 节点和关系都包含属

  • 关系连接节点

  • 属性是键值对

  • 节点用圆圈表示,关系用方向键表示。

  • 关系具有方向:单向和双向。

  • 每个关系包含“开始节点”或“从节点” 和 “到节点”或“结束节点”

# 2 知识图谱和图库

# 2.1 知识图谱

一种基于图的数据结构,由节点(Node)和边(Edge)组成。其中节点即实体,由一个全局唯一的ID标示,边就是关系用于连接两个节点。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。

互联网、大数据的背景下,谷歌、百度、搜狗等搜索引擎纷纷基于该背景,创建自己的知识图谱Knowledge Graph(谷歌)、知心(百度)和知立方(搜狗),主要用于改进搜索质量。

# 2.2 图数据库

一般情况下,我们使用数据库查找事物间的联系的时候,只需要短程关系的查询(两层以内的关联)。

当需要进行更长程的,更广范围的关系查询时,就需要图数据库的功能。而随着社交、电商、金融、零售、物联网等行业的快速发展,现实世界的事物之间织起了一张巨大复杂的关系网,传统数据库面对这样复杂关系往往束手无策。因此,图数据库应运而生。

图数据库(Graph database)指的是以图数据结构的形式来存储和查询数据的数据库。

知识图谱中,知识的组织形式采用的就是图结构,所以非常适合用图库进行存储。

# 2.3 图形数据库优势

在需要表示多对多关系时,我们常常需要创建一个关联表来记录不同实体的多对多关系。如果两个实体之间拥有多种关系,那么我们就需要在它们之间创建多个关联表。而在一个图形数据库中,我们只需要标明两者之间存在着不同的关系。如果希望在两个结点集间建立双向关系,我们就需要为每个方向定义一个关系。 也就是说,相对于关系型数据库中的各种关联表,图形数据库中的关系可以通过关系属性这一功能来提供更为丰富的关系展现方式。因此相较于关系型数据库,图形数据库的用户在对现实进行抽象时将拥有一个额外的武器,那就是丰富的关系。

Page5_01

优势总结:

  • 性能上,对长程关系的查询速度快

  • 擅于发现隐藏的关系,例如通过判断图上两点之间有没有走的通的路径,就可以发现事物间的关联

# 3 Neo4j 基础

# 3.1 什么是Neo4j

Neo4j是一个开源的 无Shcema的 基于java开发的 图形数据库,它将结构化数据存储在图中而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。程序数据是在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中,但可以享受到具备完全的事务特性、企业级的数据库的所有好处。

https://db-engines.com/en/ranking

# 3.2 Neo4j 模块构建

# Neo4j 主要构建块

  • 节点

  • 属性

  • 关系

  • 标签

  • 数据浏览器

# 节点

节点是图表的基本单位。 它包含具有键值对的属性

# 属性

属性是用于描述图节点和关系的键值对

Key =值

其中Key是一个字符串

值可以通过使用任何Neo4j数据类型来表示

# 关系

关系是图形数据库的另一个主要构建块。 它连接两个节点,如下所示。

image-20230708222832806

这里Emp和Dept是两个不同的节点。 “WORKS_FOR”是Emp和Dept节点之间的关系。

因为它表示从Emp到Dept的箭头标记,那么这种关系描述的一样

Emp WORKS_FOR Dept

每个关系包含一个起始节点和一个结束节点。

这里“Emp”是一个起始节点。

“Dept”是端节点。

由于该关系箭头标记表示从“Emp”节点到“Dept”节点的关系,该关系被称为“进入关系”到“Dept”节点。

并且“外向关系”到“Emp”节点。

像节点一样,关系也可以包含属性作为键值对。

# 标签

Label将一个公共名称与一组节点或关系相关联。 节点或关系可以包含一个或多个标签。 我们可以为现

有节点或关系创建新标签。 我们可以从现有节点或关系中删除现有标签。

从前面的图中,我们可以观察到有两个节点。

左侧节点都有一个标签:“EMP”,而右侧节点都有一个标签:“Dept”。

这两个节点之间的关系,也有一个标签:“WORKS_FOR”

**注:-**Neo4j将数据存储在节点或关系的属性中。

# 3.3 Neo4j的主要应用场景

社交媒体和社交网络

当使用图形数据库为社交网络应用程序提供动力时,可以轻松利用社交关系或根据活动推断关系。

查询社区聚类分析,朋友的朋友推荐,影响者分析,共享和协作关系分析等

推荐引擎和产品推荐系统

图形驱动的推荐引擎通过实时利用多种连接,帮助公司个性化产品,内容和服务。

内容和媒体推荐,图形辅助搜索引擎,产品推荐,专业网络,社会推荐。

身份和访问管理

使用图形数据库进行身份和访问管理时,可以快速有效地跟踪用户,资产,关系和授权。

查询访问管理,资产来源,数据所有权,身份管理,互连组织,主数据,资源授权

金融反欺诈多维关联分析场景

通过图分析可以清楚地知道洗钱网络及相关嫌疑,例如对用户所使用的帐号、发生交易时的IP地址、

MAC地址、手机IMEI号等进行关联分析。

# 3.4 Neo4j 环境搭建

# Neo4j环境Linux下搭建

(1).切换到Linux下 到安装目录neo4j 上传安装包 或者 下载安装包

使用 ftp 工具上传neo4j-community-3.5.17.tar 到 liunx 下

或者 wget https://neo4j.com/artifact.php?name=neo4j-community-3.5.17-unix.tar.gz

(2). 解压

tar -xvf neo4j-community-3.5.17.tar
1

(3). 修改配置文件 neo4j.conf

vi conf/neo4j.conf
1

主要是修改 允许远程访问的地址 把对应的注释打开即可

dbms.connectors.default_listen_address=0.0.0.0
1

(4).开放对应的访问端口 默认要开放7474 和 7687

firewall-cmd --zone=public --add-port=7474/tcp --permanent
firewall-cmd --zone=public --add-port=7687/tcp --permanent
systemctl reload firewalld
1
2
3

(5).启动

./bin/neo4j start
1

(6).使用浏览器 访问服务器上的 neo4j

http://192.168.211.133:7474

默认的账号是 neo4j 密码 neo4j 这里第一次登录的话会要求修改密码

# Windows下的安装

(1).从https://neo4j.com/download-center/#community 下载最新的Neo4j Server安装文件

可以看到 neo4J 软件 exe 或 zip 格式的所有版本

(2).下载 Neo4j 3.5.17 (zip)

(3).解压

(4).修改配置文件

dbms.connectors.default_listen_address=0.0.0.0
1

(5) . 通过 neo4j.bat install-service 安装neo4j服务

注意的问题 如果是4.0 以及以上版本需要jdk11

修改文件 bin/neo4j.ps1

Import-Module "neo4j的主目录\bin\Neo4j-Management.psd1"
1

(6).neo4j.bat启动

neo4j.bat start
1

(7).使用浏览器 访问服务器上的 neo4j

http://127.0.0.1:7474

默认的账号是 neo4j 密码 neo4j 这里第一次登录的话会要求修改密码

# 3.5 Neo4j数据浏览器

数据浏览器访问

一旦我们安装Neo4j,我们可以访问Neo4j数据浏览器使用以下URL

http:// localhost:7474/browser/

Page8_01

Neo4j数据浏览器用于执行CQL命令并查看输出输出。

这里我们需要在美元提示符处执行所有CQL命令:“$” 如CREATE(cc:CreditCard)

在美元符号后键入命令,然后单击“执行”按钮运行命令。

它与Neo4j数据库服务器交互,检索和显示下面的结果到那个美元提示。

使用“VI视图”按钮以图形格式查看结果。 上图以“UI视图”格式显示结果。

Page9_01

导出CSV或者JSON

单击“导出CSV”按钮以csv文件格式导出结果

上次更新: 2025/04/03, 11:07:08
8 TiDB dashboard
2 Neo4j CQL

← 8 TiDB dashboard 2 Neo4j CQL→

最近更新
01
tailwindcss
03-26
02
PaddleSpeech
02-18
03
whisper
02-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 跨境互联网 | 豫ICP备14016603号-5 | 豫公网安备41090002410995号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式