opengauss-mirror / openGauss-graph

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

openGauss Logo

简体中文

什么是openGauss-graph

openGauss-graph是基于openGauss(3.0.0)关系型存储的图引擎,提供海量图数据的存储和分析能力,支持万亿边PB级数据存储与毫秒级点边查询能力,支持Cypher和SPARQL语言查询,同时处理RDF图和属性图。兼容关系型数据库。携手社区生态伙伴,共建开源开放的图数据库内核和生态。

特性说明

  1. 设计并定义了知识图谱统一数据模型
  2. 基于openGauss的行存储引擎,设计并实现了兼容RDF图和属性图的知识图谱数据存储管理方案
  3. 设计并开发知识图谱数据库查询处理方法,添加SPARQL语法对应功能点,支持基本图模式查询中的路径查询和三元组查询中的链式查询

什么是openGauss

openGauss是一款开源的关系型数据库管理系统,它具有多核高性能、全链路安全性、智能运维等企业级特性。 openGauss内核早期源自开源数据库PostgreSQL,融合了华为在数据库领域多年的内核经验,在架构、事务、存储引擎、优化器及ARM架构上进行了适配与优化。作为一个开源数据库,期望与广泛的开发者共同构建一个多元化技术的开源数据库社区。

openGauss架构

openGauss-graph编译安装

概述

编译openGauss-graph需要openGauss-graph和binarylibs两个组件。

  • openGauss-graph:openGauss-graph的主要代码。可以从开源社区获取。

  • binarylibs:openGauss-graph依赖的第三方开源软件,你可以直接编译openGauss-third_party代码获取,也可以从开源社区下载已经编译好的并上传的一个副本。

对于数据库、三方库、GCC的编译以及常见问题,参照博客openGauss数据库编译指导

在编译openGauss-graph之前,请检查操作系统和软件依赖要求。

操作系统和软件依赖要求

openGauss-graph支持以下操作系统:

  • CentOS 7.6(x86架构)

  • openEuler-20.03-LTS(aarch64架构)

适配其他系统,参照博客openGauss数据库编译指导

以下表格列举了编译openGauss-graph的软件要求。

建议使用从列出的操作系统安装盘或安装源中获取的以下依赖软件的默认安装包进行安装。如果不存在以下软件,请参考推荐的软件版本。

软件依赖要求如下:

软件 推荐版本
libaio-devel 0.3.109-13
flex 2.5.31及以上版本
bison 2.7-4
ncurses-devel 5.9-13.20130511
glibc-devel 2.17-111
patch 2.7.1-10
readline-devel 7.0-13

可通过下边命令完成安装

sudo yum install flex bison readline-devel ncurses-devel glibc-devel libaio-devel patch -y  

下载openGauss-graph

可以从gitee仓库下载openGauss-graph :https://gitee.com/opengauss/openGauss-graph

可以从开源社区下openGauss-third_party,https://opengauss.org/zh/

对于openGauss-third_party,可以通过以下网站获取编译好的binarylibs。下载后请解压缩并重命名为binarylibs

编译好的三方库二进制地址如下:

版本和分支 下载路径
3.0.0 https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/openGauss-third_party_binarylibs.tar.gz

现在我们已经拥有完整的openGauss-graph代码,把它存储在以下目录中(以sda为例)。

  • /sda/openGauss-graph
  • /sda/binarylibs

编译第三方软件

在编译openGauss-graph之前,需要先编译openGauss-graph依赖的开源及第三方软件。这些开源及第三方软件存储在openGauss-third_party代码仓库中,通常只需要构建一次。如果开源软件有更新,需要重新构建软件。

用户也可以直接从binarylibs库中获取开源软件编译和构建的输出文件。

如果你想自己编译第三方软件,请到openGauss-third_party仓库查看详情。

执行完上述脚本后,最终编译和构建的结果保存在与openGauss-third_party同级的binarylibs目录下。在编译openGauss-graph时会用到这些文件。

