PandaDB研发团队日前推出PandaDB 社区版v0.3,该版本自主设计并实现了分布式的图存储和图查询引擎,去除了对Neo4j社区版存储和查询引擎的依赖,并无缝兼容Neo4j客户端调用接口和图查询语法Cypher。
PandaDB是中科院计算机网络信息中心研发的一款异构数据智能融合管理系统,除具备基于属性图模型的图数据管理能力外,还支持基于AI模型的非结构化数据(BLOB)语义分析、异构数据关联查询等功能。
本次发布的PandaDB社区版v0.3实现了图存储和图查询的分布式化。其中:
-存储引擎基于分布式KV存储(TiKV)和全文索引(ElasticSearch)构建,具备可水平扩展的属性图数据存储能力;
-查询引擎支持多实例部署运行,实现了图计算负载的均衡分配和查询服务的高可用。
一、 PandaDB-Server的部署和启动
将PandaDB社区版v0.3安装包下载到拟运行PandaDB-Server的1个或多个服务器,并解压。下载地址为:https://github.com/grapheco/pandadb-v0.3/releases/download/v0.3-20220113/pandadb-server-0.3-unix.tar.gz
1. 部署并启动ElasticSearch、TiKV
2. 每台服务器均修改配置文件conf/pandadb.conf:
-修改dbms.index.hosts的值为ElasticSearch的host address
-修改dbms.kv.hosts的值为TiKV PD的host address
-修改dbms.panda.nodes的值为PandaDB集群的host address
3. 每台服务器分别启动PandaDB-Server:
$ bin/pandadb.sh start
二、 PandaDB Demo数据库用例
用户可通过以下命令一键创建示例数据库(LDBC的示例数据):
$ bin/demo-importer.sh
导入完成后须重启全部pandadb-server。
用户可通过以下命令向部署在本地9989端口的PandaDB-Server发起cypher查询:
$ bin/cypher-shell -a "panda://127.0.0.1:9989" -p "" -u ""
pandadb> match(n) return n limit 10;
用户还可以使用图数据浏览器PandaDB-Browser查询示例数据库。如下图填写Connect URL,其中ip:port替换为pandadb-server的运行地址:端口号。然后点击Connect进入查询界面。PandaDB-Browser下载地址为: https://github.com/grapheco/pandadb-browser/releases/download/alpha3/pandadb-browser-0.0.3-binary.zip。解压后根据README.md部署安装。
三、 图应用开发示例
PandaDB提供了Java版本的图数据查询驱动PandaDB-Java-Driver,图应用开发者可通过maven pom配置文件将其引入自己的开发项目。以下是pom配置方法:
<dependencies>
……
<dependency>
<groupId>org.grapheco.pandadb</groupId>
<artifactId>pandadb-java-driver</artifactId>
<version>0.3.2</version>
</dependency>
……
</dependencies>
以下是通过PandaDB-Java-Driver访问PandaDB-Server的示例代码:
四、 参与社区
PandaDB社区版v0.3、PandaDB-Java-Driver、PandaDB-Browser的源代码均采用Apache-2.0协议开源。欢迎提交issues、PR。代码仓库地址:
PandaDB社区版v0.3:https://github.com/grapheco/pandadb-v0.3
PandaDB-Java-Driver:https://github.com/grapheco/pandaDB-java-driver
PandaDB-Browser:https://github.com/grapheco/pandadb-browser