#gStore最新版1.2之空库的构建和批量数据构建

gStore1.2版本支持了空库的构建和批量数据构建,接下来我们将从本地命令、控制台、API接口三种方式来进行介绍如何使用:

1 使用本地命令构建

1.1 构建空库

通过本地命令构建数据库的方式如下,如果要构建一个空库,只要不指定-f参数即可

复制代码
$ bin/gbuild -db [db_name] -f [filename]
#Options:
#  -h, --help           Display this message.
#  -db,--database,      the database name. 
#  -f, --file[option],  the file path for building.
  • 参数 -db : 指定数据库名

    -f : 数据文件路径,如果不指定则构建一个空库

  • 示例

    复制代码
    # 执行构建命令
    $ bin/gbuild -db blankDB
    #......
    #after Parsing, used 1ms.
    #write priviledge of update lock acquired
    #QueryCache cleared
    #Query time used (minus parsing): 0ms.
    #Total time used: 1ms.
    #Saving database info: update num 3
    #Build RDF database database_name successfully! Used 24 ms
    
    # 查看blankDB信息
    $ bin/gmonitor -db blankDB
    #......
    #---------------------------------------
    #|     name      |        value        |
    #---------------------------------------
    #| database      | blankDB             |
    #| creator       | root                |
    #| built_time    | 2023-11-27 09:34:44 |
    #| triple_num    | 0                   |
    #| entity_num    | 0                   |
    #| literal_num   | 0                   |
    #| subject_num   | 0                   |
    #| predicate_num | 0                   |
    #| disk_used     | 0 MB                |
    #---------------------------------------
1.2 批量数据构建

如果有多个数据文件需要一次性构建到新库中,之前我们的做法是把多个文件合成一个大文件再执行构建命令,现在我们支持把多个文件打成一个压缩包(目前只支持zip包格式),再通过以下命令进行构建。

复制代码
$ bin/gbuild -db [database_name] -f [zip_file_path]
  • 参数 -db : 指定数据库名

    -f : 指定构建数据库的zip文件路径(数据文件处于zip包的更目录下)

    复制代码
    # zip文件结构示例
    |-lubm.zip
    |__lubm1.nt
    |__lubm2.nt
    |__lubm3.nt
  • 示例

    复制代码
    $ bin/gbuild -db batchDB -f ./data/lubm/lubm.zip
    #......
    #after Parsing, used 1ms.
    #write priviledge of update lock acquired
    #QueryCache cleared
    #Query time used (minus parsing): 0ms.
    #Total time used: 1ms.
    #Saving database info: update num 3
    #Build RDF database database_name successfully! Used 972 ms

2 使用gconsole构建

第二种方式可通过控制台来完成,首先通过gconsole进入控制台模式:

复制代码
# 回车输入root用户密码
$ bin/gconsole -u root

# 进入控制台模式后将打印以下信息,并等待执行新的指令
#Gstore Console(gconsole), an interactive shell based utility to communicate with gStore repositories.
#Gstore version: 1.2 Source distribution
#Copyright (c) 2016, 2022, pkumod and/or its affiliates.

#Welcome to the gStore Console.
#Commands end with ;. Cross line input is allowed.
#Comment start with #. Redirect (> and >>) is supported.
#CTRL+C to quit current command. CTRL+D to exit this console.
#Type 'help;' for help. 

#File open failed: bin/.gconsole_history/root
$ gstore[no database]> 
2.1 构建空库
复制代码
$ create [database_name];
  • 参数 database_name : 数据库名

  • 返回值

    执行成功后,控制台会打印如下信息

    复制代码
    ......
    finish encode.
    Finish sub2id pre2id obj2id
    TripleNum is 1
    EntityNum is 1
    PreNum is 1
    LiteralNum is 1
    Database database_namecreated successfully.
2.2 批量数据构建
复制代码
create [database_name] [zip_file_path];
  • 参数 database_name : 数据库名 zip_file_path : 构建数据库的zip文件路径

  • 返回值

    执行成功后,控制台会打印如下信息

    复制代码
    ......
    finish encode.
    Finish sub2id pre2id obj2id
    TripleNum is 26
    EntityNum is 33
    PreNum is 1
    LiteralNum is 9
    Database database_namcreated successfully. 

