Nebula导入csv失败

Nebula1.2.0集群部署成功,图结构创建成功,导入时存在部分数据导入错误,报错信息如下:

2021/03/05 07:53:47 [INFO] clientmgr.go:28: Create 10 Nebula Graph clients
2021/03/05 07:53:47 [INFO] reader.go:26: The delimiter of /home/feiyang/test/data/vertex.csv is U+0009
2021/03/05 07:53:47 [INFO] reader.go:64: Start to read file(0): /home/feiyang/test/data/vertex.csv, schema: < :VID/ve.id:int >
2021/03/05 07:53:50 [ERROR] handler.go:63: Client 2 fail to execute: THERE_ARE_SOME_ERRORS(Invalid vid format: 0), ErrMsg: SyntaxError: syntax error near `THERE_ARE_SOME_ERRORS', ErrCode: E_SYNTAX_ERROR
2021/03/05 07:53:52 [INFO] statsmgr.go:61: Tick: Time(5.00s), Finished(637952), Failed(128), Latency AVG(1808us), Batches Req AVG(2038us), Rows AVG(127584.71/s)
2021/03/05 07:53:53 [ERROR] handler.go:63: Client 4 fail to execute: THERE_ARE_SOME_ERRORS(Invalid vid format: 4), ErrMsg: SyntaxError: syntax error near `THERE_ARE_SOME_ERRORS', ErrCode: E_SYNTAX_ERROR
2021/03/05 07:53:57 [INFO] statsmgr.go:61: Tick: Time(10.00s), Finished(1057792), Failed(256), Latency AVG(1575us), Batches Req AVG(1788us), Rows AVG(105776.82/s)
2021/03/05 07:53:57 [ERROR] handler.go:63: Client 4 fail to execute: THERE_ARE_SOME_ERRORS(Invalid vid format: 6), ErrMsg: SyntaxError: syntax error near `THERE_ARE_SOME_ERRORS', ErrCode: E_SYNTAX_ERROR
2021/03/05 07:54:01 [ERROR] handler.go:63: Client 7 fail to execute: THERE_ARE_SOME_ERRORS(Invalid vid format: 2), ErrMsg: SyntaxError: syntax error near `THERE_ARE_SOME_ERRORS', ErrCode: E_SYNTAX_ERROR
2021/03/05 07:54:02 [ERROR] handler.go:63: Client 6 fail to execute: THERE_ARE_SOME_ERRORS(Invalid vid format: 1), ErrMsg: SyntaxError: syntax error near `THERE_ARE_SOME_ERRORS', ErrCode: E_SYNTAX_ERROR
2021/03/05 07:54:02 [INFO] reader.go:180: Total lines of file(/home/feiyang/test/data/vertex.csv) is: 2396019, error lines: 0
2021/03/05 07:54:02 [INFO] statsmgr.go:61: Tick: Time(15.00s), Finished(2386177), Failed(640), Latency AVG(1588us), Batches Req AVG(1797us), Rows AVG(159077.09/s)
2021/03/05 07:54:02 [INFO] statsmgr.go:61: Done(/home/feiyang/test/data/vertex.csv): Time(15.22s), Finished(2396019), Failed(640), Latency AVG(1592us), Batches Req AVG(1801us), Rows AVG(157451.50/s)

导入时会创建err/ve.csv文件存储导入错误的数据,将该文件的数据进行导入,日志显示导入成功,db_dump统计表明数据并未导入成功,这是什么情况?

用的 nebula-importer 吗?

是的,因为2.0版本的nebula-importer不兼容,我使用的是1.0版本的

@jievince 来瞅瞅这个问题呢,大佬 :partying_face:

你用的nebula-importer:lateset这个镜像吗? 镜像有更新到最新的吗? 昨天修复了一个和vid检查有关的bug

不是,我用的是nebula-importer:v1这个镜像,因为nebula-importer:lateset这个镜像不兼容

对, 那你v1镜像是最新的吗?如果不是, 请更新一下

v1最新镜像的id可以发给我看一下吗?我对比看一下是否最新版本

https://hub.docker.com/layers/vesoft/nebula-importer/v1/images/sha256-ed9f62130d5b3e6fdd6b72e808257e40a9f7ec66ac9a89d964769960bd68bbaa?context=explore

问题已经解决了,非常感谢!

能够解答一下我的困惑吗?是因为什么原因导致的部分数据导入失败

importer导入数据之前会对每行数据的vid的格式用正则做个check, 这个正则之前写的有问题, 导致匹配不到一位的十进制数字。所以当vid是0-9时, check就报错了。

2 个赞

但是导入报错的并非只是vid 0-9的数据,还有很多其他的vid也导入失败

还有哪些vid呢?如果是

THERE_ARE_SOME_ERRORS(Invalid vid format: 1), ErrMsg: SyntaxError: syntax error near `THERE_ARE_SOME_ERRORS', ErrCode: E_SYNTAX_ERROR

这种报错, 那都是vid check报错的。 其它的报错还需要你发出来, 我看看

报错的原因都是一样的,报错的vid我还有记录,可以贴几个出来你们看一下:1862510,3175285,4079109,2628915,1137241

不应该吧… 这几个vid在之前的check应该也是通过的

那你更新镜像后所有点都导入成功了吗

是的,新的镜像全都导入成功了。
这几个vid导入时报错,所有导入错误的vid全都存储在一个csv文件中,我将这个csv文件进行导入,日志显示所有vid均导入成功,但是通过dp_dump去统计时发现点的数量并未增加

想请问一下,vid check已经报错了 为什么还会让graphd执行THERE_ARE_SOME_ERRORS这个命令,修复这个bug的pr可以发一下吗

这不是 bug,是个已知的问题,只是当时实现的时候一种比较简单的做法,后面可以考虑一种更好的错误处理方式。