Neo4j如何对大量数据(千万节点及以上)进行初始化

2021-08-26 08:56:39

参考文章:

【1】Neo4j的查询速度为何这么慢?这能商用吗?

【2】如何将大规模数据导入Neo4j

如果对大量数据进行初始化加载,那么就用Neo4j-import;增量数据的同步加载又不想暂停数据库服务,那就要用load csv,如果可以忍受数据库的短暂停服,那么Batch-inserter更适合。如果只是想插入少量的数据,且不怎么在乎实时性,那么请直接看Cypher语言。

常见的数据插入方式:

1.Cypher CREATE 语句,为每一条数据写一个CREATE

2.Cypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。

3.官方提供的Java API —— Batch Inserter

4.大牛编写的 Batch Import 工具

5.官方提供的 neo4j-import 工具

截图于:http://paradoxlife.me/how-to-insert-bulk-data-into-neo4j
截图于:http://paradoxlife.me/how-to-insert-bulk-data-into-neo4j

【*】Neo4j社区版的neo4j最大节点存储量2**35,大约二百多亿,企业版没限制。如果服务器容许挂载的硬盘最大容量很大,采用企业版产品,那么也还是可以满足要求。不要实时性的话,titan也可以做;预算不够的话,arangodb、orientdb都支持分片存储。另外别指望all in one,慎重进行物理模型设计,仔细考虑图数据库的定位(当个图结构的索引最合适)。

【*】neo4j是权威性较高的老牌图数据库,用java写的,因为存储模型比较固定,灵活性不足,而且无法实现分片存储,所以愈发对超大规模数据适应不能;orient改进了存储模型,采用混合模型存储,可以分片存储,用java写成;arango应该借鉴了orient的设计思路,不过据说它更快,它是用c++写成的。另外,对非中立的厂商所做的性能测评,还是要持怀疑态度。

【*】插入慢一方面需要给他建立索引,另一方面可能的确是超级节点引起的。超级节点的解决方案是为Neo4j添加了wrapper,导向自己的代码。

 



Neo4j图数据库中的索引

给需要查询的节点标签创建索引。

CREATE INDEX ON:类别标签名 (创建索引的字段名)

CREATE INDEX ON:BaiduBaike(id)



作者:布口袋_天晴了
链接:https://www.jianshu.com/p/32ce953604d5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @   秦时明月0515  阅读(893)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-08-26 Linux命令行设置环境变量
点击右上角即可分享
微信分享提示