科普 | 越来越火的图数据库究竟是什么?

逆向解析喜马拉雅新版xm-sign算法:从dws.1.6.8.js到签名生成 本文详细解析了喜马拉雅新版xm-sign算法的逆向破解方法。通过定位核心JS文件dws.1.6.8.js,构建本地Node.js模拟执行环境,并解密关键参数cid与appKey,最终实现签名算法的本地化稳定生成,为数据采集提供可靠解决方案。 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 8:55 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:cnblogs.com/mantoudev/p/10414495.html


随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。

大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。

世界上很多著名的公司都在使用图数据库。比如:

  • 社交领域 :Facebook, Twitter,Linkedin用它来管理社交关系,实现好友推荐

  • 零售领域 :eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验

  • 金融领域 :摩根大通,花旗和瑞银等银行在用图数据库做风控处理

  • 汽车制造领域 :沃尔沃,戴姆勒和丰田等顶级汽车制造商依靠图数据库推动创新制造解决方案

  • 电信领域 :Verizon, Orange和AT&T 等电信公司依靠图数据库来管理网络,控制访问并支持客户360

  • 酒店领域 :万豪和雅高酒店等顶级酒店公司依使用图数据库来管理复杂且快速变化的库存

既然图数据库应用这么广泛,越来越多的企业和开发者开始使用它,那它究竟有什么过人之处呢,下面我们来揭开它的神秘面纱。

Why Graph DB?

学过数据结构这么课程的同学脑海中应该或多或少有图的概念。

什么是图?

图由两个元素组成:节点 和 关系 。

每个节点代表一个实体(人,地,事物,类别或其他数据),每个关系代表两个节点的关联方式。

这种通用结构可以对各种场景进行建模 - 从道路系统到设备网络,到人口的病史或由关系定义的任何其他事物。

什么是图数据库?

