Neo4j如何使用Data Fabric技术编织万亿图数据
- Neo4j如何使用Data Fabric技术编织万亿图数据
- 一、数据编织(Data Fabric)
- 二、Neo4j Fabric简介
- 三、Fabric数据建模
- 3.1 数据建模
- 3.2 数据联邦
- 3.3 数据分片
- 四、使用 Fabric Cypher 查询数据
- 4.1 跨数据分片查询
- 4.2 数据联邦和数据分片同时并行查询
- 五、总结
Here’s the table of contents:
Neo4j如何使用Data Fabric技术编织万亿图数据
一、数据编织(Data Fabric)
为了解决超级大图数据存储的问题,我们必须寻找一个分布式的解决方案。图数据库领域最流行的是基于点分割和边分割的分布式存储方案,例如Nebula Graph、HugeGraph等图数据库,采用点分割的图数据库一般较容易带来数据一致性的问题,所以边分割方案使用的更多。
采用传统的分布式存储技术可以实现在多台服务器上存储超大规模的图数据,但是随之而来的是GQL运行时带来的大量网络通信对于性能的消耗,而且大部分这种方案的图数据库不支持ACID事务(但这对于不需要事务特性的场景可以忽略,例如Elasticsearch的使用,需要说明的是ES在同一索引存储超大量数据也会带来性能问题,于是索引就有为什么会推荐每个分片数据最好在30~50G之间)。
在区块链领域Fabric是超级账本联盟推出的核心区块链框架,它适合在复杂的企业内和企业间搭建联盟链。根据超级账本联盟的目标, Fabric 被建设为一个模块化的、支持可插拔组件的基础联盟链框架。
世界领先的图数据库Neo4j支持存储超大规模图数据,为了实现这一操作,Neo4j从4.0开始引入了数据编织理念(Data Fabric)。该Fabric架构支持存储超大规模的图数据的同时不带来查询性能的急剧下降。这确实是一个非常特别的架构!
二、Neo4j Fabric简介
- Neo4j Fabric是什么?
Fabric是在Neo4j 4.0版本中引入的一种在多个数据库存储和检索数据的方法。无论这些数据库是在同一个Neo4j数据库管理系统上还是在多个数据库管理系统中,均使用单个Cypher进行查询。Fabric实现的主要目标:
- 本地和分布式数据的统一视图,可通过单个客户端连接和用户会话访问
- 提高了读/写操作、数据量和并发性的可扩展性
- 预估在正常操作、故障转移或其他基础架构更改期间执行查询的响应时间
- 高可用性,大数据量无单点故障
实际上,Fabric为以下各项提供了基础功能和工具:
- 数据联合(datafederation):以不连接的图的形式,获取分布式数据源的可用数据的能力。
- 数据分片(datasharding):以分割在多个数据库中公共图的形式,获取分布式数据源的可用数据的能力。
使用Fabric时,Cypher查询可以在多个联合图和分片图中存储和检索数据。
- Neo4j Fabric到底是不是分布式技术?
为了弄明白这个问题,我们先来看一下分布式的定义:
通过阅读分布式的百科定义,我们可以确信这是一种分布式技术!
标签:Fabric,数据,建模,查询,分片,Neo4j,Data From: https://blog.51cto.com/u_13618048/5891662