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

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

达梦E学 2024-08-16
286

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

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

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


备注:因为篇幅原因,这篇干货分为上下两篇进行发布。本期为下篇,主要分享GDMBASE图数据库的数据生成、数据导入导出、数据显示


01

环境说明

具体配置见《【干货攻略】GDMBASE 图数据库实战笔记(上)》。


02

数据生成

01

生成测试数据

创建一个新的图库起名为sanguo。

    CREATE DATABASE SANGUO;

    进入SANGUO这个图库,直接写入一些和三国相关的数据。
      :use SANGUO
      CREATE (caoCao:Person {name: "曹操", country: "魏"}),
      (liuBei:Person {name: "刘备", country: "蜀"}),
      (sunQuan:Person {name: "孙权", country: "吴"}),
      (guanYu:Person {name: "关羽", country: "蜀"}),
      (zhangFei:Person {name: "张飞", country: "蜀"}),
      (zhaoYun:Person {name: "赵云", country: "蜀"}),
      (zhouYu:Person {name: "周瑜", country: "吴"}),
      (luBu:Person {name: "吕布", country: "无"}),
      (diaoChan:Person {name: "貂蝉", country: "无"}),
      (zhangLiao:Person {name: "张辽", country: "魏"}),
      (xunYu:Person {name: "荀彧", country: "魏"}),
      (zhugeLiang:Person {name: "诸葛亮", country: "蜀"}),
      (guoJia:Person {name: "郭嘉", country: "魏"}),
      (maChao:Person {name: "马超", country: "蜀"}),
      (huangZhong:Person {name: "黄忠", country: "蜀"}),
      (sunShangXiang:Person {name: "孙尚香", country: "吴"}),
      (dianWei:Person {name: "典韦", country: "魏"}),
      (luSu:Person {name: "鲁肃", country: "吴"}),
      (luXun:Person {name: "陆逊", country: "吴"}),
      (caoCao)-[:对手]->(luBu),
      (caoCao)-[:下属]->(dianWei),
      (caoCao)-[:对手]->(liuBei),
      (caoCao)-[:对手]->(sunQuan),
      (caoCao)-[:下属]->(zhangLiao),
      (caoCao)-[:下属]->(xunYu),
      (caoCao)-[:下属]->(guoJia),
      (liuBei)-[:夫妻]->(sunShangXiang),
      (liuBei)-[:兄弟]->(guanYu),
      (liuBei)-[:兄弟]->(zhangFei),
      (liuBei)-[:下属]->(maChao),
      (liuBei)-[:下属]->(huangZhong),
      (liuBei)-[:下属]->(zhugeLiang),
      (liuBei)-[:盟友]->(sunQuan),
      (sunQuan)-[:下属]->(zhouYu),
      (sunQuan)-[:下属]->(luSu),
      (sunQuan)-[:下属]->(luXun),
      (sunQuan)-[:兄妹]->(sunShangXiang),
      (luBu)-[:夫妻]->(diaoChan),
      (liuBei)-[:下属]->(zhaoYun);

      02

      基本关系查找

      对测试数据关系进行查询。

      查询返回距曹操 1-2 跳的所有关系的姓名。
        MATCH (n:Person  { name: '曹操' })-[*..2]-(m:Person)
        RETURN m.name;

        查询返回距曹操 1-2 跳的所有吴国人员的姓名。有两种写法。
          MATCH (n:Person  { name: '曹操' })-[*..2]-(m:Person{ country : '吴' })
          RETURN m.name;
          MATCH (n:Person { name: '曹操' })-[*..2]-(m:Person) WHERE m.country='吴'
          RETURN m.name;

          找到曹操和貂蝉间不超过7跳的最短路径。
            match (n {name:"曹操"}), (m {name:"貂蝉"}), p = shortestPath((n)-[*..7]-(m))
            RETURN p;

            找到曹操和貂蝉间不超过7跳的最短路径,路径中的标签不包含“夫妻”类型。

              match (n {name:"曹操"}), (m {name:"貂蝉"}), p = shortestPath((n)-[*..7]-(m))
              WHERE none (r IN relationships(p) WHERE type(r)= '夫妻')
              RETURN p;

              曹操和赵云两点之间的所有最短路径。

                match (n {name:"曹操"}), (m {name:"赵云"}), p = allShortestPaths((n)-[*]-(m))
                RETURN p;



                03

                图数据库中数据导入导出

                01

                数据导出

                GDMBASE提供导出工具 cypher-export 帮助用户将图数据库中的数据导出成CSV文件,便于数据备份存档或数据复用。导出作用域限制为对目标图进行导出。
                在安装路径GDMBASE/bin目录下执行如下命令:

                  #未携带任何参数,默认导出的是127.0.0.1:8020存储中default图下的数据。
                  ./cypher-export

                  将上面建立的SANGUO图中的数据导出到指定目录/opt/下。

                    ./cypher-export --host=127.0.0.1 --port=8020 --database=SANGUO --path=/opt/
                    导出完成后可以去/opt/SANGUO查看导出的CSV文件。

                    可见导出的CSV文件按照顶点和边储存。

                    cypher-export工具支持在运行命令时指定参数,来实现特定功能,可以通过help查询。

                      ./cypher-export -h
                      --help(或-h) 帮助命令,可查看参数说明;
                      --host 存储服务IP地址,默认127.0.0.1;
                      --port 存储服务端口,默认8020;
                      --database(或-d) 要导出数据的图名,默认default图;
                      --path 导出文件的存放路径,默认在/GDMBASE/export/目录下,以图名生成文件目录;
                      --delimiter 文件内容字段值的分隔符,默认为“ , ” ;
                      --array-delimiter 数组元素之间的分隔符,默认为“ ; ” ;
                      --suffix 导出文件所拼接的后缀名,默认为export,如person标签导出的默认文件名为 person_export.csv;
                      --pool-size 连接池大小,默认30,一般地,一个标签占用一个连接池;
                      --batch-putsize 写文件的批次大小(行),默认5000;-f 强制执行导出,当目录下已有文件时,进行文件覆盖;
                      --version (或-v) 打印当前导出工具版本信息;


                      02

                      数据导入

                      GDMBASE可以导入数据的工具有cypher-loader,Cypher-Import和LoadCsv。

                      LoadCsv是一个强大的数据在线装载工具,可以将 CSV 文件中的数据加载到 GDMBase 图数据库中。它能够自动化将一个 CSV 文件中的每一行作为一个节点或者一个关系加载到数据库中,并且可以根据需要将 CSV 文件中不同的列转化为节点的属性或者关系的属性。

                      cypher-loader可实现将纯文本文件数据以全量/增量的方式导入到图库。

                      cypher-Import快速装载工具使用指定格式的表头描述数据字段,表头具有两种编写模式:
                      模式一:是将表头写在CSV文本文件开头。
                      模式二:是将表头信息单独使用一个文件进行保存,使用--headers参数指定表头文件路径。

                      cypher-loader和LoadCsv用法在GDMBASE手册中有详细介绍,本文演示将刚刚用cypher-export工具导出的CSV文件导入到新的图库SANGUO2中。
                        ./cypher-import --host=127.0.0.1 --port=8020 --database=SANGUO2 --datasets=/opt/SANGUO
                        导入前准备可见导入前的一些参数设置,例如:导入错误数据保存在目录../import/error_data。

                        导入的步骤和日志也会显示。

                        导入数据检查,如图登录后用show databases;查询出SANGUO2图库已经建立。

                        切换到SANGUO2图空间做一个数据查询。






                        04

                        图数据库中数据的图形化显示

                        01

                        操作说明

                        运行./console-server.sh当组件成功启动并出现Web Console started.后证明已准备就绪。

                        作者的虚拟机ip192.168.62.129。访问图数据库图显示的地址为:
                          https://192.168.62.129:8200/


                          填入图库地址端口和登录用户名密码登录。

                          选择图空间为最新导入的SANGUO2


                          后面显示距曹操 1-3 跳的所有关系图。


                            MATCH (n:Person {name: "曹操"})-[r*1..3]->(m)
                            RETURN n, r, m;





                            05

                            总结

                            本文内容主要讲述的是GDMBASE图数据库的数据生成、数据导出导入、数据显示。希望通过这篇笔记能够为那些正在探索图数据库技术的同行们提供一些有价值的参考


                            对于初次接触图数据库的朋友们来说,建议从简单的应用场景入手,逐步熟悉其特性和优势。希望这篇干货中的经验和教训能够帮助大家少走弯路,在图数据库的世界里探索得更深更远。

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


                            作者:朱悦

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


                            06

                            一周热文


                            达梦E学

                            微信号:DM-Elearning

                            扫码关注查看更多内容

                            点击下方在看,分享本文


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

                            评论