异构数据融合管理系统PandaDB 社区版v0.3发布

PandaDB研发团队日前推出PandaDB 社区版v0.3,该版本自主设计并实现了分布式的图存储和图查询引擎,去除了对Neo4j社区版存储和查询引擎的依赖,并无缝兼容Neo4j客户端调用接口和图查询语法Cypher。

PandaDB是中科院计算机网络信息中心研发的一款异构数据智能融合管理系统,除具备基于属性图模型的图数据管理能力外,还支持基于AI模型的非结构化数据(BLOB)语义分析、异构数据关联查询等功能。

 PandaDB社区版v0.3架构图

本次发布的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数据库用例

1. 用户可通过以下命令一键创建示例数据库(LDBC的示例数据):

$ bin/demo-importer.sh

导入完成后须重启全部pandadb-server。

2. 用户可通过以下命令向部署在本地9989端口的PandaDB-Server发起cypher查询:

$ bin/cypher-shell -a "panda://127.0.0.1:9989" -p "" -u ""

pandadb> match(n) return n limit 10;

3. 用户还可以使用图数据浏览器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-Browser的用户界面

三、图应用开发示例

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的示例代码:

import org.neo4j.driver.v1.*;
import org.neo4j.driver.v1.types.Node;
import org.neo4j.driver.v1.types.Relationship;
 
public class DriverDemo {
  public static void main(String[] args) {
    Driver driver =
      GraphDatabase.driver(
        /* panda://后面跟所有pandadb-server节点的“ip:端口”*/
        "panda://127.0.0.1:9989,127.0.0.2:9989,127.0.0.3:9989",
        AuthTokens.basic("", "")
      );
    Session session = driver.session();
    StatementResult result1 = 
    session.run("match (n) return n limit 10");
      while (result1.hasNext()){
        Record next = result1.next();
        Node n = next.get("n").asNode();
        System.out.println("node properties: " + n.asMap());
    }
 
    StatementResult result2 = 
      session.run("match (n)-[r]->(m) return r limit 10");
      while (result2.hasNext()){
        Record next = result2.next();
        Relationship r = next.get("r").asRelationship();
        System.out.println("rel properties: " + r.asMap());
      }
 
    session.close();
    driver.close();
  }
}

四、参与社区

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值