关于 benchmark

提问参考模版:

  • nebula 版本:2.0.1
  • 部署方式(分布式 ):
  • 是否为线上版本:Y 5台SSD
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
    • CPU、内存信息

关于benckmark 我想知道以下几点
1 数据导入
导入之前,是否需要在console 里面新建 space tag 之类?我没有新建任何,执行import命令之后,space已经创建成功,有24个分区
2 接下来的操作该怎么办? 请明示,对于我一个小白来说。网上有一些语句例如
GO {N} STEP FROM {vid} OVER knows ,我执行直接报语法错误

GO {N} STEP FROM {vid} OVER knows
[ERROR (-7)]: SyntaxError: syntax error near `{N} STEP’

我看jxm 文件中也有语句
GO 3 STEP FROM “replace” OVER knows
[ERROR (-12)]: SemanticError: Vid should be a INT64
也是执行报错。

对于我来说,我目前是测试性能,语法什么的,还不清楚,有没有傻瓜式文档

目前 nebula-bench 中自动执行压测部分还在完善,如果你想手动试一下压测,可以参考

csv 文件配置成你前面生成的 person 地址。

如果想了解 nGQL 语法,请参考: Nebula Graph Database 手册

这个报错的原因就是 vid 类型没对上, jmx 文件中 GO 3 STEP FROM “replace” OVER knows 中的 “replace” 在执行时会用读取到某一列数据替换(可以看一下 LdbcGoStep.java 的实现),所以可能是下面两种情况导致的:

  1. import 数据的时候该列的类型不是 int,需要检查一下 nebula-importer 配置文件中相关的 schema 定义
  2. 可能是 jmx 配置的列对应错了
          <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
            <stringProp name="delimiter">|</stringProp>
            <stringProp name="fileEncoding"></stringProp>
            <stringProp name="filename">/data/harris/sf1/social_network/dynamic/person.csv</stringProp>
            <boolProp name="ignoreFirstLine">false</boolProp>
            <boolProp name="quotedData">false</boolProp>
            <boolProp name="recycle">true</boolProp>
            <stringProp name="shareMode">shareMode.all</stringProp>
            <boolProp name="stopThread">false</boolProp>
            <stringProp name="variableNames">person,var3,var4,var5,var6,var7,var8</stringProp>
          </CSVDataSet>`

这个配置块中 person 在第一列所以,replace 会被第一列数据替换。
目前 nebula-bench 的实现还不是太好,后续我们会做一些改进,对 jmeter 比较熟悉的话,欢迎提出一些修改意见~

建议先看一下 nebula 一些基本的文档,这里大括号里边的都是要替换成对应数据的

P67

该话题在最后一个回复创建后30天后自动关闭。不再允许新的回复。