代码编译

使用命令编译代码

1.获取对应的开源三方库二进制文件:

可以从对应地址下载 下载openGauss-graph

2.配置环境变量

   export CODE_BASE=/home/omm/openGauss-graph/     # Path of the openGauss-server file
   export BINARYLIBS=/home/omm/binarylibs/    # Path of the binarylibs file
   export GAUSSHOME=$CODE_BASE/dest/     
   export GCC_PATH=$BINARYLIBS/buildtools/openeuler_x86_64[这里替换成操作系统对应的文件夹]/gcc7.3/
   export CC=$GCC_PATH/gcc/bin/gcc
   export CXX=$GCC_PATH/gcc/bin/g++
   export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
   export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH

3.选择一个版本进行配置。

与openGauss编译方式不同的是, CFLAGS 编译选项中增加了 -DGS_GRAPH 的配置.

debug版本:

  ./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0 -DGS_GRAPH' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib

release版本:

  ./configure --gcc-version=7.3.0 CC=g++ CFLAGS="-O2 -g3 -DGS_GRAPH" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib

memcheck版本:

  ./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0 -DGS_GRAPH' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib --enable-memory-check

注意

  • *[debug | release | memcheck]*表示有三个目标版本可用。
  • 在ARM平台上,需要把**-D__USE_NUMA添加至CFLAGS**中。
  • ARMv8.1及以上平台(如鲲鹏920),需要把**-D__ARM_LSE添加至CFLAGS**中。
  • 如果binarylibs被移至openGauss-graph中,或者在openGauss-graph中创建了到binarylibs的软链接,则不需要指定**--3rd**参数。但请注意,这样做的话,该文件很容易被git clean命令删除。

4.执行以下命令编译openGauss-graph:

   [user@linux openGauss-graph]$ make -sj
   [user@linux openGauss-graph]$ make install -sj

5.显示如下信息,表示编译和安装成功。

   openGauss installation complete.
  • 编译后的软件安装路径为**$GAUSSHOME**。

  • 编译后的二进制文件存放路径为:$GAUSSHOME/bin

测试安装

  1. 建立数据目录和日志目录:
   [omm@linux openGauss-graph]$ mkdir /home/omm/gaussdata
   [omm@linux openGauss-graph]$ mkdir /home/omm/log
  1. 数据库初始化:
   # 使用目录/home/omm/gaussdata作为数据库数据存放位置
   [omm@linux openGauss-graph] gs_initdb -D /home/omm/gaussdata --nodename=db1 
  1. 启动数据库
   [omm@linux openGauss-graph] gs_ctl start /home/omm/gaussdata -Z single_node -l /home/omm/log/opengauss.log
  1. gsql 连接数据库
   [omm@linux openGauss-graph] gsql -d postgres

快速入门

openGauss-graph图引擎快速入门

更多关系型数据库的使用教程和API可参考openGauss相关用户文档

社区

治理

查看openGauss是如何实现开放治理

交流

贡献

欢迎大家来参与贡献。详情请参阅openGauss的社区贡献

发行说明

请参见[发行说明]

许可证

MulanPSL-2.0

About

License:Other


Languages

Language:C++ 79.4%Language:PLpgSQL 7.0%Language:C 6.4%Language:Yacc 1.8%Language:Python 1.5%Language:Shell 1.0%Language:Makefile 0.7%Language:CMake 0.5%Language:PLSQL 0.4%Language:Perl 0.3%Language:Lex 0.3%Language:Java 0.2%Language:LLVM 0.2%Language:Ruby 0.1%Language:M4 0.1%Language:Assembly 0.0%Language:Roff 0.0%Language:HTML 0.0%Language:Batchfile 0.0%Language:Visual Basic 6.0 0.0%Language:TSQL 0.0%Language:DTrace 0.0%Language:sed 0.0%Language:Raku 0.0%Language:Csound Score 0.0%