本篇内容主要讲解“NebulaGraph和SpringBoot环境连接和查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NebulaGraph和SpringBoot环境连接和查询怎么实现”吧!Nebula Graph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。当前Nebula Graph的最新版本是3.2.1, 根据官方的文档进行配置
支持分布式. 相对于Neo4j, TigerGraph这些图数据库, Nebula 是面向分布式设计的, 因此对集群的支持比较完备, 在规模上上限要高很多. 在实际项目中存储了180亿的点边, 这个数量对于Neo4j和TigerGraph是比较困难的.支持图空间. 各个图空间的ID是互不干扰的, 但是在同一个图空间里ID的类型和长度必须一致. 注意这个一致约束的是所有的点和边. Nebula 可以使用int64作为ID, 也可以用字符串, 但是字符串需要指定一个长度, 例如64个字节. 相对于只能用长整数的Neo4j, ID设计上更自由灵活.点对应的类型叫TAG, 边对应的类型叫EDGETAG和EDGE都会对应一组的属性(map, 或者说dict)一个点可以对多个TAG, 每个TAG一组属性, 多组属性. 项目中建议一开始不要用多TAG, 在整个图结构稳定后, 再做合并一个边只对应一个EDGE, 一组属性Nebula 用的是自定义的查询语法 GQL, 和 cypher 语法基本一样除了点边的ID和关联关系外, 只有带索引的属性可以查询. 这点和其它图数据库不一样, 其它数据库即使没有索引, 慢是慢点但是不报错, Nebula直接给你返回错误.对于返回数量较大的查询, Nebula会强制查询必须带limitNebula 单节点稳定性是有问题的, 在3.2.1版本中观察到偶尔会出现服务自行退出, 如果在生产环境使用, 需要有后台监控进行心跳检测和自动启动下面列出一些常用的查询列出某一类型的点和边带条件的查询, 在结果数量较多时必须带limit, 否则Nebula会报错match (v:ADDRESS)-[e]-() where id(v)==”ADD:82388116″ return v,e limit 100在上面的链接中, 提供了最小的配置和测试代码对于Nebula Graph 3.2.1, 需要使用3.0.0的版本. client的每个版本只能对应特定的一两个服务端版本Java调用主要是三部分, 创建连接池, 创建会话, 执行查询连接到地址127.0.0.1, 端口9669, 连接池大小100. 注意地址和端口是一个列表, Nebula是支持集群的. 连接时不需要用户和密码创建会话时需要用户名和密码创建一个SPACE, 然后使用这个SPACE, 创建一个TAG person, 创建一个EDGE like添加一个点记录查询配合@Bean(destroyMethod = "close")
, 创建一个工厂类, 接收pool并实现close()方法为什么不直接将 NebulaP免费云主机域名ool 配置为Bean? 因为 Session 每次创建时需要带用户名密码, 将密码作为config注入到每个Service中肯定是大家都不愿意看到的.这里的值如果不打算使用profile配置, 可以直接写入hosts是逗号分隔的地址端口列表, 例如10.22.33.33:9669,10.22.33.34:9669
应用启动时读取配置, 创建 NebulaPool, 并实例化 NebulaSessionFactory, destroyMethod = "close"
, 这个表示在项目shutdown时会调用Bean的close方法释放资源.在 Service 中进行调用这里定义了 json 格式响应的外层结构内层因为区分Edge和Vertex, 结构不一样. 如果是混合返回的结果, 可以用 Serializable对于边, 需要使用结构化的ID用这个结构进行查询NebulaResult
这篇“c语言如何自定义结构体、位段、枚举”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c语言如何自定义结构体、位段、枚举”文章吧。结构体类型创建…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。