暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】GDMBASE 图数据库实战笔记(上)

达梦E学 2024-08-12
365

点击上方蓝色字体关注我们

蜀天梦图数据库(GDMBASE)是达梦数据下属子公司四川蜀天梦图数据科技有限公司坚持通过自主研发、原始创新,以图数据标准模型、图存储、图查询、图计算为核心的一款分布式图数据库管理系统基础软件产品

本文旨在分享在安装、配置以及使用 GDMBASE 过程中的一些经验,希望能为那些正准备或已经使用 GDMBASE 的同行们提供一些参考。通过这篇笔记,帮助初学者更快地上手,并为用户带来一些实用的提示。


备注:因为篇幅原因,这篇干货分为上下两篇进行发布。本期为上篇,主要分享GDMBASE图数据库安装、使用、备份、还原。


01

环境说明

正式使用的图数据库硬件环境需求CPU:16核及以上,内存:32G及以上,硬盘:500G以上。由于GDMBASE是基于客户端/服务器方式的大型图数据库管理系统,一般应在网络环境下使用,客户机与服务器可能分布在不同的机器上,所以网络环境要求通常包括网络(如一个局域网)。
本文中介绍的是对图数据库(GDMBASE)的学习环境部署,使用心得。作者将在本地PC上直接建立虚拟机进行单机模式的安装。

虚拟机具体配置如下:
CPU:虚拟机分配CPU为4个。
内存:虚拟机分配内存为8G。
磁盘:20G连续硬盘空间,
操作系统:虚拟机操作系统为Centos7.9.2009
软件环境需求:
glibc 2.17 及以上 执行命令ldd --version检查版本
gcc 4.8.5及以上 执行命令gcc --version检查版本
jdk 1.8及以上 执行命令java -version检查版本

其他配置
修改前的参数检查:
ulimit -a
open files :在大数据集装载时,保证文件打开/置换顺利进行,有效地保障装载流程的功能和速率。
执行指令vi etc/profile.d/sh.local ,进入到文件,添加如下命令并保存。
ulimit -n 65535
ulimit -c unlimited
修改后执行指令source etc/profile,重新加载配置参数,即刻生效。


02

部署单机模式

01

部署前准备

一般情况下,GDMBASE组件之间是通过IP地址和端口号建立连接和保持通讯的。在部署前,须先确认服务器主机的IP地址,以及端口是否空闲。单机,即所有图数据存储和读取均在一个存储节点。


参数配置
GDMBASE的存储-服务-客户端之间是通过IP&PORT建立连接的,因此,用户在自定义IP或PORT时,须保持参数一致。以主机IP地址为:192.168.62.129;相关端口未被占用的服务器为例,进行单机环境部署。
02

安装包下载

登录达梦数据官网https://www.dameng.com/,点击右上角“下载中心”进入下载中心。选择对应的CPU平台和操作系统下载GDMBASE开发板安装包。

作者的虚拟机在普通pc上建立cpu为Intel,操作系统为centos7.9下载得到安装包如下:
gdmbase_linux.x86_64_v3.6.19.tar.gz(官网下载包会不断更新可能版本会有不同)。将安装包上传到虚拟机,解压后即可进行后续步骤。
03

Gstore存储配置