3 使用API构建

第三种方式就是通过API接口来完成,首先需要启动API接口服务,grpcghttp均可(不建议二者同时启动)

复制代码
# grpc服务
$ bin/grpc -p 9000

# ghttp服务
$ bin/ghttp -p 9000
  • 请求URL grpc: http://127.0.0.1:9000/grpc/api

    ghttp: http://localhost:9000

  • 参数

    参数名 必选 类型 说明
    operation string 操作名称,固定值为**build**
    username string 用户名
    password string 密码(明文)
    encryption string 为空,则密码为明文,为1表示用md5加密
    db_name string 数据库名称
    db_path string 数据库文件路径(可以是绝对路径,也可以是相对路径,相对路径以gStore根目录为参照目录),路径为空即构建空库
3.1 构建空库
  • 请求参数

    复制代码
    {
        "operation": "build",
        "username": "root",
        "password": "123456",
        "encryption": "0",
        "db_name": "blankDB"
    }
  • 请求示例

    复制代码
    # grpc示例
    $ curl -H "Content-Type: application/json" -d '{"username":"root","password":"123456","encryption":"0","operation":"build","db_name":"blankDB"}' http://127.0.0.1:9000/grpc/api
    
    # ghttp示例
    $ curl -H "Content-Type: application/json" -d '{"username":"root","password":"123456","encryption":"0","operation":"build","db_name":"blankDB"}' http://127.0.0.1:9000
  • 返回值

    复制代码
    {"StatusCode":0,"StatusMsg":"Import RDF file to database done.","failed_num":0}
3.2 批量数据构建
  • 请求参数

    复制代码
    {
        "operation": "build",
        "username": "root",
        "password": "123456",
        "encryption": "0",
        "db_name": "batchDB",
        "db_path": "./upload/lubm.zip"
    }

    【备注】zip文件可以通过upload接口(详见接口文档)上传到服务器,zip文件结构见1.2中zip文件结构示例

  • 请求示例

    复制代码
    # grpc示例
    $ curl -H "Content-Type: application/json" -d '{"username":"root","password":"123456","encryption":"0","operation":"build","db_name":"batchDB","db_path":"./upload/lubm.zip"}' http://127.0.0.1:9000/grpc/api
    
    # ghttp示例
    $ curl -H "Content-Type: application/json" -d '{"username":"root","password":"123456","encryption":"0","operation":"build","db_name":"batchDB","db_path":"./upload/lubm.zip"}' http://127.0.0.1:9000
  • 返回值

    复制代码
    {"StatusCode":0,"StatusMsg":"Import RDF file to database done.","failed_num":0}

以上为gStore1.2中支持空库构建和批量数据构建的使用详解,下一篇我们将介绍gStore1.2中新增内置高级函数的使用详解。

相关推荐
努力学习的小廉4 分钟前
深入了解linux系统—— POSIX信号量
linux·运维·服务器
广州腾科助你拿下华为认证30 分钟前
PostgreSQL认证_PGCM考试难度有多大?
数据库·postgresql
代码的余温31 分钟前
Oracle RAC认证矩阵:规避风险的关键指南
数据库·oracle·矩阵
田野里的雨32 分钟前
manticore离线安装(Ubuntu )
linux·运维·服务器·全文检索
白鲸开源32 分钟前
一行代码引发 12G 内存 5 分钟爆仓!SeaTunnel Kafka 连接器"内存溢出"元凶抓到了
数据库·kafka·开源
疾风铸境1 小时前
项目研发实录:电子称SDK封装dll给到QT和C#调用
linux·服务器·网络
cellurw1 小时前
Day39 SQLite数据库操作与HTML核心API及页面构建
数据库·sqlite·html
小蒜学长1 小时前
旅行社旅游管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·旅游
Mr_hwt_1231 小时前
基于mybatis-plus动态数据源实现mysql集群读写分离和从库负载均衡教程(详细案例)
数据库·spring boot·mysql·mybatis·mysql集群
D11_1 小时前
【服务器】将本地项目部署到服务器
运维·服务器