`图数据库(Graph database)`` 并非指存储图片的数据库,而是以图这种数据结构存储和查询数据。

图形数据库是一种在线数据库管理系统,具有处理图形数据模型的创建,读取,更新和删除(CRUD)操作。

与其他数据库不同, 关系在图数据库中占首要地位。这意味着应用程序不必使用外键或带外处理(如MapReduce)来推断数据连接。

与关系数据库或其他NoSQL数据库相比,图数据库的数据模型也更加简单,更具表现力。

图形数据库是为与事务(OLTP)系统一起使用而构建的,并且在设计时考虑了事务完整性和操作可用性。

两个重要属性

根据存储和处理模型不同,市面上图数据库也有一些区分。

比如:

Neo4J 就是属于原生图数据库,它使用的后端存储是专门为Neo4J这种图数据库定制和优化的,理论上说能更有利于发挥图数据库的性能。

而 JanusGraph 不是原生图数据库,而将数据存储在其他系统上,比如Hbase。

① 图存储

一些图数据库使用 原生图存储 ,这类存储是经过优化的,并且是专门为了存储和管理图而设计的。

并不是所有图数据库都是使用原生图存储,也有一些图数据库将图数据序列化,然后保存到关系型数据库或者面向对象数据库,或其他通用数据存储中。

② 图处理引擎

原生图处理(也称为 无索引邻接 )是处理图数据的最有效方法,因为连接的节点在数据库中物理地 指向彼此。非本机图处理使用其他方法来处理CRUD操作。

对比

与NoSQL数据库对比

NoSQL数据库大致可以分为四类:

  • 键值(key/value)数据库

  • 列存储数据库

  • 文档型数据库

  • 图数据库

图片
图片

与关系型数据库对比

关系型数据库实际上是不擅长处理关系的。很多场景下,你的业务需求完全超出了当前的数据库架构。

举个栗子:假设某关系型数据库中有这么几张用户、订单、商品表:

图片

当我们要查询:“用户购买了那些商品?” 或者 “该商品有哪些客户购买过?” 需要开发人员JOIN几张表,效率非常低下。

而“购买该产品的客户还购买了哪些商品?”类似的查询几乎不可能实现。

关系查询性能对比

在数据关系中心,图形数据库在查询速度方面非常高效,即使对于深度和复杂的查询也是如此。在《Neo4j in Action》这本书中,作者在关系型数据库和图数据库(Neo4j)之间进行了实验。

图片

他们的实验试图在一个社交网络里找到最大深度为5的朋友的朋友。他们的数据集包括100万人,每人约有50个朋友。

实验结果如下:

图片

在深度为2时(即朋友的朋友),两种数据库性能相差不是很明显;深度为3时(即朋友的朋友的朋友),很明显,关系型数据库的响应时间30s,已经变得不可接受了;深度到4时,关系数据库需要近半个小时才能返回结果,使其无法应用于在线系统;深度到5时,关系型数据库已经无法完成查询。

而对于图数据库Neo4J,深度从3到5,其响应时间均在3秒以内。

可以看出,对于图数据库来说,数据量越大,越复杂的关联查询,约有利于体现其优势。从深度为4/5的查询结果我们可以看出,图数据库返回了整个社交网络一半以上的人数。

Neo4J 和 JanuasGraph

根据DB-Engines最新发布的图数据库排名,Neo4J仍然大幅领先排在第一位:

图片

Neo4J

图片

Neo4J是由Java实现的开源图数据库。自2003年开始开发,直到2007年正式发布第一版,并托管于GitHub上。

Neo4J支持ACID,集群、备份和故障转移。目前Neo4J最新版本为3.5,分为社区版和企业版,社区版只支持单机部署,功能受限。企业版支持主从复制和读写分离,包含可视化管理工具。

JanusGraph

图片

JanusGraph是一个Linux基金会下的开源分布式图数据库。JanusGraph提供Apache2.0软件许可证。该项目由IBM、Google、Hortonworks支持。

JanusGraph是由TitanDB图数据库修改而来,TitanDB从2012年开始开发。目前最新版本为0.3.1。

JanusGraph支持多种储存后端(包括Apache Cassandra、Apache HBase、Bigtable、Berkeley DB)。JanusGraph的可扩展性取决于与JanusGraph一起使用的基础技术。

例如,通过使用Apache Cassandra作为存储后端,可以将JanusGraph简单地扩展到多个数据中心。

JanusGraph通过与大数据平台(Apache Spark,Apache Giraph,Apache Hadoop)集成,支持全局图数据的分析、报告和ETL。

JanusGraph通过外部索引存储(Elasticsearch,Solr,Lucene)支持地理、数字范围和全文搜索。

标记属性图模型

图片

(1)节点

节点是主要的数据元素

节点通过关系连接到其他节点

节点可以具有一个或多个属性 (即,存储为键/值对的属性)

节点有一个或多个标签 ,用于描述其在图表中的作用

示例:人员节点与Car节点

(2)关系

关系连接两个节点 关系是方向性的 节点 可以有多个甚至递归的关系 关系可以有一个或多个属性(即存储为键/值对的属性)

(3)属性

属性是命名值,其中名称(或键)是字符串

属性可以被索引和约束

可以从多个属性创建复合索引

(4)标签

标签用于将 节点 分组

一个节点可以具有多个标签

对标签进行索引以加速在图中查找节点

本机标签索引针对速度进行了优化

Cypher图查询语言

Cypher是Neo4j的图形查询语言,允许用户存储和检索图形数据库中的数据。

举例,我们要查找Joe的所以二度好友:

图片

查询语句如下:

MATCH
  (person:Person)-[:KNOWS]-(friend:Person)-[:KNOWS]-
  (foaf:Person)
WHERE
  person.name = "Joe"
  AND NOT (person)-[:KNOWS]-(foaf)
RETURN
  foaf

Joe认识Sally,Sally认识Anna。Bob被排除在结果之外,因为除了通过Sally成为二级朋友之外,他还是一级朋友。

小结

图数据库应对的是当今一个宏观的商业世界的大趋势:凭借高度关联、复杂的动态数据,获得洞察力和竞争优势。国内越来越多的公司开始进入图数据库领域,研发自己的图数据库系统。

对于任何达到一定规模或价值的数据,图数据库都是呈现和查询这些关系数据的最好方式。而理解和分析这些图的能力将成为企业未来最核心的竞争力。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

兄弟,艿一口,点个赞!????

TortoiseSVN的安装与使用 TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I... 阅读详情

相关推荐

继电器的选型规范

触点是继电器中最重要的结构件,触点的使用寿命受触点材料、触点上的电压及电流值(特别是接通时及断开时的电压、电流波形)、负载种类、切换频率、环境情况、接触形式、触点回跳现象等的影响,触点失效多以触点的材料转移、粘连、异常消耗、接触电阻增大等故障现象出现,使用时需要注意。为了稳定工作, DC 型继电器的线圈两端所加电压推荐使用波纹变化率小于±5%的线圈额定电压,否则继电器会工作不稳定,引起触点的粘接或异常损耗,特别是在继电器的驱动电路上连接有电动机、螺线管、变压器等器件时,这种情况更为明显。

qq_43416206的博客 1884

JDBC是什么?工作原理,缺点

JDBC是什么? 1.Java Database Connectivity:Java访问数据库的解决方案 2.JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口 3.JDBC希望用相同的方式访问不同的数据库,让具体的数据库操作与数据库厂商实现无关,从而让在不同数据库之间轻易的切换 本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程在,真正执

qq_41143942的博客 515

模拟波束赋形 vs 数字波束赋形:5G天线设计中的成本与性能权衡

本文深入剖析了5G天线设计中模拟波束赋形与数字波束赋形的核心差异,重点探讨了二者在硬件成本、功耗、网络覆盖能力和频谱效率等方面的权衡。文章指出,模拟方案成本低但灵活性有限,数字方案性能强大但代价高昂,而混合波束赋形已成为主流折中方案。决策需紧密结合具体的部署场景、性能要求和总拥有成本进行综合考量。

weixin_28432777的博客 842

mybatis逻辑分页与物理分页

  最近在搭建springboot框架的时候,构建ORM的时候,选择mybatis的时候,我们一般时候用:      1.mybatis自带的分页RowBounds;       2.mybatis插件或者直接书写sql进行分页;          (1).通过自己的封装SQL根据beginNum(开始条数)和endNum(需要的条数)来进行分页           (2).PageHelper分...

一个奋斗的小鸟的博客 1万+

ResNet与注意力机制:深度学习中的强强联合

本文详细介绍了ResNet和注意力机制的基本原理,并探讨了如何将两者结合,以提升网络的性能。通过在ResNet中引入注意力机制,网络可以自适应地调整特征图的重要性,从而更加关注于关键区域,提升模型的性能。实验结果表明,引入注意力机制后,ResNet的性能得到了显著提升。未来,随着注意力机制的不断发展,我们可以期待更多创新的网络架构和训练方法,进一步提升深度学习模型的性能。

2401_82355416的博客 1784

AUTOSAR进阶图解==>AUTOSAR_SWS_CANNetworkManagement

本文介绍了AUTOSAR架构中的CAN网络管理(CanNm)模块,主要内容包括: 模块概述:CanNm是协调CAN网络节点状态转换的基础组件,采用去中心化设计,通过周期性发送网络管理PDU保持网络活跃状态,支持网络唤醒、睡眠和部分网络功能。 架构设计:CanNm位于AUTOSAR中间层,连接上层通信管理器(ComM)和底层CAN接口(CanIf),包含状态管理、PDU处理和定时器管理等子组件。 状态机设计:定义了三种主要模式(总线睡眠、准备睡眠和网络模式)及其转换逻辑,网络模式又包含重复消息、正常操作和准备

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 2041

逻辑分页--物理分页

一、物理分页与逻辑分页概念 1.物理分页:物理分页依赖数据库,比如MySQL数据库提供的"limit"关键字,只需编写带有"limit"关键字的SQL语句,数据库返回的就是分页结果。 2.逻辑分页:逻辑分页依赖编码。数据库返回全部数据而并非分页数据,然后再通过编写代码获取分页结果;常用的方法就将查询的结果存放到List集合中,由于List是有序的,可通过索引获取相应的值。 二、物理分页与逻辑...

KyleWong的博客 2232

优化dalsa相机检测界面

上节实现了使用qt结合dalsa相机显示检测到缺陷的画面,由于窗口过于简陋,本节将进行一个界面优化。

A1983Z的博客 991

逻辑分页与物理分页的区别

一、从概念上说 逻辑分页:逻辑分页依赖于代码。(例:Mybatis自带的分页插件就是逻辑分页) 同时逻辑分页是先查询出所有的数据,再根据代码块的所需(例:你需要拿到第几页,每页几条的数据)筛选出合适的数据进行分页。 物理分页:物理分页依赖于数据库。(更侧重于sql语句) 例:MySQL数据库提供的分页关键字"limit",程序员只需要编写带有关键字的SQL语句,数据库返回的数据就是分页结果。 简单点讲: 逻辑分页就是半自动化的一个分页步骤(因为需要传递相关参数,所以是半自动化的); 物理分页就是手写SQL语

weixin_46613007的博客 7812

《嵌入式最全面试题-Offer直通车》目录

嵌入式领域蓬勃发展,嵌入式工程师成为众多科技企业争抢的热门人才。如果你渴望在嵌入式面试中脱颖而出,成功斩获心仪的 offer,那么《嵌入式最全面试题 - Offer直通车》将是你的绝佳选择。本专栏是优快云是热门专栏,100多篇文章,总字数过百万。每月新增订阅用户过百,现在是优惠价9.9元,后面要逐渐恢复原价,早订阅早受益。本专栏精心整理了众多超万字的精华内容,总计达数十万字的嵌入式面试题总结。涵盖从嵌入式基础知识到各大厂面试真题,从驱动开发到操作系统,从硬件到软件等各个方面。

大模型大数据攻城狮的专栏 8404

R语言机器学习算法实战系列(四)随机森林算法分类器+SHAP值 (Random Forest)

本文介绍了如何使用R语言实现随机森林算法,用于构建乳腺癌分类器。随机森林通过多棵决策树投票判断标签,具有避免偏差和提升模型效果的优势。文章详细讲解了数据下载、R包加载、数据预处理、特征选择、模型构建与评估等步骤。数据集包含569份恶性和良性肿瘤样本的32类指标,通过随机森林模型进行特征选择和分类。最终,文章提供了完整的代码和可视化结果,帮助读者理解并实现随机森林算法。

专注生信领域 3323

对于逻辑分页与物理分页的分析与选择(MyBatis-Plus的分页实现),理解两种分页的异同点

写分页查询时,对于手续费账单分页查询需求的实现分析。

xjx666666的博客 1176

开源3D激光SLAM算法的异同点、优劣势与适配场景总结

本文对比分析了主流开源3D激光SLAM方案的核心差异与适用场景。LOAM架构简洁但精度较低;LeGO-LOAM轻量化适合地面机器人;LIO-SAM采用因子图优化支持多传感器融合;LVI-SAM通过视觉-激光-惯性三重冗余提升鲁棒性;FAST-LIO系列基于滤波架构实现超高实时性。选型需权衡传感器配置(纯激光/激光+IMU/激光+视觉)、运动状态(高速/常规)、计算资源等因素:资源受限选LeGO-LOAM或Faster-LIO,高速运动选FAST-LIO系列,退化环境选LVI-SAM,全局一致性需求选LIO-

Studying…… 651

科普| 越来越火的图数据库究竟是什么?

作者:mantou叔叔cnblogs.com/mantoudev/p/10414495.html随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网...

Java笔记虾 667

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

科普| 什么是图数据库?

点击上方“朱小厮的博客”,选择“设为星标”后台回复"加群",加入新技术来源:8rr.co/2EJf随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张...

朱小厮的博客 3222

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TigerGraph 独家解读:图数据库的现状与未来

2012 年,TigerGraph 在硅谷成立,由华人科学家许昱博士创立,深耕大数据图分析领域。在默默耕耘 6 年之后,2017 年 11 月 8 日,TigerGraph 的下一代图数据库在美国正式发布,在市场上引起了轩然大波,这家公司也一跃成为了受人关注的明星。随着人工智能技术的发展,市场对于性能的要求越来越高,然而光靠硬件的升级已经无法完全满足使用者的需求,配套的软件产品如果跟不上发展,效率...

weixin_33798152的博客 2904

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

图数据库:挖掘关系和网络

1.背景介绍 图数据库(Graph Database)是一种特殊的数据库,它使用图结构(Graph)来存储、组织和查询数据。图数据库的核心概念是节点(Node)和边(Edge),节点表示数据库中的实体,边表示实体之间的关系。图数据库非常适合处理复杂的关系数据,如社交网络、信任网络、知识图谱等。 图数据库的发展与人工智能、大数据和网络科学等领域的快速发展密切相关。随着数据量的增加,传统的关系型数...

AI天才研究院 890

AutoGPT图数据库应用:Neo4j处理复杂关系

本文探讨如何利用Neo4j图数据库解决AutoGPT在任务执行中面临的状态管理、依赖追踪和可解释性难题。通过将任务流建模为知识图谱,实现复杂关系的持久化存储与高效查询,提升AI智能体的决策质量与行为可追溯性。

weixin_28713083的博客 1117

冬奥会|基于SprinBoot+vue的冬奥会科普平台(源码+数据库+文档)

本文首先介绍了冬奥会科普管理的技术发展背景与发展现状,然后遵循软件常规开发流程,首先针对平台选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据平台总体功能模块的设计绘制平台的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现平台的各个功能模块。最后,对初步完成的平台进行测试,主要是功能测试、单元测试和性能测试。测试结果表明,该平台能够实现所需的功能,运行状况尚可并无明显缺点。冬奥会科普;java;MySQL数据库。

伟庭的博客 1347

基于SprinBoot+vue的冬奥会科普平台(源码+数据库+文档)

本文首先介绍了冬奥会科普管理的技术发展背景与发展现状,然后遵循软件常规开发流程,首先针对平台选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据平台总体功能模块的设计绘制平台的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现平台的各个功能模块。最后,对初步完成的平台进行测试,主要是功能测试、单元测试和性能测试。测试结果表明,该平台能够实现所需的功能,运行状况尚可并无明显缺点。冬奥会科普;java;MySQL数据库。

Coder-coco的博客 1013

1 Mysql的数据类型有哪三大类,科普:云数据库有哪几种类型,应该如何选择

数据可以说是每个行业发展和变革的必要元素,它渗透在各个领域中,而我们一直使用传统数据库来协助存储和组织这些数据。随着云时代的发展,催生了各种对云数据库的新需求,越来越多人意识到采用传统数据库已经无法满足原有的使用场景,需要选择适合使用的新型数据库。今天小编来给大家科普一下,数据库有哪几种类型。一般来说,数据库分为两大类:关系型数据库和非关系型数据库。对数据的操作几乎建立在一个或多个关系表格上,通过...

weixin_29416459的博客 688
上一篇: P0级重大事故:超卖了100瓶飞天茅台,整个项目组慌得一逼~
下一篇: 为啥这么多公司用 ZooKeeper?它到底解决了什么问题?
公众号-芋道源码
博客等级 码龄10年 1636粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值