GDMBASE的配置文件在安装路径中的conf目录中。部署存储时,请检查配置gstore.ini文件的相关信息。其他的可先使用默认值。

    SYS_MODE=0 #系统模式 1-分布式;0-单机
    NODE_TYPE=1 #节点类型: 0-计算节点;1-数据节点; 2-管理节点;
    DATA_DIR=./data #数据存放路径
    LOG_DIR=./log #日志存放路径
    NODE_IP=127.0.0.1 #当前存储节点的IP,单机时即存储主机的IP
    MAL_PORT=8000 #当前存储节点的内部通信端口
    DATA_PORT=8020 #当前存储节点的端口,与server或装载工具连接时的端口

    04

    Cypher-server配置

    若要使用cypher语言系统及相关组件工具,请配置cypher-server.toml配置文件IP和port与存储一致。

      [gstore]
      host = "127.0.0.1" #存储地址
      port = 8020 #存储端口

      05

      启动GDMBASE

      启动GDMBASE

      GDMBASE的启动程序在安装路径中bin目录下,依次执行命令可启动各组件。一般情况下,为了使进程保持后台运行,可使用tmux插件或nohup指令运行各组件。

      06

      启动存储

      运行./gstore当组件成功启动并出现gstore is ready后证明GDMBASE储存已准备就绪;

      注意:为了降低数据文件被破坏的风险性,在退出存储时,推荐在gstore控制台使用ctrl+c或使用kill -2退出指定gstore进程。
      确定存储可以正常启动后,ctrl+c退出存储使用nohup指令运行,让存储后台运行。
        nohup ./gstore >/dev/null 2>&1 &

        07

        启动cypher-server

        运行./cypher-server当组件成功启动并出现server is running bolt protocol后证明GDMBASE已准备就绪;如未出现以上成功标识,请仔细检查各组件配置文件和主机防火墙状态,然后根据组件的报错信息进行排查分析。

        确定GDMBASE可以正常启动后,ctrl+c退出使用nohup指令运行,让GDMBASE后台运行。
          nohup ./cypher-server >/dev/null 2>&1 &

          08

          检查GDMBASE连接状态

          运行./cypher-shell 进入cypher-shell,可以直接运行 Cypher 查询语句,从而查询、更新或管理 图数据库。在cypher-shell中运行call db.ping();检查数据库连接状态。

          显示success为“TRUE”,说明图数据库启动成功可以正常使用。



          03

          图数据库使用

          01

          创建图空间

          创建图空间sample,默认为1个数据分区,也就是单段。

            create database sample;
            查询显示所有图空间。
              show databases;
              切换到sample图空间
                :use sample

                02

                标签管理语句

                添加顶点标签
                  create label 人 (姓名 string not null,年龄 int null,性别 boolean null);
                  添加边标签
                    create relationshipType 朋友;
                    查看顶点、边标签
                      show labels;

                        show relationshipTypes;

                        创建两个节点和一条关系
                          CREATE (n:人{ 姓名:"李明", 年龄:25, 性别:true});
                          CREATE (n:人{ 姓名:"张文", 年龄:35, 性别:true});
                          MATCH (a:人),(b:人) WHERE a.姓名='李明' AND b.姓名='张文' CREATE (a)-[r:朋友]->(b) RETURN r;

                          查询李明和张文之间的所有关系
                            MATCH (n:人 { 姓名: '李明' })-[关系]->(m:人{ 姓名: '张文' }) RETURN n.姓名,关系,m.姓名;


                            04

                            图数据库备份还原

                            01

                            库级全量备份还原

                            在线备份是一种在数据库运行状态下进行的备份方法,允许在不中断服务的情况下实现数据恢复和迁移。这种备份方式确保了业务的连续性,同时提供了灵活的恢复选项,有助于维护数据库的一致性和完整性,保障数据安全。


                            GDMBASE支持在线数据备份与还原,并提供全量备份和增量备份两种方式,备份数据范围可选为图级备份和系统级备份。基于备份的数据文件,可将库中数据还原至任意备份时刻。


                            备份分为库级全量备份、图级全量备份、库级增量备份、图级增量备份。后面实践下库级全量备份和图级全量备份以及对应的还原操作。


                            图库的备份语法如下:

                              BACKUP ALL DATABASES FULL TO `backupName` [COMMENT 'descriptions']

                              ALL :通常与 DATABASE 关键字连用,指代库级备份。

                              DATABASE :对图的定义在cypher语法中体现为database

                              FULL :通常在全量备份中使用。

                              backupName :备份任务名。

                              [] :可选语法。

                              descriptions :备份任务的描述.

                              将全部图库备份到backupAll注意backupAll两边用的是反引号。

                                BACKUP ALL DATABASES FULL TO `backupAll`;

                                SHOW BACKUPS查看所有备份。

                                  SHOW BACKUPS;

                                  删除掉上面建立的图库sample

                                    drop database sample;

                                    查询所有图库sample已经不存在。

                                      show databases;

                                      用全库备份backupAll还原,可见图库sample已经恢复

                                        RESTORE ALL DATABASES `restoreName` FROM `backupAll`;
                                        show databases;


                                        02

                                        图级全量备份还原

                                        图备份暂不支持指定图名备份,须先行切入需要备份的图中执行相应的语法,即可发起当前图的备份任务。将图库备份到backupsample。


                                          :use sample
                                          BACKUP DATABASE FULL TO `backupsample`;

                                          删除张文的所有关系


                                            MATCH (n:人 { 姓名: '李明' })-[r]->() DELETE r;

                                            这样张文和李明之间的朋友关系就不存在了


                                              MATCH (n:人 { 姓名: '李明' })-[关系]->(m:人{ 姓名: '张文' }) RETURN n.姓名,关系,m.姓名;


                                              使用backupsample还原sample图后查询张文和李明之间的朋友关系恢复了


                                                RESTORE DATABASE `restoresample` FROM `backupsample`;

                                                在数据还原的过程中可以用show restors命令查看还原进程。等到状态变为finish才能进行下一步操作,还原过程中也可以使用STOP RESTORE 'restoreName'来终止还原。




                                                05

                                                总结

                                                本文内容主要讲述的是GDMBASE图数据库安装、使用、备份、还原。希望通过这篇笔记能够为那些正在探索图数据库技术的同行们提供一些有价值的参考,下一部分为大家带来图数据库数据生成、数据导出导入、数据显示


                                                以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!


                                                作者:朱悦

                                                审核:培训部、图数据库实施部


                                                06

                                                一周热文


                                                达梦E学

                                                微信号:DM-Elearning

                                                扫码关注查看更多内容

                                                点击下方在看,分享本文


                                                文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                评论